{"name":"Orbit","description":"Orbit is the platform that hosts, deploys and registers applications, and owns the rig CLI. An application's agent files a switchboard task here when rig fails, a platform capability is missing, or a deploy or hosted app behaves in a way it cannot explain. A person on the Orbit platform team answers; nothing answers automatically.","version":"1.0.0","documentationUrl":"https://github.com/UlrichKronvoldPrivate/orbit/blob/main/docs/switchboard-for-app-agents.md","supportedInterfaces":[{"url":"https://mcp.building-bricks.online/gateway/v1/switchboard","protocolBinding":"ORBIT-SWITCHBOARD-REST","protocolVersion":"1.0"}],"capabilities":{"streaming":false,"pushNotifications":false,"extendedAgentCard":false,"extensions":[{"uri":"https://github.com/UlrichKronvoldPrivate/orbit/blob/main/docs/switchboard-for-app-agents.md#the-task-api","description":"Orbit switchboard: how tasks are filed, stored and answered. The interface is Orbit's own REST contract, not an A2A binding.","required":false,"params":{"taskApi":{"baseUrl":"https://mcp.building-bricks.online/gateway/v1/switchboard","tokenAudience":"https://api.orbit.internal","routes":["POST /tasks","GET /tasks","GET /tasks/{id}","POST /tasks/{id}/messages","POST /tasks/{id}/cancel"],"submit":{"required":["kind","area","severity","title","sections"],"sectionsRequired":["whatIWasDoing","whatHappened","expected","whatIAlreadyTried"],"sectionsOptional":["repro","logs"],"optional":["destination","parentTaskId","thread","requestId"],"kinds":["bug","question","feature","incident"],"areas":["rig-cli","deploy","hosting","registration","unknown"],"severities":["blocking","degraded","annoyance"],"destinations":["orbit"]},"states":["submitted","working","input-required","completed","failed","canceled","rejected"],"finalStates":["completed","failed","canceled","rejected"]},"limits":{"tasksPerAppPerDay":20,"maxHop":3,"note":"Gateway defaults, per requester (an app or a participant). The operator can change the daily limit; a refusal is 429 rate_limited with retryAfterSeconds."},"taskStore":"Orbit task store, each task mirrored to an issue in the GitHub repository UlrichKronvoldPrivate/orbit","answeredBy":"A person on the Orbit platform team, or Orbit's agent working in the Orbit repository, through the mirrored issue or Orbit's switchboard inbox. Nothing answers unattended.","escalation":"None beyond the task itself: no on-call rotation, no chat channel.","responseCommitment":"None. Best effort; no guaranteed response time.","fallback":"An issue filed by hand in the same repository with the agent-request template."}}]},"securitySchemes":{"orbitAppCredential":{"oauth2SecurityScheme":{"description":"Your app's own Orbit platform credential (ORBIT_M2M_CLIENT_ID / ORBIT_M2M_CLIENT_SECRET, injected into every app Orbit deploys), or a switchboard participant's client registered by an Orbit administrator; client-credentials flow, audience https://api.orbit.internal. The requester is taken from this token, never from the request body.","flows":{"clientCredentials":{"tokenUrl":"https://building-blocks-dev.eu.auth0.com/oauth/token","scopes":{}}}}}},"securityRequirements":[{"schemes":{"orbitAppCredential":{"list":[]}}}],"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"skills":[{"id":"rig-cli","name":"rig CLI","description":"Defects, unexpected behaviour and missing capabilities in the rig command-line tool: login, create, register, deploy and their exit codes and messages.","tags":["rig-cli","cli","tooling"],"examples":["rig deploy exits 0 when it is not logged in, so a wrapper records a deploy that never happened","rig login crashes on a missing ORBIT_HUB_URL that it already stored in its credentials"]},{"id":"deploy","name":"Deployment","description":"Building and rolling out an app: which image a deploy resolves, rollbacks, and whether a rollout actually finished.","tags":["deploy","rollout","rollback","image"],"examples":["a platform-triggered redeploy resolved an older image tag than the one last deployed","the deploy reported success before the rollout had finished"]},{"id":"hosting","name":"Hosting","description":"The running app and what Orbit provisions for it: containers, secrets and configuration, object storage, custom domains.","tags":["hosting","runtime","secrets","storage","domains"],"examples":["object-storage provisioning cannot produce a usable bucket","an app's required secret cannot be placed in app config, so it does not survive a redeploy","an app cannot get a custom domain attached"]},{"id":"registration","name":"App registration","description":"An app's record in Orbit and what registering sets up: manifest fields, declared needs, and sign-in (Auth0) callback and logout addresses.","tags":["registration","manifest","auth0","callbacks"],"examples":["rig register --needs storage is silently ignored by the hub","a deploy never re-syncs description or requiredEnv, so app records silently go stale","a custom domain's callback is never registered in Auth0, so login cannot complete"]}]}