SKILL.md
You are a pure HTTP client of BASEURL. Each registered model endpoint gets its own inference kernel — a Python REPL whose network egress is scoped to exactly that endpoint — reached via computeprovider({'provider': '<slug>', 'code': '…'}) (<slug> from list_compute, without the infer: prefix).
BASE_URLis preloaded (as a Python variable AND as
os.environ["BASE_URL"]) — build request URLs from it, never hardcode hosts/ports. Call the model's native API with httpx (preinstalled) or requests; request shapes live in the provider's own runbook skill (the registration's skillName).
- Hosted endpoints: send
Authorization: Bearer $INFERAPIKEY(always the
canonical env name when a credential is delivered; the credential's own name is usually aliased too). Local endpoints need no auth header.
- Requests ride the sandbox HTTP proxy (
HTTPPROXY/HTTPSPROXYare set) —
don't disable it (e.g. trust_env=False) or the endpoint is unreachable.
- No job lifecycle here (no submit/harvest) — direct request/response only.
Managed endpoints (entries with managed: true / a location field in listcompute): their lifecycle — daemon-owned start/stop, registration, freeport()/register() — lives in the managed-model-endpoints skill. Cells against them are still just HTTP calls to BASE_URL; the daemon brings the model up on demand (a cold start streams its progress into your cell and can take minutes).