{"openapi":"3.1.1","info":{"title":"Tessl API","version":"1.0.0"},"components":{"schemas":{}},"paths":{"/v1/badges/{workspaceName}/{tileName}":{"get":{"tags":["Badges"],"description":"Returns Shields.io-style JSON for a tile eval-score badge.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["schemaVersion","label","message","color"],"properties":{"schemaVersion":{"type":"number","enum":[1]},"label":{"type":"string"},"message":{"type":"string"},"color":{"type":"string"},"logoSvg":{"type":"string"},"cacheSeconds":{"type":"number"},"isError":{"type":"boolean"}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/auth/cli/select-organization":{"post":{"summary":"Complete a CLI sign-in that WorkOS paused for organization selection","tags":["Auth"],"description":"The CLI exchanges its loopback authorization code directly with WorkOS. For a user who belongs to an organization, WorkOS answers that exchange with `organization_selection_required` and a pending authentication token, and the grant that resolves it requires the client secret the CLI must not hold. This route completes that grant for the organization the user chose on the approve page and returns the resulting tokens. WorkOS enforces that the organization is one of the user's memberships.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["pendingAuthenticationToken","organizationId"],"properties":{"pendingAuthenticationToken":{"minLength":1,"maxLength":2048,"type":"string"},"organizationId":{"format":"uuid","type":"string"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["cli-authentication"]},"attributes":{"type":"object","required":["accessToken","refreshToken","user"],"properties":{"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"user":{"type":"object","required":["id","email","firstName","lastName"],"properties":{"id":{"type":"string"},"email":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"description":"Service Unavailable","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Service Unavailable"]},"status":{"type":"number","enum":[503]},"message":{"type":"string"}}}}}}}}}}},"/v1/install/policy/evaluate":{"post":{"summary":"Evaluate an install policy decision for a batch of plugin sources","tags":["InstallPolicy"],"description":"Returns a per-source allow/warn/block decision plus structured reasons. For users who belong to multiple orgs, the lowest-sorted org id wins and a warning is logged — set up an org-scoped API key to avoid the picker's arbitrary choice.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sources"],"properties":{"clientVersion":{"type":"string"},"context":{"type":"object","properties":{"isCi":{"type":"boolean"},"runId":{"type":"string"},"project":{"type":"object","properties":{"tesslProjectId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceSlug":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}]},"manifestPath":{"type":"string"},"gitRemoteUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"gitCommitSha":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},"acceptedWarnings":{"type":"boolean"},"sources":{"minItems":0,"maxItems":200,"type":"array","items":{"anyOf":[{"type":"object","required":["id","source","tile"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["registry"]},"tile":{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"},"version":{"type":"string"}}}}},{"type":"object","required":["id","source","url"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["git"]},"url":{"type":"string"},"branch":{"type":"string"},"subpath":{"type":"string"},"skills":{"maxItems":200,"type":"array","items":{"type":"string"}}}},{"type":"object","required":["id","source","path"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["file"]},"path":{"type":"string"}}}]}}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["install-policy-evaluation"]},"attributes":{"type":"object","required":["policyVersion","orgId","decisions","additionalSources"],"properties":{"policyVersion":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]},"decisions":{"type":"array","items":{"type":"object","required":["id","decision","reasons","requiresInteractiveConfirmation"],"properties":{"id":{"type":"string"},"decision":{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["block"]}]},"resolvedSource":{"anyOf":[{"type":"object","required":["id","source","tile"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["registry"]},"tile":{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"},"version":{"type":"string"}}}}},{"type":"object","required":["id","source","url"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["git"]},"url":{"type":"string"},"branch":{"type":"string"},"subpath":{"type":"string"}}},{"type":"object","required":["id","source","path"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["file"]},"path":{"type":"string"}}}]},"fallbackSource":{"anyOf":[{"type":"object","required":["id","source","tile"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["registry"]},"tile":{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"},"version":{"type":"string"}}}}},{"type":"object","required":["id","source","url"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["git"]},"url":{"type":"string"},"branch":{"type":"string"},"subpath":{"type":"string"}}},{"type":"object","required":["id","source","path"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["file"]},"path":{"type":"string"}}}]},"reasons":{"type":"array","items":{"anyOf":[{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["source-restricted"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"deniedSourceKind":{"anyOf":[{"type":"string","enum":["registry"]},{"type":"string","enum":["git"]}]},"gitSource":{"type":"object","required":["host","path"],"properties":{"host":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}}}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["workspace-access"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-unresolved"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-required"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["managedWorkspace","policyName","dependencyName","requiredVersion"],"properties":{"managedWorkspace":{"type":"string"},"managedScopeKind":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]}]},"policyName":{"type":"string"},"dependencyName":{"type":"string"},"requiredVersion":{"type":"string"}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["release-age"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["requestedVersion","requestedReleaseAgeInDays","minimumAgeInDays","fallbackVersion","fallbackPublishedAt"],"properties":{"requestedVersion":{"type":"string"},"requestedReleaseAgeInDays":{"minimum":0,"type":"integer"},"minimumAgeInDays":{"minimum":0,"type":"integer"},"fallbackVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackPublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackSecurityReasons":{"type":"array","items":{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}]}},"requiresInteractiveConfirmation":{"type":"boolean"},"minimumReleaseAgeDays":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]}}}},"additionalSources":{"type":"array","items":{"type":"object","required":["id","source","decision","reasons"],"properties":{"id":{"type":"string"},"source":{"anyOf":[{"type":"object","required":["id","source","tile"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["registry"]},"tile":{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"},"version":{"type":"string"}}}}},{"type":"object","required":["id","source","url"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["git"]},"url":{"type":"string"},"branch":{"type":"string"},"subpath":{"type":"string"}}},{"type":"object","required":["id","source","path"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["file"]},"path":{"type":"string"}}}]},"decision":{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["block"]}]},"reasons":{"type":"array","items":{"anyOf":[{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["source-restricted"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"deniedSourceKind":{"anyOf":[{"type":"string","enum":["registry"]},{"type":"string","enum":["git"]}]},"gitSource":{"type":"object","required":["host","path"],"properties":{"host":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}}}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["workspace-access"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-unresolved"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-required"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["managedWorkspace","policyName","dependencyName","requiredVersion"],"properties":{"managedWorkspace":{"type":"string"},"managedScopeKind":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]}]},"policyName":{"type":"string"},"dependencyName":{"type":"string"},"requiredVersion":{"type":"string"}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["release-age"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["requestedVersion","requestedReleaseAgeInDays","minimumAgeInDays","fallbackVersion","fallbackPublishedAt"],"properties":{"requestedVersion":{"type":"string"},"requestedReleaseAgeInDays":{"minimum":0,"type":"integer"},"minimumAgeInDays":{"minimum":0,"type":"integer"},"fallbackVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackPublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackSecurityReasons":{"type":"array","items":{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}]}}}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/client-state":{"get":{"summary":"Read the declarative client-state document for the caller","tags":["ClientState"],"description":"Returns the state the caller's client should converge on. Scope is resolved from the actor alone — a caller can only ever read their own state, never another org's. The document is a signal, not a command: it reports whether managed requirements exist, while the vetted list stays behind POST /v1/policy/evaluate. Supports conditional GET via ETag and If-None-Match: a matching token returns 304 with no body.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false},{"schema":{"type":"string"},"in":"header","name":"if-none-match","required":false,"description":"Quoted entity-tag from a prior ETag response header. A matching tag returns 304."}],"responses":{"200":{"description":"Default Response","headers":{"ETag":{"schema":{"type":"string"},"description":"Quoted entity-tag for the current state document, e.g. \"abc123\"."}},"content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["client-state"]},"attributes":{"type":"object","required":["stateVersion","etag","scope","policy"],"properties":{"stateVersion":{"type":"number","enum":[1]},"etag":{"description":"Opaque token for the whole document. Currently tracks the policy fingerprint; later payloads (cli.minVersion, logSync) fold into it too.","type":"string"},"scope":{"description":"How the caller's org was resolved. `resolved` means a single org was found and the policy fields reflect it; `ambiguous` means the actor belongs to multiple orgs with no valid default; `none` means the actor belongs to no org.","anyOf":[{"type":"string","enum":["resolved"]},{"type":"string","enum":["ambiguous"]},{"type":"string","enum":["none"]}]},"policy":{"type":"object","required":["managedRequirementsPresent","fingerprint"],"properties":{"managedRequirementsPresent":{"description":"Whether the actor's org mandates any managed plugins. The vetted, policy-gated requirement list still comes from POST /v1/policy/evaluate.","type":"boolean"},"fingerprint":{"description":"Changes whenever the org's effective policy changes. A client that sees a new fingerprint re-evaluates; an unchanged one means nothing to do.","type":"string"}}}}}}}}}}}},"304":{"description":"Not Modified — client already has the current state","headers":{"ETag":{"schema":{"type":"string"},"description":"Quoted entity-tag for the current state document, e.g. \"abc123\"."}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/llm/keys":{"post":{"tags":["LLM"],"description":"Issues an LLM API key scoped to the requested models. The key may only call the listed model names; calls to anything else are rejected. Expires after `duration` (1-99 hours or minutes, e.g. `72h` or `30m`; default 72h).","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["models"],"properties":{"models":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}},"duration":{"pattern":"^[1-9][0-9]?(h|m)$","type":"string"},"purpose":{"type":"string","enum":["code_review"]},"operationId":{"format":"uuid","type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["llm-key"]},"attributes":{"type":"object","required":["key","expiresAt"],"properties":{"key":{"type":"string"},"expiresAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["LLM"],"description":"Revokes a single LLM key issued to the calling actor. Provide either the key secret (`key`) or its alias (`keyAlias`): exactly one. Returns 404 when the key does not exist or is not owned by the caller, revoking nothing.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"minProperties":1,"maxProperties":1,"type":"object","properties":{"key":{"minLength":1,"type":"string"},"keyAlias":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/llm/available":{"get":{"tags":["LLM"],"description":"Lists the models the authenticated caller may scope an LLM key to via `POST /v1/llm/keys`, the same actor-scoped catalogue that endpoint validates against. `models` carries the bare model names; `modelSpecs` carries each model's display and capability metadata (same set, same order). Tessl-only models are included only for Tessl members.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string","enum":["llm-available-models"]},"type":{"type":"string","enum":["llm-available-models"]},"attributes":{"type":"object","required":["models","modelSpecs"],"properties":{"models":{"type":"array","items":{"type":"string"}},"modelSpecs":{"type":"array","items":{"type":"object","required":["id","displayName","reasoning","input","contextWindow","maxTokens","apiSurface"],"properties":{"id":{"description":"Bare model name: the value to pass as the `model` scope when minting a key via `POST /v1/llm/keys`.","type":"string"},"displayName":{"description":"Human-readable label for the model picker.","type":"string"},"reasoning":{"type":"boolean"},"input":{"type":"array","items":{"anyOf":[{"type":"string","enum":["text"]},{"type":"string","enum":["image"]}]}},"contextWindow":{"type":"number"},"maxTokens":{"type":"number"},"apiSurface":{"anyOf":[{"type":"string","enum":["chat_completions"]},{"type":"string","enum":["responses"]}]}}}},"sessionDefaultModel":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/llm/cost":{"post":{"tags":["LLM"],"description":"Quotes the credit cost of LLM usage. Each entry is the usage of ONE model call and is priced on its own, because provider pricing is tiered on the size of a single request: summing a session into one entry would quote the long-context rate. Uses the same pricing and the same token→credit rate that bills real usage, so a caller needs no copy of either. Does not record usage or spend credits. Usage on a model with no known price contributes 0 credits and the model is named in `unpricedModels`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["usage"],"properties":{"usage":{"minItems":1,"maxItems":50,"type":"array","items":{"additionalProperties":false,"type":"object","required":["model","inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens"],"properties":{"model":{"minLength":1,"maxLength":200,"type":"string"},"inputTokens":{"minimum":0,"type":"integer"},"outputTokens":{"minimum":0,"type":"integer"},"cacheReadTokens":{"minimum":0,"type":"integer"},"cacheWriteTokens":{"minimum":0,"type":"integer"}}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string","enum":["llm-cost-quote"]},"type":{"type":"string","enum":["llm-cost-quote"]},"attributes":{"type":"object","required":["credits","unpricedModels"],"properties":{"credits":{"type":"number"},"unpricedModels":{"type":"array","items":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/policy/evaluate":{"post":{"summary":"Evaluate generic policy action decisions for a batch of requests","tags":["Policy"],"description":"Returns generic policy decisions and follow-up requests for registered policy actions.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["requests"],"properties":{"clientVersion":{"type":"string"},"context":{"type":"object","properties":{"isCi":{"type":"boolean"},"runId":{"type":"string"},"scope":{"anyOf":[{"type":"string","enum":["global"]},{"type":"string","enum":["project"]}]},"project":{"type":"object","properties":{"id":{"type":"string"},"workspaceSlug":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}]}}}}},"acceptedWarnings":{"type":"boolean"},"requests":{"maxItems":200,"type":"array","items":{"type":"object","required":["id","action","source"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"source":{}}}}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["policy-evaluation"]},"attributes":{"type":"object","required":["policyVersion","orgId","evaluationId","decisions","additionalRequests"],"properties":{"policyVersion":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]},"evaluationId":{"type":"string"},"decisions":{"type":"array","items":{"anyOf":[{"type":"object","required":["id","action","decision","reasons","requiresInteractiveConfirmation"],"properties":{"id":{"type":"string"},"action":{"type":"string","enum":["install"]},"decision":{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["block"]}]},"reasons":{"type":"array","items":{"anyOf":[{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["source-restricted"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"deniedSourceKind":{"anyOf":[{"type":"string","enum":["registry"]},{"type":"string","enum":["git"]}]},"gitSource":{"type":"object","required":["host","path"],"properties":{"host":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}}}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["workspace-access"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-unresolved"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-required"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["managedWorkspace","policyName","dependencyName","requiredVersion"],"properties":{"managedWorkspace":{"type":"string"},"managedScopeKind":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]}]},"policyName":{"type":"string"},"dependencyName":{"type":"string"},"requiredVersion":{"type":"string"}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["release-age"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["requestedVersion","requestedReleaseAgeInDays","minimumAgeInDays","fallbackVersion","fallbackPublishedAt"],"properties":{"requestedVersion":{"type":"string"},"requestedReleaseAgeInDays":{"minimum":0,"type":"integer"},"minimumAgeInDays":{"minimum":0,"type":"integer"},"fallbackVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackPublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackSecurityReasons":{"type":"array","items":{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}]}},"resolvedSource":{"anyOf":[{"type":"object","required":["id","source","tile"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["registry"]},"tile":{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"},"version":{"type":"string"}}}}},{"type":"object","required":["id","source","url"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["git"]},"url":{"type":"string"},"branch":{"type":"string"},"subpath":{"type":"string"}}},{"type":"object","required":["id","source","path"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["file"]},"path":{"type":"string"}}}]},"fallbackSource":{"anyOf":[{"type":"object","required":["id","source","tile"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["registry"]},"tile":{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"},"version":{"type":"string"}}}}},{"type":"object","required":["id","source","url"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["git"]},"url":{"type":"string"},"branch":{"type":"string"},"subpath":{"type":"string"}}},{"type":"object","required":["id","source","path"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["file"]},"path":{"type":"string"}}}]},"requiresInteractiveConfirmation":{"type":"boolean"},"minimumReleaseAgeDays":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}]}}},{"type":"object","required":["id","action","decision","reasons"],"properties":{"id":{"type":"string"},"action":{"type":"string","enum":["uninstall"]},"decision":{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["block"]}]},"reasons":{"type":"array","items":{"anyOf":[{"type":"object","required":["code","kind","ruleId","severity","message","details"],"properties":{"code":{"type":"string","enum":["managed-project.required"]},"kind":{"type":"string","enum":["managed-project-required"]},"ruleId":{"type":"string","enum":["managed-project-policy"]},"severity":{"type":"string","enum":["error"]},"message":{"type":"string"},"details":{"type":"object","required":["dependencyName","requiredVersion","managedWorkspace","policyName"],"properties":{"dependencyName":{"type":"string"},"requiredVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"managedWorkspace":{"type":"string"},"policyName":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"object","required":["code","kind","ruleId","severity","message"],"properties":{"code":{"type":"string","enum":["managed-project.unresolved"]},"kind":{"type":"string","enum":["managed-project-unresolved"]},"ruleId":{"type":"string","enum":["managed-project-policy"]},"severity":{"type":"string","enum":["error"]},"message":{"type":"string"}}}]}}}}]}},"additionalRequests":{"type":"array","items":{"type":"object","required":["id","action","source","origin","decision"],"properties":{"id":{"type":"string"},"action":{"type":"string","enum":["install"]},"source":{"anyOf":[{"type":"object","required":["id","source","tile"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["registry"]},"tile":{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"},"version":{"type":"string"}}}}},{"type":"object","required":["id","source","url"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["git"]},"url":{"type":"string"},"branch":{"type":"string"},"subpath":{"type":"string"}}},{"type":"object","required":["id","source","path"],"properties":{"id":{"type":"string"},"source":{"type":"string","enum":["file"]},"path":{"type":"string"}}}]},"origin":{"type":"string","enum":["managed-project.required"]},"decision":{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["block"]}]},"reasons":{"type":"array","items":{"anyOf":[{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["source-restricted"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"deniedSourceKind":{"anyOf":[{"type":"string","enum":["registry"]},{"type":"string","enum":["git"]}]},"gitSource":{"type":"object","required":["host","path"],"properties":{"host":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}}}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["workspace-access"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-unresolved"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-required"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["managedWorkspace","policyName","dependencyName","requiredVersion"],"properties":{"managedWorkspace":{"type":"string"},"managedScopeKind":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]}]},"policyName":{"type":"string"},"dependencyName":{"type":"string"},"requiredVersion":{"type":"string"}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["release-age"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["requestedVersion","requestedReleaseAgeInDays","minimumAgeInDays","fallbackVersion","fallbackPublishedAt"],"properties":{"requestedVersion":{"type":"string"},"requestedReleaseAgeInDays":{"minimum":0,"type":"integer"},"minimumAgeInDays":{"minimum":0,"type":"integer"},"fallbackVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackPublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackSecurityReasons":{"type":"array","items":{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}]}}}}}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/policies/{targetType}/{targetId}":{"get":{"tags":["Policy"],"description":"Returns the raw policy doc stored for a specific target. All section×target combinations are accepted; sections that do not apply to a given target are stored but have no effect at evaluation time.","parameters":[{"schema":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"in":"path","name":"targetType","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"targetId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["policy"]},"attributes":{"type":"object","required":["targetType","targetId","policyDoc","updatedAt"],"properties":{"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"},"policyDoc":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"number","enum":[1]},"install":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToWarn","minSeverityToBlock"],"properties":{"minSeverityToWarn":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}},"sourceRestriction":{"additionalProperties":false,"type":"object","required":["registryScope","allowGitSources"],"properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"allowGitSources":{"type":"boolean"},"gitSourceAllowlist":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["host","path"],"properties":{"host":{"minLength":1,"type":"string"},"path":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"minimumReleaseAge":{"additionalProperties":false,"type":"object","required":["days"],"properties":{"days":{"minimum":0,"type":"integer"}}}}}}},"publish":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToBlock"],"properties":{"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}}}}}},"dependencies":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","properties":{"requiredDependencies":{"type":"object","additionalProperties":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"string"}}}},"forceGlobalInstall":{"type":"boolean"}}}}}}},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"put":{"tags":["Policy"],"description":"Writes the sections present in the request body to the target, merging with any existing sections not mentioned. Callers only need to include the sections they intend to set — omitted sections are preserved unchanged. To clear a section, delete the row and re-create it without that section. All section×target combinations are accepted on the backend; sections that are irrelevant to a given target are stored but have no effect at evaluation time. Requires org-level edit permission on the owning org regardless of target type.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["policyDoc"],"properties":{"policyDoc":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"number","enum":[1]},"install":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToWarn","minSeverityToBlock"],"properties":{"minSeverityToWarn":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}},"sourceRestriction":{"additionalProperties":false,"type":"object","required":["registryScope","allowGitSources"],"properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"allowGitSources":{"type":"boolean"},"gitSourceAllowlist":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["host","path"],"properties":{"host":{"minLength":1,"type":"string"},"path":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"minimumReleaseAge":{"additionalProperties":false,"type":"object","required":["days"],"properties":{"days":{"minimum":0,"type":"integer"}}}}}}},"publish":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToBlock"],"properties":{"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}}}}}},"dependencies":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","properties":{"requiredDependencies":{"type":"object","additionalProperties":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"string"}}}},"forceGlobalInstall":{"type":"boolean"}}}}}}}}}}}},"parameters":[{"schema":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"in":"path","name":"targetType","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"targetId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["policy"]},"attributes":{"type":"object","required":["targetType","targetId","policyDoc","updatedAt"],"properties":{"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"},"policyDoc":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"number","enum":[1]},"install":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToWarn","minSeverityToBlock"],"properties":{"minSeverityToWarn":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}},"sourceRestriction":{"additionalProperties":false,"type":"object","required":["registryScope","allowGitSources"],"properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"allowGitSources":{"type":"boolean"},"gitSourceAllowlist":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["host","path"],"properties":{"host":{"minLength":1,"type":"string"},"path":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"minimumReleaseAge":{"additionalProperties":false,"type":"object","required":["days"],"properties":{"days":{"minimum":0,"type":"integer"}}}}}}},"publish":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToBlock"],"properties":{"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}}}}}},"dependencies":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","properties":{"requiredDependencies":{"type":"object","additionalProperties":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"string"}}}},"forceGlobalInstall":{"type":"boolean"}}}}}}},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Policy"],"description":"Deletes the policy row for a specific target. Requires org-level edit permission on the owning org regardless of target type.","parameters":[{"schema":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"in":"path","name":"targetType","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"targetId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/policies/{targetType}/{targetId}/effective":{"get":{"tags":["Policy"],"description":"Returns the effective policy for a target by merging the full hierarchy (org → workspace → managed_project) with strictest-wins semantics. Each field reflects the strictest value set at any level; absent fields at all levels are absent in the result. Pass `?provenance=true` to also receive `policySource`: per-field arrays of the levels that set each value, ordered strictest-first.","parameters":[{"schema":{"type":"boolean"},"in":"query","name":"provenance","required":false},{"schema":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"in":"path","name":"targetType","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"targetId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["policy"]},"attributes":{"type":"object","required":["targetType","targetId","effectivePolicyDoc"],"properties":{"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"},"effectivePolicyDoc":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"number","enum":[1]},"install":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToWarn","minSeverityToBlock"],"properties":{"minSeverityToWarn":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}},"sourceRestriction":{"additionalProperties":false,"type":"object","required":["registryScope","allowGitSources"],"properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"allowGitSources":{"type":"boolean"},"gitSourceAllowlist":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["host","path"],"properties":{"host":{"minLength":1,"type":"string"},"path":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"minimumReleaseAge":{"additionalProperties":false,"type":"object","required":["days"],"properties":{"days":{"minimum":0,"type":"integer"}}}}}}},"publish":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToBlock"],"properties":{"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}}}}}},"dependencies":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","properties":{"requiredDependencies":{"type":"object","additionalProperties":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"string"}}}},"forceGlobalInstall":{"type":"boolean"}}}}}}},"policySource":{"additionalProperties":false,"type":"object","properties":{"install":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToWarn","minSeverityToBlock"],"properties":{"minSeverityToWarn":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["value","targetType","targetId"],"properties":{"value":{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"}}}},"minSeverityToBlock":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["value","targetType","targetId"],"properties":{"value":{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"}}}}}},"sourceRestriction":{"additionalProperties":false,"type":"object","required":["registryScope","allowGitSources"],"properties":{"registryScope":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["value","targetType","targetId"],"properties":{"value":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"}}}},"allowGitSources":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["value","targetType","targetId"],"properties":{"value":{"type":"boolean"},"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"}}}}}},"minimumReleaseAge":{"additionalProperties":false,"type":"object","required":["days"],"properties":{"days":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["value","targetType","targetId"],"properties":{"value":{"minimum":0,"type":"integer"},"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"}}}}}}}}}},"publish":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToBlock"],"properties":{"minSeverityToBlock":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["value","targetType","targetId"],"properties":{"value":{"anyOf":[{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"}}}}}}}}}},"dependencies":{"additionalProperties":false,"type":"object","required":["rules"],"properties":{"rules":{"additionalProperties":false,"type":"object","properties":{"requiredDependencies":{"type":"object","additionalProperties":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["value","targetType","targetId"],"properties":{"value":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"string"}}},"targetType":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]},{"type":"string","enum":["managed_project"]}]},"targetId":{"format":"uuid","type":"string"}}}}}}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles":{"get":{"tags":["Tiles"],"description":"Lists tiles in the catalog. Supports search, filtering by workspace/registry/featured, and ranked sorting.","parameters":[{"schema":{"default":"-updatedAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["similarity"]},{"type":"string","enum":["-similarity"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]},{"type":"string","enum":["relevance"]},{"type":"string","enum":["-relevance"]},{"type":"string","enum":["evalImprovementMultiplier"]},{"type":"string","enum":["-evalImprovementMultiplier"]}]}},{"anyOf":[{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["similarity"]},{"type":"string","enum":["-similarity"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]},{"type":"string","enum":["relevance"]},{"type":"string","enum":["-relevance"]},{"type":"string","enum":["evalImprovementMultiplier"]},{"type":"string","enum":["-evalImprovementMultiplier"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":20,"default":20,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[fullName]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[fullName][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[fullName][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[fullName][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[fullName][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[fullName][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[fullName][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[fullName][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search][like]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[archived]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[archived][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[archived][ne]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][eq]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][ne]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][gt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][gte]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][lt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][lte]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][like]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][eq]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][ne]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][gt]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][gte]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][lt]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][lte]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][like]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSkills]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSkills][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSkills][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSteering]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSteering][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSteering][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasDocs]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasDocs][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasDocs][ne]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["versions"]},{"type":"array","items":{"type":"string","enum":["versions"]}}]},"in":"query","name":"include","required":false},{"schema":{"type":"boolean"},"in":"query","name":"includeModerationFailed","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships","meta"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile"]},"attributes":{"type":"object","required":["name","describes","featured","isPrivate","fullName","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"featured":{"type":"boolean"},"isPrivate":{"type":"boolean"},"fullName":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"similarity":{"anyOf":[{"type":"number"},{"type":"null"}]},"relevance":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"versions":{"type":"array","items":{"type":"object","required":["describes","version","summary","major","minor","patch","archived","createdAt","tesslVerified","docs","hasDocs","hasSteering","hasSkills","evalScore","evalBaselineScore","evalImprovement","evalImprovementMultiplier","moderationStatus","moderationError"],"properties":{"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"version":{"format":"date-time","type":"string"},"summary":{"type":"string"},"major":{"type":"number"},"minor":{"type":"number"},"patch":{"type":"number"},"archived":{"type":"boolean"},"createdAt":{"type":"string"},"tesslVerified":{"type":"boolean"},"docs":{"anyOf":[{"type":"string"},{"type":"null"}]},"hasDocs":{"type":"boolean"},"hasSteering":{"type":"boolean"},"hasSkills":{"type":"boolean"},"evalScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalBaselineScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"moderationStatus":{"description":"Aggregate outcome of the moderation pipeline. `pass` means moderation passed; `skipped` means moderation did not run; `pending` means moderation is in progress; `fail` means moderation rejected the version; `error` means moderation could not complete.","anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]},{"type":"string","enum":["error"]},{"type":"string","enum":["skipped"]}]},"moderationError":{"anyOf":[{"description":"Reason for non-visible moderation state. Populated for `fail` and `error`. Null for `pass`, `skipped`, and `pending`.","type":"string"},{"type":"null"}]},"moderationPassed":{"deprecated":true,"type":"boolean"},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}},"relationships":{"type":"object","required":["workspace"],"properties":{"workspace":{"type":"object","required":["data","links"],"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}}}}}},"meta":{"type":"object","required":["allowedActions"],"properties":{"allowedActions":{"type":"array","items":{"type":"string"}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"summary":"Publish a tile version","tags":["Tiles"],"description":"Publishes a new tile version to the registry. If the tile does not yet exist, it will be created automatically. The request body should be a gzipped tar archive (tar.gz) containing the tile manifest (tile.json) and tile contents, e.g. markdown documentation files, eval scenarios, etc. The tile name and version are extracted from the manifest file.","parameters":[{"schema":{"type":"string","enum":["application/x-tar"]},"in":"header","name":"content-type","required":true},{"schema":{"type":"string"},"in":"header","name":"github-oidc-token","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile"]},"attributes":{"type":"object","required":["featured","isPrivate","workspaceId","name","version","fullName","describes","createdAt","updatedAt"],"properties":{"featured":{"type":"boolean"},"isPrivate":{"type":"boolean"},"workspaceId":{"format":"uuid","type":"string"},"name":{"minLength":1,"maxLength":90,"type":"string"},"version":{"type":"string"},"fullName":{"type":"string"},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}},"meta":{"type":"object","required":["skippedFiles"],"properties":{"skippedFiles":{"description":"Files from the uploaded archive that were not published because their extension is not in the allowed list. Capped at a bounded length; check skippedFilesTruncated to tell whether more were skipped than are listed.","type":"array","items":{"type":"string"}},"skippedFilesTruncated":{"description":"True when the skippedFiles list is incomplete: either additional skipped files were omitted because the count is capped, or one or more listed paths were abbreviated to fit the per-name byte limit.","type":"boolean"}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"description":"Not Implemented","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Implemented"]},"status":{"type":"number","enum":[501]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/match":{"post":{"tags":["Tiles"],"description":"Returns the tiles that describe each of the given package URLs (purls).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["purls"],"properties":{"purls":{"minItems":0,"maxItems":1000,"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","required":["workspaceName","tileName","version","describes"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"},"version":{"type":"string"},"describes":{"type":"string"}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}":{"get":{"tags":["Tiles"],"description":"Fetches a tile by workspace and tile name, including its latest version.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes","relationships","meta"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile"]},"attributes":{"type":"object","required":["name","fullName","featured","isPrivate","createdAt","updatedAt","latestVersion","latestVersionData","archived","archivedBy","archivedAt","archivedReason","moderationPassed","moderationError","tesslVerified","sourceUrl"],"properties":{"name":{"type":"string"},"fullName":{"type":"string"},"featured":{"type":"boolean"},"isPrivate":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"latestVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"latestVersionData":{"anyOf":[{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile-version"]},"attributes":{"type":"object","required":["fingerprint","version","major","minor","patch","prerelease","describes","docs","steering","hasSteering","hasSkills","hasDocs","summary","archived","archivedAt","archivedBy","archivedReason","moderationStatus","moderationPassed","moderationError","createdAt","updatedAt","evalScore","evalBaselineScore","evalImprovement","evalImprovementMultiplier","scores","publishMeta"],"properties":{"fingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"version":{"type":"string"},"major":{"type":"number"},"minor":{"type":"number"},"patch":{"type":"number"},"prerelease":{"anyOf":[{"type":"string"},{"type":"null"}]},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"docs":{"anyOf":[{"type":"string"},{"type":"null"}]},"steering":{"anyOf":[{"type":"object","additionalProperties":{"type":"object","required":["rules"],"properties":{"rules":{"type":"string"}}}},{"type":"null"}]},"hasSteering":{"type":"boolean"},"hasSkills":{"type":"boolean"},"hasDocs":{"type":"boolean"},"summary":{"type":"string"},"archived":{"type":"boolean"},"archivedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"archivedBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"archivedReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"moderationStatus":{"description":"Aggregate outcome of the moderation pipeline. `pass` means moderation passed; `skipped` means moderation did not run; `pending` means moderation is in progress; `fail` means moderation rejected the version; `error` means moderation could not complete.","anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]},{"type":"string","enum":["error"]},{"type":"string","enum":["skipped"]}]},"moderationPassed":{"deprecated":true,"type":"boolean"},"moderationError":{"anyOf":[{"description":"Reason for non-visible moderation state. Populated for `fail` and `error`. Null for `pass`, `skipped`, and `pending`.","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"evalScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalBaselineScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"publishMeta":{"anyOf":[{"type":"object","required":["source","userId"],"properties":{"source":{"type":"string","enum":["cli"]},"userId":{"anyOf":[{"type":"string"},{"type":"null"}]},"repoVerification":{"type":"object","required":["outcome","claimedRepository","verifiedRepository"],"properties":{"outcome":{"anyOf":[{"type":"string","enum":["verified"]},{"type":"string","enum":["mismatch"]},{"type":"string","enum":["self-declared"]}]},"claimedRepository":{"anyOf":[{"type":"string"},{"type":"null"}]},"verifiedRepository":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"object","required":["source"],"properties":{"source":{"type":"string","enum":["github"]},"repoVerification":{"type":"object","required":["outcome","claimedRepository","verifiedRepository"],"properties":{"outcome":{"anyOf":[{"type":"string","enum":["verified"]},{"type":"string","enum":["mismatch"]},{"type":"string","enum":["self-declared"]}]},"claimedRepository":{"anyOf":[{"type":"string"},{"type":"null"}]},"verifiedRepository":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"object","required":["source","userId"],"properties":{"source":{"type":"string","enum":["mcp"]},"userId":{"anyOf":[{"type":"string"},{"type":"null"}]}}}]}}}}},{"type":"null"}]},"archived":{"type":"boolean"},"archivedBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"archivedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"archivedReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"moderationPassed":{"deprecated":true,"type":"boolean"},"moderationError":{"anyOf":[{"description":"Reason for non-visible moderation state. Populated for `fail` and `error`. Null for `pass`, `skipped`, and `pending`.","type":"string"},{"type":"null"}]},"tesslVerified":{"type":"boolean"},"sourceUrl":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"relationships":{"type":"object","required":["workspace"],"properties":{"workspace":{"type":"object","required":["data","links"],"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}}}}}},"meta":{"type":"object","required":["allowedActions"],"properties":{"allowedActions":{"type":"array","items":{"type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"tags":["Tiles"],"description":"Updates a tile (visibility, featured flag, archive/restore).","requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"minProperties":1,"type":"object","required":["archived"],"properties":{"archived":{"type":"boolean","enum":[true]},"archivedReason":{"type":"string"}}},{"minProperties":1,"type":"object","required":["archived"],"properties":{"archived":{"type":"boolean","enum":[false]}}}]}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes","relationships"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile"]},"attributes":{"type":"object","required":["name","fullName","featured","isPrivate","archived","archivedAt","archivedBy","archivedReason","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"fullName":{"type":"string"},"featured":{"type":"boolean"},"isPrivate":{"type":"boolean"},"archived":{"type":"boolean"},"archivedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"archivedBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"archivedReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}},"relationships":{"type":"object","required":["workspace"],"properties":{"workspace":{"type":"object","required":["data","links"],"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Tiles"],"description":"Deletes a tile and all of its versions. Allowed within 48 hours of publish, or any time if the tile is private or has fewer than 500 downloads.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"description":"Service Unavailable","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Service Unavailable"]},"status":{"type":"number","enum":[503]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}/stats":{"get":{"tags":["Tiles"],"description":"Returns install and skill-activation usage stats for a tile (7d or 30d window).","parameters":[{"schema":{"default":"30d","anyOf":[{"type":"string","enum":["7d"]},{"type":"string","enum":["30d"]}]},"in":"query","name":"period","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tile-stats"]},"attributes":{"type":"object","required":["usage"],"properties":{"usage":{"type":"object","required":["period","installs","activations"],"properties":{"period":{"anyOf":[{"type":"string","enum":["7d"]},{"type":"string","enum":["30d"]}]},"installs":{"type":"object","required":["total","active","weekly"],"properties":{"total":{"type":"integer"},"active":{"type":"integer"},"weekly":{"type":"array","items":{"type":"object","required":["week","count"],"properties":{"week":{"type":"string"},"count":{"type":"integer"}}}}}},"activations":{"type":"object","required":["total","weekly","skills"],"properties":{"total":{"type":"integer"},"weekly":{"type":"array","items":{"type":"object","required":["week","count"],"properties":{"week":{"type":"string"},"count":{"type":"integer"}}}},"skills":{"type":"array","items":{"type":"object","required":["skill","total","weekly","versions"],"properties":{"skill":{"type":"string"},"total":{"type":"integer"},"weekly":{"type":"array","items":{"type":"object","required":["week","count"],"properties":{"week":{"type":"string"},"count":{"type":"integer"}}}},"versions":{"type":"array","items":{"type":"object","required":["version","total"],"properties":{"version":{"type":"string"},"total":{"type":"integer"}}}}}}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}/versions":{"get":{"tags":["Tiles"],"description":"Lists versions of a tile, with semver and describes filters. Pass `includeArchived=true` to also return archived versions (excluded by default).","parameters":[{"schema":{"default":"-version","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["version"]},{"type":"string","enum":["-version"]}]}},{"anyOf":[{"type":"string","enum":["version"]},{"type":"string","enum":["-version"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[major]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[major][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[major][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[major][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[major][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[major][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[major][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[major][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[minor]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[minor][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[minor][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[minor][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[minor][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[minor][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[minor][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[minor][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[patch]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[patch][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[patch][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[patch][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[patch][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[patch][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[patch][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[patch][like]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"includeArchived","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","relationships","links"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile-version"]},"attributes":{"type":"object","required":["fingerprint","version","major","minor","patch","prerelease","describes","archived","archivedAt","archivedBy","archivedReason","docs","steering","hasSteering","hasSkills","hasDocs","summary","tesslVerified","moderationStatus","moderationError","createdAt","updatedAt","evalScore","evalBaselineScore","evalImprovement","evalImprovementMultiplier"],"properties":{"fingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"version":{"type":"string"},"major":{"type":"number"},"minor":{"type":"number"},"patch":{"type":"number"},"prerelease":{"anyOf":[{"type":"string"},{"type":"null"}]},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"archived":{"type":"boolean"},"archivedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"archivedBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"archivedReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"docs":{"anyOf":[{"type":"string"},{"type":"null"}]},"steering":{"anyOf":[{"type":"object","additionalProperties":{"type":"object","required":["rules"],"properties":{"rules":{"type":"string"}}}},{"type":"null"}]},"hasSteering":{"type":"boolean"},"hasSkills":{"type":"boolean"},"hasDocs":{"type":"boolean"},"summary":{"type":"string"},"tesslVerified":{"type":"boolean"},"moderationStatus":{"description":"Aggregate outcome of the moderation pipeline. `pass` means moderation passed; `skipped` means moderation did not run; `pending` means moderation is in progress; `fail` means moderation rejected the version; `error` means moderation could not complete.","anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]},{"type":"string","enum":["error"]},{"type":"string","enum":["skipped"]}]},"moderationError":{"anyOf":[{"description":"Reason for non-visible moderation state. Populated for `fail` and `error`. Null for `pass`, `skipped`, and `pending`.","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"evalScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalBaselineScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"relationships":{"type":"object","required":["tile"],"properties":{"tile":{"type":"object","required":["data","links"],"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}}}}}},"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}/versions/{version}":{"get":{"tags":["Tiles"],"description":"Fetches a specific tile version by semver string.","parameters":[{"schema":{"type":"boolean"},"in":"query","name":"includePolicyVerdict","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"in":"path","name":"version","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes","relationships"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile-version"]},"attributes":{"type":"object","required":["fingerprint","version","major","minor","patch","prerelease","describes","docs","steering","hasSteering","hasSkills","hasDocs","summary","archived","archivedAt","archivedBy","archivedReason","moderationStatus","moderationPassed","moderationError","createdAt","updatedAt","evalScore","evalBaselineScore","evalImprovement","evalImprovementMultiplier","scores"],"properties":{"fingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"version":{"type":"string"},"major":{"type":"number"},"minor":{"type":"number"},"patch":{"type":"number"},"prerelease":{"anyOf":[{"type":"string"},{"type":"null"}]},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"docs":{"anyOf":[{"type":"string"},{"type":"null"}]},"steering":{"anyOf":[{"type":"object","additionalProperties":{"type":"object","required":["rules"],"properties":{"rules":{"type":"string"}}}},{"type":"null"}]},"hasSteering":{"type":"boolean"},"hasSkills":{"type":"boolean"},"hasDocs":{"type":"boolean"},"summary":{"type":"string"},"archived":{"type":"boolean"},"archivedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"archivedBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"archivedReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"moderationStatus":{"description":"Aggregate outcome of the moderation pipeline. `pass` means moderation passed; `skipped` means moderation did not run; `pending` means moderation is in progress; `fail` means moderation rejected the version; `error` means moderation could not complete.","anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]},{"type":"string","enum":["error"]},{"type":"string","enum":["skipped"]}]},"moderationPassed":{"deprecated":true,"type":"boolean"},"moderationError":{"anyOf":[{"description":"Reason for non-visible moderation state. Populated for `fail` and `error`. Null for `pass`, `skipped`, and `pending`.","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"evalScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalBaselineScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"policyVerdict":{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["block"]}]},"policyReasons":{"type":"array","items":{"anyOf":[{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["source-restricted"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"deniedSourceKind":{"anyOf":[{"type":"string","enum":["registry"]},{"type":"string","enum":["git"]}]},"gitSource":{"type":"object","required":["host","path"],"properties":{"host":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}}}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["workspace-access"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-unresolved"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","properties":{}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["managed-project-required"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["managedWorkspace","policyName","dependencyName","requiredVersion"],"properties":{"managedWorkspace":{"type":"string"},"managedScopeKind":{"anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]}]},"policyName":{"type":"string"},"dependencyName":{"type":"string"},"requiredVersion":{"type":"string"}}}}},{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["release-age"]},"ruleId":{"type":"string"},"severity":{"type":"string","enum":["error"]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["requestedVersion","requestedReleaseAgeInDays","minimumAgeInDays","fallbackVersion","fallbackPublishedAt"],"properties":{"requestedVersion":{"type":"string"},"requestedReleaseAgeInDays":{"minimum":0,"type":"integer"},"minimumAgeInDays":{"minimum":0,"type":"integer"},"fallbackVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackPublishedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"fallbackSecurityReasons":{"type":"array","items":{"type":"object","required":["kind","ruleId","severity","code","message","details"],"properties":{"kind":{"type":"string","enum":["security-finding"]},"ruleId":{"type":"string"},"severity":{"anyOf":[{"type":"string","enum":["info"]},{"type":"string","enum":["warn"]},{"type":"string","enum":["error"]}]},"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","required":["securityLevel","securityStatus","findings","registryUrl"],"properties":{"securityLevel":{"anyOf":[{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},{"type":"null"}]},"securityStatus":{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["pending"]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","code","title","reasoning","issueDescription"],"properties":{"severity":{"enum":["LOW","MEDIUM","HIGH","CRITICAL"],"type":"string"},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"registryUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}]}}}},"relationships":{"type":"object","required":["tile"],"properties":{"tile":{"type":"object","required":["data","links"],"properties":{"data":{"type":"object","required":["id","type"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile"]}}},"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"tags":["Tiles"],"description":"Updates a tile version (archive/restore).","requestBody":{"required":true,"content":{"application/json":{"schema":{"minProperties":1,"additionalProperties":false,"type":"object","properties":{"archived":{"type":"boolean"},"archivedReason":{"type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"in":"path","name":"version","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile-version"]},"attributes":{"type":"object","required":["fingerprint","version","major","minor","patch","describes","docs","archived","archivedAt","archivedBy","archivedReason","summary","createdAt","updatedAt"],"properties":{"fingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"version":{"type":"string"},"major":{"type":"number"},"minor":{"type":"number"},"patch":{"type":"number"},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"docs":{"anyOf":[{"type":"string"},{"type":"null"}]},"archived":{"type":"boolean"},"archivedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"archivedBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"archivedReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"summary":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Tiles"],"description":"Deletes a tile version. Allowed within 48 hours of publish, or any time if the tile is private or has fewer than 500 downloads.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"in":"path","name":"version","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}/versions/{version}/files":{"get":{"tags":["Tiles"],"description":"Lists or downloads (as a tarball) the files in a tile version.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"in":"path","name":"version","required":true},{"schema":{"default":"application/gzip","anyOf":[{"type":"string","enum":["application/gzip"]},{"type":"string","enum":["application/json"]}]},"in":"header","name":"accept","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["file"]},"attributes":{"type":"object","required":["path"],"properties":{"path":{"type":"string"}}}}}}}}},"application/gzip":{"schema":{}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["status","title","message","code"],"properties":{"status":{"type":"number","enum":[403]},"title":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"code":{"type":"string","enum":["CONTENTS_HIDDEN"]}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}/versions/{version}/files/{filePath}":{"get":{"tags":["Tiles"],"description":"Streams a single file from a tile version.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"in":"path","name":"version","required":true},{"schema":{"type":"string"},"in":"path","name":"filePath","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/zip":{"schema":{}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["status","title","message","code"],"properties":{"status":{"type":"number","enum":[403]},"title":{"type":"string","enum":["Forbidden"]},"message":{"type":"string"},"code":{"type":"string","enum":["CONTENTS_HIDDEN"]}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}/versions/{version}/eval-suite":{"get":{"tags":["Tiles","Evals"],"description":"Returns the eval suite (scenarios + latest run status) for a tile version.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"in":"path","name":"version","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-suite"]},"attributes":{"type":"object","required":["status","evalRunId","scenarios","createdAt","updatedAt","expectedVariants","lastScoredAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"evalRunId":{"format":"uuid","type":"string"},"scenarios":{"type":"array","items":{"type":"object","required":["id","fingerprint","task","rubric","createdAt","updatedAt","solutions"],"properties":{"id":{"format":"uuid","type":"string"},"fingerprint":{"pattern":"^[a-f0-9]{64}$","type":"string"},"task":{"type":"string"},"path":{"type":"string"},"shortDescription":{"type":"string"},"rubric":{"type":"object","required":["context","type","checklist"],"properties":{"context":{"minLength":1,"type":"string"},"type":{"type":"string","enum":["weighted_checklist"]},"checklist":{"minItems":1,"type":"array","items":{"type":"object","required":["name","description","max_score"],"properties":{"name":{"minLength":1,"type":"string"},"description":{"minLength":1,"type":"string"},"max_score":{"minimum":0,"type":"number"}}}}}},"qualityAssessment":{"type":"object","required":["feasibility","feasibility_notes","leakage","leakage_evidence","scenario_value","scenario_value_notes","assessed_at","model"],"properties":{"feasibility":{"anyOf":[{"type":"string","enum":["FEASIBLE"]},{"type":"string","enum":["NOT_FEASIBLE"]}]},"feasibility_notes":{"type":"string"},"leakage":{"anyOf":[{"type":"string","enum":["NO_LEAKAGE"]},{"type":"string","enum":["LOW_LEAKAGE"]},{"type":"string","enum":["MEDIUM_LEAKAGE"]},{"type":"string","enum":["HIGH_LEAKAGE"]}]},"leakage_evidence":{"type":"array","items":{"type":"object","required":["scenario_statement","criteria_rubric"],"properties":{"scenario_statement":{"type":"string"},"criteria_rubric":{"type":"string"}}}},"scenario_value":{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]}]},"scenario_value_notes":{"type":"string"},"assessed_at":{"format":"date-time","type":"string"},"model":{"type":"string"}}},"qualityFilterStatus":{"anyOf":[{"type":"string","enum":["included"]},{"type":"string","enum":["rejected"]}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"solutions":{"type":"array","items":{"type":"object","required":["id","variant","solutionTarGZS3Key","solutionMetadata","assessmentResults","assessmentMetadata","createdAt","updatedAt"],"properties":{"id":{"format":"uuid","type":"string"},"variant":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]},"solutionTarGZS3Key":{"anyOf":[{"type":"string"},{"type":"null"}]},"solutionMetadata":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"totalTimeMs":{"type":"number"},"agentDurationMs":{"type":"number"},"costUsd":{"type":"number"},"totalTurns":{"type":"integer"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheCreationTokens":{"type":"number"}}},{"type":"null"}]},"assessmentResults":{"anyOf":[{"type":"array","items":{"type":"object","required":["name","score","reasoning"],"properties":{"name":{"minLength":1,"type":"string"},"score":{"minimum":0,"type":"number"},"max_score":{"minimum":0,"type":"number"},"reasoning":{"minLength":1,"type":"string"}}}},{"type":"null"}]},"assessmentMetadata":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"runs":{"type":"array","items":{"anyOf":[{"type":"object","required":["status","solutionId","score","createdAt"],"properties":{"status":{"type":"string","enum":["completed"]},"solutionId":{"format":"uuid","type":"string"},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"totalTimeMs":{"type":"number"},"totalTurns":{"type":"number"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheCreationTokens":{"type":"number"}}},{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending"]}}}]}},"activation":{"type":"object","required":["activatedSkills"],"properties":{"activatedSkills":{"type":"array","items":{"type":"string"}},"skipped":{"type":"boolean"},"error":{"type":"boolean"}}}}}}}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"expectedVariants":{"type":"array","items":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"},"code":{"type":"string"},"url":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}/versions/{version}/skill-reviews":{"get":{"tags":["Tiles","Skills"],"description":"Returns the LLM skill reviews (per skill) for a tile version.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"in":"path","name":"version","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile-version-skill-review"]},"attributes":{"type":"object","required":["path","name","description","skillMdFingerprint","reviewResults","reviewScore","reviewUpdatedAt"],"properties":{"path":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"skillMdFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"reviewResults":{"anyOf":[{"type":"object","required":["validation"],"properties":{"validation":{"type":"object","required":["checks","overallPassed","errorCount","warningCount"],"properties":{"skillName":{"type":"string"},"skillDescription":{"type":"string"},"checks":{"type":"array","items":{"type":"object","required":["name","status","message"],"properties":{"name":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["passed"]},{"type":"string","enum":["warning"]},{"type":"string","enum":["error"]}]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}},"overallPassed":{"type":"boolean"},"errorCount":{"type":"number"},"warningCount":{"type":"number"}}},"judges":{"type":"object","additionalProperties":{"type":"object","required":["success","scale"],"properties":{"success":{"type":"boolean"},"errorMessage":{"type":"string"},"scale":{"type":"object","required":["min","max"],"properties":{"min":{"type":"number"},"max":{"type":"number"}}},"evaluation":{"type":"object","required":["scores","overall_assessment","suggestions"],"properties":{"scores":{"type":"object","additionalProperties":{"type":"object","required":["score","reasoning"],"properties":{"score":{"type":"number"},"reasoning":{"type":"string"}}}},"overall_assessment":{"type":"string"},"suggestions":{"type":"array","items":{"type":"string"}},"validation_skipped":{"type":"boolean"}}},"weightedScore":{"type":"number"},"normalizedScore":{"type":"number"}}}},"scoring":{"type":"object","required":["components"],"properties":{"components":{"type":"array","items":{"type":"object","required":["id","weight","normalized"],"properties":{"id":{"type":"string"},"weight":{"type":"number"},"normalized":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}}}}},{"type":"null"}]},"reviewScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"reviewUpdatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/tiles/{workspaceName}/{tileName}/versions/{version}/skill-security-reviews":{"get":{"tags":["Tiles","Skills"],"description":"Returns the Snyk security reviews (per skill) for a tile version.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceName","required":true},{"schema":{"type":"string"},"in":"path","name":"tileName","required":true},{"schema":{"type":"string"},"in":"path","name":"version","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile-version-skill-security-review"]},"attributes":{"type":"object","required":["path","name","description","skillFingerprint","securityStatus","securityRiskLevel","securityLevel","securitySummary","securityUpdatedAt","securityFindings","securityOverrideMessage"],"properties":{"path":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"skillFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"securityStatus":{"anyOf":[{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},{"type":"null"}]},"securityRiskLevel":{"deprecated":true,"description":"Deprecated legacy Snyk risk level. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securitySummary":{"anyOf":[{"type":"string"},{"type":"null"}]},"securityUpdatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"securityFindings":{"type":"array","items":{"type":"object","required":["severity","severityLevel","code","title","reasoning","issueDescription"],"properties":{"severity":{"deprecated":true,"description":"Deprecated legacy Snyk per-finding severity. Use `severityLevel` instead.","anyOf":[{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"severityLevel":{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"located":{"type":"object","required":["sourceUrl","sourceRef","sourcePath","items"],"properties":{"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourcePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["kind","value","locations"],"properties":{"kind":{"type":"string"},"value":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"line":{"type":"number"},"snippet":{"type":"string"}}}},"rationale":{"type":"string"}}}}}}}}},"securityOverrideMessage":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/projects":{"get":{"summary":"List projects","tags":["Projects"],"description":"Lists projects, optionally filtered by workspace and name.","parameters":[{"schema":{"default":"-createdAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name][eq]","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["project"]},"attributes":{"type":"object","required":["workspaceId","name","sourceType","sourceUri","repoSubpath","createdBy","createdAt","updatedAt"],"properties":{"workspaceId":{"format":"uuid","type":"string"},"name":{"type":"string"},"sourceType":{"type":"string"},"sourceUri":{"type":"string"},"repoSubpath":{"type":"string"},"createdBy":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"summary":"Create a project","tags":["Projects"],"description":"Creates a project bound to a workspace and a source repository.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["workspaceId","name","sourceType","sourceUri"],"properties":{"workspaceId":{"format":"uuid","type":"string"},"name":{"minLength":1,"pattern":"^\\s*[A-Za-z0-9][A-Za-z0-9_-]{0,199}\\s*$","type":"string"},"sourceType":{"minLength":1,"maxLength":64,"type":"string"},"sourceUri":{"minLength":1,"maxLength":2048,"type":"string"},"repoSubpath":{"maxLength":4096,"type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["project"]},"attributes":{"type":"object","required":["workspaceId","name","sourceType","sourceUri","repoSubpath","createdBy","createdAt","updatedAt"],"properties":{"workspaceId":{"format":"uuid","type":"string"},"name":{"type":"string"},"sourceType":{"type":"string"},"sourceUri":{"type":"string"},"repoSubpath":{"type":"string"},"createdBy":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["status","title","message","code"],"properties":{"status":{"type":"number","enum":[409]},"title":{"type":"string"},"message":{"type":"string"},"code":{"anyOf":[{"type":"string","enum":["duplicate_project_name"]},{"type":"string","enum":["duplicate_project_provenance"]}]}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/projects/{projectId}":{"get":{"summary":"Get a project","tags":["Projects"],"description":"Fetches a project by id.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"projectId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["project"]},"attributes":{"type":"object","required":["workspaceId","name","sourceType","sourceUri","repoSubpath","createdBy","createdAt","updatedAt"],"properties":{"workspaceId":{"format":"uuid","type":"string"},"name":{"type":"string"},"sourceType":{"type":"string"},"sourceUri":{"type":"string"},"repoSubpath":{"type":"string"},"createdBy":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"summary":"Update a project","tags":["Projects"],"description":"Updates a project (rename, or replace source binding).","requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"additionalProperties":false,"type":"object","required":["name"],"properties":{"name":{"minLength":1,"pattern":"^\\s*[A-Za-z0-9][A-Za-z0-9_-]{0,199}\\s*$","type":"string"},"sourceType":{"not":{}},"sourceUri":{"not":{}},"repoSubpath":{"not":{}}}},{"additionalProperties":false,"type":"object","required":["sourceType","sourceUri"],"properties":{"name":{"not":{}},"sourceType":{"minLength":1,"maxLength":64,"type":"string"},"sourceUri":{"minLength":1,"maxLength":2048,"type":"string"},"repoSubpath":{"maxLength":4096,"type":"string"}}}]}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"projectId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["project"]},"attributes":{"type":"object","required":["workspaceId","name","sourceType","sourceUri","repoSubpath","createdBy","createdAt","updatedAt"],"properties":{"workspaceId":{"format":"uuid","type":"string"},"name":{"type":"string"},"sourceType":{"type":"string"},"sourceUri":{"type":"string"},"repoSubpath":{"type":"string"},"createdBy":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["status","title","message","code"],"properties":{"status":{"type":"number","enum":[409]},"title":{"type":"string"},"message":{"type":"string"},"code":{"anyOf":[{"type":"string","enum":["duplicate_project_name"]},{"type":"string","enum":["duplicate_project_provenance"]}]}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"summary":"Delete a project","tags":["Projects"],"description":"Soft-deletes a project: removes it from normal reads and frees its name and source binding for reuse, but preserves eval-run and scenario-generation history. Who deleted it is recorded in the audit log.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"projectId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/projects/validate":{"post":{"summary":"Validate a project source binding","tags":["Projects"],"description":"Validates whether a locator/source pair maps to an existing project, surfacing drift or conflicts.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["source"],"properties":{"locator":{"type":"object","required":["workspaceName","projectName"],"properties":{"workspaceName":{"minLength":1,"type":"string"},"projectName":{"minLength":1,"type":"string"}}},"source":{"type":"object","required":["sourceType","sourceUri"],"properties":{"sourceType":{"minLength":1,"maxLength":64,"type":"string"},"sourceUri":{"minLength":1,"maxLength":2048,"type":"string"},"repoSubpath":{"maxLength":4096,"type":"string"}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["project-validation"]},"attributes":{"type":"object","required":["locator","source","outcome","allowedActions","linkedProject","sourceMatches"],"properties":{"locator":{"anyOf":[{"type":"object","required":["workspaceName","projectName"],"properties":{"workspaceName":{"minLength":1,"type":"string"},"projectName":{"minLength":1,"type":"string"}}},{"type":"null"}]},"source":{"type":"object","required":["sourceType","sourceUri","repoSubpath"],"properties":{"sourceType":{"type":"string"},"sourceUri":{"type":"string"},"repoSubpath":{"type":"string"}}},"outcome":{"anyOf":[{"type":"string","enum":["match"]},{"type":"string","enum":["locator_drift"]},{"type":"string","enum":["provenance_drift"]},{"type":"string","enum":["full_mismatch"]},{"type":"string","enum":["conflict"]}]},"allowedActions":{"type":"array","items":{"anyOf":[{"type":"string","enum":["relink"]},{"type":"string","enum":["update_source"]},{"type":"string","enum":["update_name"]},{"type":"string","enum":["create"]}]}},"linkedProject":{"anyOf":[{"type":"object","required":["id","workspaceId","workspaceName","name","sourceType","sourceUri","repoSubpath"],"properties":{"id":{"format":"uuid","type":"string"},"workspaceId":{"format":"uuid","type":"string"},"workspaceName":{"type":"string"},"name":{"type":"string"},"sourceType":{"type":"string"},"sourceUri":{"type":"string"},"repoSubpath":{"type":"string"}}},{"type":"null"}]},"sourceMatches":{"type":"array","items":{"type":"object","required":["id","workspaceId","workspaceName","name","sourceType","sourceUri","repoSubpath"],"properties":{"id":{"format":"uuid","type":"string"},"workspaceId":{"format":"uuid","type":"string"},"workspaceName":{"type":"string"},"name":{"type":"string"},"sourceType":{"type":"string"},"sourceUri":{"type":"string"},"repoSubpath":{"type":"string"}}}}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/uploads":{"post":{"tags":["Workflows"],"description":"Issues a presigned S3 upload URL for a file. When `encrypted` is true, a per-upload RSA public key is also returned (SPKI DER, base64) for the client to encrypt to; `workspaceId` is required in that case. The matching private key is wrapped under the workspace data key and stored against the upload, never returned.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["contentType","filename"],"properties":{"contentType":{"type":"string"},"filename":{"minLength":1,"maxLength":255,"pattern":"^[^/\\\\<>:\"|?*\\x00-\\x1f]+$","type":"string"},"workspaceId":{"format":"uuid","type":"string"},"encrypted":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["presignedUrl","expiresIn","key"],"properties":{"presignedUrl":{"format":"uri","type":"string"},"expiresIn":{"type":"number"},"key":{"type":"string"},"publicKey":{"type":"string"}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users":{"get":{"tags":["Users"],"description":"Lists users with username filter and sorting.","parameters":[{"schema":{"default":"username","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["username"]},{"type":"string","enum":["-username"]},{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}},{"anyOf":[{"type":"string","enum":["username"]},{"type":"string","enum":["-username"]},{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[username]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[username][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[username][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[username][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[username][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[username][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[username][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[username][like]","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["username","createdAt"],"properties":{"username":{"type":"string"},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Users"],"description":"Creates the authenticated user record from their auth-provider claims.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["username","firstName","lastName","profilePictureUrl","createdAt","updatedAt"],"properties":{"username":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"profilePictureUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["username","firstName","lastName","profilePictureUrl","createdAt","updatedAt"],"properties":{"username":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"profilePictureUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/me":{"get":{"tags":["Users"],"description":"Returns the authenticated user's profile and feature flags.\n\n**Deprecated in favor of `GET /v1/whoami`.** This route predates API keys and resolves one to the user who created it, so it cannot describe the credential actually in use. `/v1/whoami` answers that for both a session and a key. This route is still fully supported. No migration is required yet.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["username","firstName","lastName","role","useCase","featureFlags","email","emailVerified","profilePictureUrl","defaultOrgId","createdAt","updatedAt","onboardingCompletedAt","setupCompleted","cliLastSeenAt"],"properties":{"username":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"type":"string"},{"type":"null"}]},"useCase":{"anyOf":[{"anyOf":[{"type":"string","enum":["work"]},{"type":"string","enum":["personal"]}]},{"type":"null"}]},"featureFlags":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"}]}},"email":{"format":"email","type":"string"},"emailVerified":{"type":"boolean"},"profilePictureUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"defaultOrgId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"onboardingCompletedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"setupCompleted":{"description":"Whether the user has been through profile setup: a username they chose rather than the one generated at signup, an org, and at least one workspace they can view. False until all three hold. Every account is created with a generated username, so the presence of a username says nothing on its own.","type":"boolean"},"cliLastSeenAt":{"description":"Last time this user made an authenticated API request from a command-line client, or null if no such request has been seen. Updated at most hourly, so treat it as a coarse usage signal rather than a precise timestamp.","anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/whoami":{"get":{"tags":["Auth"],"description":"Describes the credential the request authenticated with: a user session or an API key, discriminated on `data.type`.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"anyOf":[{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["email","emailVerified","username"],"properties":{"email":{"format":"email","type":"string"},"emailVerified":{"type":"boolean"},"username":{"type":"string"}}}}},{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","description":"The API key's own id. Not the id of the user who created it, which is what `/users/me` returns for a key.","type":"string"},"type":{"type":"string","enum":["api-key"]},"attributes":{"type":"object","required":["name","scope","org","workspace","createdBy"],"properties":{"name":{"description":"The name given to the key where it was created.","type":"string"},"scope":{"description":"Whether the key acts across a whole org or is limited to one workspace. This is the authoritative discriminator: `org` and `workspace` below are enrichment and may be null even for a workspace-scoped key.","anyOf":[{"type":"string","enum":["org"]},{"type":"string","enum":["workspace"]}]},"org":{"description":"The org the key acts within. For a workspace-scoped key, that workspace's org. Null if the row could not be read.","anyOf":[{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}},{"type":"null"}]},"workspace":{"description":"The workspace a workspace-scoped key is limited to. Null for an org-scoped key, and also null when the workspace could not be read. Use `scope` to tell those apart.","anyOf":[{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}},{"type":"null"}]},"createdBy":{"format":"uuid","description":"The user who created the key. Provenance only. These are workspace- and org-level credentials, so the creator is not the identity acting.","type":"string"}}}}}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/me/invitations":{"get":{"tags":["Users"],"description":"Lists invitations the authenticated user should consider during signup: valid pending invitations and recently revoked recoverable invitations discovered by exact or alias-stripped email match. Used to prompt the user to accept an invite before a personal org is created.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["invitation"]},"attributes":{"type":"object","required":["id","orgId","orgName","email","role","expiresAt","createdAt","workspaces"],"properties":{"id":{"format":"uuid","type":"string"},"orgId":{"format":"uuid","type":"string"},"orgName":{"type":"string"},"email":{"format":"email","type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"expiresAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"workspaces":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/me/invitations/{invitationId}/accept":{"post":{"tags":["Users"],"description":"Explicitly accepts a pending invitation addressed to the authenticated user, joining them to the invited organization and workspaces.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"invitationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["invitation"]},"attributes":{"type":"object","required":["id","orgId","orgName","email","role","expiresAt","createdAt","workspaces"],"properties":{"id":{"format":"uuid","type":"string"},"orgId":{"format":"uuid","type":"string"},"orgName":{"type":"string"},"email":{"format":"email","type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"expiresAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"workspaces":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/me/default-org":{"post":{"tags":["Users"],"description":"Provisions a personal/default org for the authenticated user if they do not already belong to one. This is the explicit \"skip invites\" path during signup. Idempotent: returns the existing org when one is present.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["org"]},"attributes":{"type":"object","required":["name","created"],"properties":{"name":{"type":"string"},"created":{"type":"boolean"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/{userId}":{"patch":{"tags":["Users"],"description":"Updates the authenticated user's profile (username, name, onboarding state).","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"minProperties":1,"type":"object","properties":{"username":{"minLength":5,"maxLength":30,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},"firstName":{"maxLength":100,"type":"string"},"lastName":{"maxLength":100,"type":"string"},"role":{"maxLength":100,"type":"string"},"useCase":{"anyOf":[{"type":"string","enum":["work"]},{"type":"string","enum":["personal"]}]},"completeOnboarding":{"type":"boolean"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["username","firstName","lastName","role","useCase","email","emailVerified","profilePictureUrl","createdAt","updatedAt","onboardingCompletedAt"],"properties":{"username":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"type":"string"},{"type":"null"}]},"useCase":{"anyOf":[{"anyOf":[{"type":"string","enum":["work"]},{"type":"string","enum":["personal"]}]},{"type":"null"}]},"email":{"format":"email","type":"string"},"emailVerified":{"type":"boolean"},"profilePictureUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"onboardingCompletedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/{userIdOrName}":{"get":{"tags":["Users"],"description":"Looks up a user by id or username.","parameters":[{"schema":{"type":"string"},"in":"path","name":"userIdOrName","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["username","profilePictureUrl","createdAt"],"properties":{"username":{"type":"string"},"profilePictureUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/{userId}/orgs":{"get":{"tags":["Users","Orgs"],"description":"Lists organizations a user is a member of.","parameters":[{"schema":{"default":"name","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]}]}},{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"cliSelectable","required":false,"description":"Return only organizations the user can sign a CLI into: those with an active WorkOS membership. Our database and WorkOS can disagree — a row here with no membership there is offered to the user, chosen, and then refused by WorkOS when the CLI completes the organization-selection grant."},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","meta"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["org"]},"attributes":{"type":"object","required":["name","slug","role","defaultWorkspaceId","joinedAt","entitlements"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"role":{"anyOf":[{"type":"string","enum":["admin"]},{"type":"string","enum":["member"]}]},"defaultWorkspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"joinedAt":{"format":"date-time","type":"string"},"entitlements":{"type":"object","required":["modelSelection","analytics","policyManagement","projectManagement","creditOverage","auditLogAccess","customReviewPlugins","advancedInventoryFindings"],"properties":{"modelSelection":{"type":"boolean"},"analytics":{"type":"boolean"},"policyManagement":{"type":"boolean"},"projectManagement":{"type":"boolean"},"creditOverage":{"type":"boolean"},"auditLogAccess":{"type":"boolean"},"customReviewPlugins":{"type":"boolean"},"advancedInventoryFindings":{"type":"boolean"}}}}},"meta":{"type":"object","required":["allowedActions"],"properties":{"allowedActions":{"type":"array","items":{"type":"string"}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/{userId}/scope-defaults":{"put":{"tags":["Users"],"description":"Sets the authenticated user's default org and per-org default workspace in one batch.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["defaultOrgId","defaults"],"properties":{"defaultOrgId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"defaults":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["orgId","defaultWorkspaceId"],"properties":{"orgId":{"format":"uuid","type":"string"},"defaultWorkspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]}}}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user-scope-defaults"]},"attributes":{"type":"object","required":["defaultOrgId","defaults"],"properties":{"defaultOrgId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"defaults":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["orgId","defaultWorkspaceId"],"properties":{"orgId":{"format":"uuid","type":"string"},"defaultWorkspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/me/onboarding-state":{"get":{"tags":["Users"],"description":"Returns the authenticated user's onboarding state — chosen flow, current beat, entry path, and skips — plus the authoritative completion flag.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["onboarding-state"]},"attributes":{"type":"object","required":["onboardingCompleted","onboardingCompletedAt","cliLastSeenAt","state","facts"],"properties":{"onboardingCompleted":{"type":"boolean"},"onboardingCompletedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"cliLastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"object","required":["flowSlug","path","chosenVia","currentBeatOrder","skippedBeatOrders","startedAt","lastActivityAt","completedAt"],"properties":{"flowSlug":{"anyOf":[{"type":"string"},{"type":"null"}]},"path":{"anyOf":[{"type":"string","enum":["cli"]},{"type":"string","enum":["web"]}]},"chosenVia":{"anyOf":[{"anyOf":[{"type":"string","enum":["picker"]},{"type":"string","enum":["deep-link"]},{"type":"string","enum":["default"]}]},{"type":"null"}]},"currentBeatOrder":{"type":"integer"},"skippedBeatOrders":{"type":"array","items":{"type":"integer"}},"startedAt":{"format":"date-time","type":"string"},"lastActivityAt":{"format":"date-time","type":"string"},"completedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},{"type":"null"}]},"facts":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/me/onboarding-state/transitions":{"post":{"tags":["Users"],"description":"Applies one transition to the authenticated user's onboarding state and returns the resulting state. Each transition is persisted before the response is sent, so the stored state always reflects the last transition that applied. Transitions: `record-entry-path`, `choose-flow`, `advance`, `complete`, `skip-onboarding`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"additionalProperties":false,"type":"object","required":["type","path"],"properties":{"type":{"type":"string","enum":["record-entry-path"]},"path":{"anyOf":[{"type":"string","enum":["cli"]},{"type":"string","enum":["web"]}]}}},{"additionalProperties":false,"type":"object","required":["type","flowSlug","chosenVia"],"properties":{"type":{"type":"string","enum":["choose-flow"]},"flowSlug":{"anyOf":[{"type":"string","enum":["review-skill"]},{"type":"string","enum":["review-code"]}]},"chosenVia":{"anyOf":[{"type":"string","enum":["picker"]},{"type":"string","enum":["deep-link"]},{"type":"string","enum":["default"]}]},"toBeatOrder":{"minimum":0,"type":"integer"},"skippedBeatOrders":{"type":"array","items":{"minimum":0,"type":"integer"}},"path":{"anyOf":[{"type":"string","enum":["cli"]},{"type":"string","enum":["web"]}]}}},{"additionalProperties":false,"type":"object","required":["type","toBeatOrder"],"properties":{"type":{"type":"string","enum":["advance"]},"toBeatOrder":{"minimum":0,"type":"integer"},"skippedBeatOrders":{"type":"array","items":{"minimum":0,"type":"integer"}}}},{"additionalProperties":false,"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["complete"]},"skippedBeatOrders":{"type":"array","items":{"minimum":0,"type":"integer"}}}},{"additionalProperties":false,"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["skip-onboarding"]}}}]}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["onboarding-state"]},"attributes":{"type":"object","required":["onboardingCompleted","onboardingCompletedAt","cliLastSeenAt","state","facts"],"properties":{"onboardingCompleted":{"type":"boolean"},"onboardingCompletedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"cliLastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"object","required":["flowSlug","path","chosenVia","currentBeatOrder","skippedBeatOrders","startedAt","lastActivityAt","completedAt"],"properties":{"flowSlug":{"anyOf":[{"type":"string"},{"type":"null"}]},"path":{"anyOf":[{"type":"string","enum":["cli"]},{"type":"string","enum":["web"]}]},"chosenVia":{"anyOf":[{"anyOf":[{"type":"string","enum":["picker"]},{"type":"string","enum":["deep-link"]},{"type":"string","enum":["default"]}]},{"type":"null"}]},"currentBeatOrder":{"type":"integer"},"skippedBeatOrders":{"type":"array","items":{"type":"integer"}},"startedAt":{"format":"date-time","type":"string"},"lastActivityAt":{"format":"date-time","type":"string"},"completedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},{"type":"null"}]},"facts":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/users/me/workflow-state/{workflowSlug}/facts":{"put":{"tags":["Users"],"description":"Shallow-merges facts into the authenticated user's workflow state for one workflow, creating the row as `active` on first write. Fact keys are validated per workflow; an unknown key is a 400. A write also advances the onboarding session's activity, so working via facts defers the idle recovery email. `result` beats and `skip_when` read these back from the onboarding-state resource.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"parameters":[{"schema":{"anyOf":[{"type":"string","enum":["review-skill"]},{"type":"string","enum":["review-code"]}]},"in":"path","name":"workflowSlug","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["workflow-state"]},"attributes":{"type":"object","required":["workflowSlug","status","facts"],"properties":{"workflowSlug":{"anyOf":[{"type":"string","enum":["review-skill"]},{"type":"string","enum":["review-code"]}]},"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["abandoned"]}]},"facts":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}":{"get":{"tags":["Orgs"],"description":"Fetches an organization by id.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes","meta"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["org"]},"attributes":{"type":"object","required":["name","slug","blockPublicTilePublish","byoGatewayEnabled","plan","entitlements","trialEndsAt","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"blockPublicTilePublish":{"type":"boolean"},"byoGatewayEnabled":{"type":"boolean"},"plan":{"type":"object","required":["code","displayName"],"properties":{"code":{"anyOf":[{"type":"string","enum":["free"]},{"type":"string","enum":["free-legacy-v1"]},{"type":"string","enum":["team-v1"]},{"type":"string","enum":["business-v1"]},{"type":"string","enum":["enterprise-v1"]}]},"displayName":{"type":"string"}}},"entitlements":{"type":"object","required":["modelSelection","analytics","policyManagement","projectManagement","creditOverage","auditLogAccess","customReviewPlugins","advancedInventoryFindings"],"properties":{"modelSelection":{"type":"boolean"},"analytics":{"type":"boolean"},"policyManagement":{"type":"boolean"},"projectManagement":{"type":"boolean"},"creditOverage":{"type":"boolean"},"auditLogAccess":{"type":"boolean"},"customReviewPlugins":{"type":"boolean"},"advancedInventoryFindings":{"type":"boolean"}}},"trialEndsAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}},"meta":{"type":"object","required":["allowedActions"],"properties":{"allowedActions":{"type":"array","items":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"tags":["Orgs"],"description":"Updates an organization (rename, public-publish toggle).","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"minProperties":1,"type":"object","properties":{"name":{"minLength":4,"maxLength":40,"pattern":"^[0-9a-z-]+$","type":"string"},"blockPublicTilePublish":{"type":"boolean"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["org"]},"attributes":{"type":"object","required":["name","blockPublicTilePublish","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"blockPublicTilePublish":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/invitations":{"get":{"tags":["Orgs"],"description":"Lists pending invitations for an organization.","parameters":[{"schema":{"default":"-createdAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["invitation"]},"attributes":{"type":"object","required":["id","orgId","email","role","state","inviterUserId","acceptedByUserId","acceptedAt","expiresAt","createdAt","updatedAt","workspaces"],"properties":{"id":{"format":"uuid","type":"string"},"orgId":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"state":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["accepted"]},{"type":"string","enum":["revoked"]},{"type":"string","enum":["expired"]}]},"inviterUserId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"acceptedByUserId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"acceptedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"expiresAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"workspaces":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"format":"uuid","type":"string"}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Orgs"],"description":"Invites a user (by email) to an organization with the given workspace memberships.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["email","workspaces"],"properties":{"email":{"format":"email","type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"workspaces":{"minItems":1,"type":"array","items":{"additionalProperties":false,"type":"object","required":["id"],"properties":{"id":{"format":"uuid","type":"string"}}}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["invitation"]},"attributes":{"type":"object","required":["id","orgId","email","role","state","inviterUserId","acceptedByUserId","acceptedAt","expiresAt","createdAt","updatedAt","workspaces"],"properties":{"id":{"format":"uuid","type":"string"},"orgId":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"state":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["accepted"]},{"type":"string","enum":["revoked"]},{"type":"string","enum":["expired"]}]},"inviterUserId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"acceptedByUserId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"acceptedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"expiresAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"workspaces":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"format":"uuid","type":"string"}}}}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/invitations/{invitationId}":{"delete":{"tags":["Orgs"],"description":"Revokes a pending org invitation. If WorkOS already reports the invitation as accepted, reconciles the local invitation and returns it as accepted.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"invitationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["invitation"]},"attributes":{"type":"object","required":["id","orgId","email","role","state","inviterUserId","acceptedByUserId","acceptedAt","expiresAt","createdAt","updatedAt","workspaces"],"properties":{"id":{"format":"uuid","type":"string"},"orgId":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"state":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["accepted"]},{"type":"string","enum":["revoked"]},{"type":"string","enum":["expired"]}]},"inviterUserId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"acceptedByUserId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"acceptedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"expiresAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"workspaces":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"format":"uuid","type":"string"}}}}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/invitations/{invitationId}/resend":{"post":{"tags":["Orgs"],"description":"Resends an org invitation email. Subject to a 2-minute cooldown.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"invitationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["invitation"]},"attributes":{"type":"object","required":["id","orgId","email","role","state","inviterUserId","acceptedByUserId","acceptedAt","expiresAt","createdAt","updatedAt","workspaces"],"properties":{"id":{"format":"uuid","type":"string"},"orgId":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"state":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["accepted"]},{"type":"string","enum":["revoked"]},{"type":"string","enum":["expired"]}]},"inviterUserId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"acceptedByUserId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"acceptedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"expiresAt":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"workspaces":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"format":"uuid","type":"string"}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"description":"Too Many Requests","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Too Many Requests"]},"status":{"type":"number","enum":[429]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/members":{"get":{"tags":["Orgs"],"description":"Lists members of an organization.","parameters":[{"schema":{"default":"username","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["username"]},{"type":"string","enum":["-username"]}]}},{"anyOf":[{"type":"string","enum":["username"]},{"type":"string","enum":["-username"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[notInWorkspace]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[notInWorkspace][eq]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[notInWorkspace][ne]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[notInWorkspace][gt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[notInWorkspace][gte]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[notInWorkspace][lt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[notInWorkspace][lte]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[notInWorkspace][like]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["admin"]},{"type":"string","enum":["member"]}]},"in":"query","name":"role","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["username","firstName","lastName","email","profilePictureUrl","role","joinedAt"],"properties":{"username":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"profilePictureUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"type":"string","enum":["admin"]},{"type":"string","enum":["member"]}]},"joinedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/members/{userId}/workspaces":{"get":{"tags":["Orgs"],"description":"Lists an org member's explicit workspace memberships within the org, with both the stored (direct) role and the resolved effective role.","parameters":[{"schema":{"default":"name","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]}]}},{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]},"attributes":{"type":"object","required":["name","directRole","effectiveRole","joinedAt"],"properties":{"name":{"type":"string"},"directRole":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"effectiveRole":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"joinedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/members/{userId}":{"patch":{"tags":["Orgs"],"description":"Updates an org member's role. Cannot demote the last admin.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["role"],"properties":{"role":{"anyOf":[{"type":"string","enum":["admin"]},{"type":"string","enum":["member"]}]}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["role"],"properties":{"role":{"anyOf":[{"type":"string","enum":["admin"]},{"type":"string","enum":["member"]}]}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Orgs"],"description":"Removes a member from an organization. Cannot remove the last admin or the user's last org.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/api-keys":{"get":{"tags":["Admin Keys"],"description":"Lists admin API keys for an organization.","parameters":[{"schema":{"default":"-createdAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["api-key"]},"attributes":{"type":"object","required":["name","obfuscatedValue","lastUsedAt","createdBy","expiryDate","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"obfuscatedValue":{"type":"string"},"lastUsedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"createdBy":{"format":"uuid","type":"string"},"expiryDate":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Admin Keys"],"description":"Issues a new admin API key for an organization.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["name"],"properties":{"name":{"type":"string"},"expiryDate":{"format":"date-time","type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["api-key"]},"attributes":{"type":"object","required":["name","value","expiryDate","createdAt"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"expiryDate":{"format":"date-time","type":"string"},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/api-keys/{apiKeyId}":{"delete":{"tags":["Admin Keys"],"description":"Revokes an admin API key for an organization.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"apiKeyId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations":{"get":{"tags":["Orgs","Integrations"],"description":"Lists integrations (GitHub, GitLab, Linear) configured for an organization.","parameters":[{"schema":{"default":"-updatedAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]}},{"anyOf":[{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"anyOf":[{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["github-app"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["github-app-agent"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["gitlab-token"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"anyOf":[{"type":"object","required":["scopeType","host","groupPath"],"properties":{"scopeType":{"type":"string","enum":["group"]},"host":{"type":"string"},"groupPath":{"type":"string"},"webhookId":{"type":"number"}}},{"type":"object","required":["scopeType","host","projectPath"],"properties":{"scopeType":{"type":"string","enum":["project"]},"host":{"type":"string"},"projectPath":{"type":"string"},"webhookId":{"type":"number"}}}]},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["linear"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["linearOrganizationId","agentAppUserId"],"properties":{"linearOrganizationId":{"type":"string"},"agentAppUserId":{"type":"string"},"targetRepo":{"type":"string"},"taskDelegation":{"additionalProperties":false,"type":"object","required":["entrypoint"],"properties":{"entrypoint":{"additionalProperties":false,"type":"object","required":["plugin","skill"],"properties":{"plugin":{"type":"string"},"skill":{"type":"string"}}},"delegationStateName":{"type":"string"},"environmentName":{"minLength":1,"type":"string"}}},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"linearOrganizationName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["bitbucket-cloud-oauth"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["workspaceSlug","accountId"],"properties":{"workspaceSlug":{"type":"string"},"accountId":{"type":"string"},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"workspaceName":{"type":"string"},"installedByDisplayName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["mockhub"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["seed","org","config"],"properties":{"seed":{"type":"number"},"org":{"type":"string"},"config":{"type":"object","required":["repoCount","skillRepoFraction","minSkillsPerRepo","maxSkillsPerRepo","manifestCount","minSkillSentences","maxSkillSentences","duplicateClusterFraction"],"properties":{"repoCount":{"type":"number"},"skillRepoFraction":{"type":"number"},"minSkillsPerRepo":{"type":"number"},"maxSkillsPerRepo":{"type":"number"},"manifestCount":{"type":"number"},"minSkillSentences":{"type":"number"},"maxSkillSentences":{"type":"number"},"duplicateClusterFraction":{"type":"number"}}}}},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}}]}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/scan-status":{"get":{"tags":["Orgs","Integrations"],"description":"Per-connection first-scan status for an organization's integrations, keyed by integration id. Each entry reports whether that connection is scanning (with live counts), when it last completed (`scannedAt`), or why it failed (`scm-not-installed` / `scm-account-mismatch` need a reconnect, `scan-failed` can be retried). Non-source-control connections and connections with no provisioned inventory read as a neutral `not-applicable` / `never-scanned` state, never an error.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill-inventory-scan-status"]},"attributes":{"anyOf":[{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["not-applicable"]}}},{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["never-scanned"]}}},{"type":"object","required":["state","reposScanned","reposTotal","skillsFound","isFirstScan"],"properties":{"state":{"type":"string","enum":["scanning"]},"reposScanned":{"type":"number"},"reposTotal":{"type":"number"},"skillsFound":{"type":"number"},"isFirstScan":{"type":"boolean"}}},{"type":"object","required":["state","scannedAt"],"properties":{"state":{"type":"string","enum":["completed"]},"scannedAt":{"format":"date-time","type":"string"}}},{"type":"object","required":["state","reason"],"properties":{"state":{"type":"string","enum":["failed"]},"reason":{"anyOf":[{"type":"string","enum":["scm-not-installed"]},{"type":"string","enum":["scm-account-mismatch"]},{"type":"string","enum":["scan-failed"]}]}}}]}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/{integrationId}":{"get":{"tags":["Orgs","Integrations"],"description":"Fetches a single integration linked to an organization.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"anyOf":[{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["github-app"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["github-app-agent"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["gitlab-token"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"anyOf":[{"type":"object","required":["scopeType","host","groupPath"],"properties":{"scopeType":{"type":"string","enum":["group"]},"host":{"type":"string"},"groupPath":{"type":"string"},"webhookId":{"type":"number"}}},{"type":"object","required":["scopeType","host","projectPath"],"properties":{"scopeType":{"type":"string","enum":["project"]},"host":{"type":"string"},"projectPath":{"type":"string"},"webhookId":{"type":"number"}}}]},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["linear"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["linearOrganizationId","agentAppUserId"],"properties":{"linearOrganizationId":{"type":"string"},"agentAppUserId":{"type":"string"},"targetRepo":{"type":"string"},"taskDelegation":{"additionalProperties":false,"type":"object","required":["entrypoint"],"properties":{"entrypoint":{"additionalProperties":false,"type":"object","required":["plugin","skill"],"properties":{"plugin":{"type":"string"},"skill":{"type":"string"}}},"delegationStateName":{"type":"string"},"environmentName":{"minLength":1,"type":"string"}}},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"linearOrganizationName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["bitbucket-cloud-oauth"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["workspaceSlug","accountId"],"properties":{"workspaceSlug":{"type":"string"},"accountId":{"type":"string"},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"workspaceName":{"type":"string"},"installedByDisplayName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt","installedByName"],"properties":{"type":{"type":"string","enum":["mockhub"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["seed","org","config"],"properties":{"seed":{"type":"number"},"org":{"type":"string"},"config":{"type":"object","required":["repoCount","skillRepoFraction","minSkillsPerRepo","maxSkillsPerRepo","manifestCount","minSkillSentences","maxSkillSentences","duplicateClusterFraction"],"properties":{"repoCount":{"type":"number"},"skillRepoFraction":{"type":"number"},"minSkillsPerRepo":{"type":"number"},"maxSkillsPerRepo":{"type":"number"},"manifestCount":{"type":"number"},"minSkillSentences":{"type":"number"},"maxSkillSentences":{"type":"number"},"duplicateClusterFraction":{"type":"number"}}}}},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"installedByName":{"anyOf":[{"type":"string"},{"type":"null"}]}}}]}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Integrations","Orgs"],"description":"Removes an integration from an organization.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/{integrationId}/repositories":{"get":{"tags":["Orgs","Integrations"],"description":"Lists repositories the org connection can see, for the scan-scope repo picker. Given an optional `q`, runs a provider-side name search when `q` is present (so a large connection need not be enumerated to find a repo) or lists the first page of the account otherwise. Returns the bare repo `name`, the `owner/repo` `fullName`, and whether the repo is archived. Results are capped; `hasMore` signals the caller to narrow with `q` instead of scrolling. Returns 422 (not_scannable_integration) for non-scannable integration types, and 502 when the provider is unreachable or rate-limited — distinct from an empty list, so a load failure never reads as \"this connection has no repos\".","parameters":[{"schema":{"type":"string"},"in":"query","name":"q","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["repository"]},"attributes":{"type":"object","required":["name","fullName","archived"],"properties":{"name":{"type":"string"},"fullName":{"type":"string"},"archived":{"type":"boolean"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"description":"Unprocessable Entity","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unprocessable Entity"]},"status":{"type":"number","enum":[422]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"description":"Bad Gateway","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Gateway"]},"status":{"type":"number","enum":[502]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/{integrationId}/scan-policy":{"get":{"tags":["Orgs","Integrations"],"description":"Returns the integration's repo allow/deny scan policy. `mode` is null when no policy is configured (scan everything); an `allow` policy with an empty `fullNames` means scan nothing. Returns 422 (not_scannable_integration) for non-scannable integration types.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration-scan-policy"]},"attributes":{"type":"object","required":["mode","fullNames"],"properties":{"mode":{"anyOf":[{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["deny"]}]},{"type":"null"}]},"fullNames":{"maxItems":100,"type":"array","items":{"minLength":1,"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"description":"Unprocessable Entity","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unprocessable Entity"]},"status":{"type":"number","enum":[422]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"put":{"tags":["Orgs","Integrations"],"description":"Replaces the integration's repo allow/deny scan policy. An `allow` policy with an empty `fullNames` is stored faithfully (scan nothing), not coerced to scan-everything. Duplicate names collapse to one. Returns 422 (not_scannable_integration) for non-scannable integration types.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["mode","fullNames"],"properties":{"mode":{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["deny"]}]},"fullNames":{"maxItems":100,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration-scan-policy"]},"attributes":{"type":"object","required":["mode","fullNames","excludedDataDeletion"],"properties":{"mode":{"anyOf":[{"type":"string","enum":["allow"]},{"type":"string","enum":["deny"]}]},"fullNames":{"maxItems":100,"type":"array","items":{"minLength":1,"type":"string"}},"excludedDataDeletion":{"anyOf":[{"type":"string","enum":["complete"]},{"type":"string","enum":["in_progress"]}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"description":"Unprocessable Entity","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unprocessable Entity"]},"status":{"type":"number","enum":[422]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/{integrationId}/scans":{"get":{"tags":["Orgs","Integrations"],"description":"Lists the scan history for the SCM account an integration connects to, newest first. History is keyed by account, not by connection: two connections to the same account share one history, and a scan run through a since-removed connection still appears. Each scan reports a derived `status` (`running` / `failed` / `ok`), repo progress, and finding counts; a failed scan carries a mapped `failure` (which stage, and a closed-set reason — never the internal error text). Results are a bounded recent window; `meta.hasMore` signals older scans exist beyond it. This route offers no continuation cursor, so `links.next` is always null. Returns 422 (not_scannable_integration) for non-scannable integration types.","parameters":[{"schema":{"minimum":1,"maximum":100,"default":50,"type":"integer"},"in":"query","name":"limit","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count","hasMore"],"properties":{"count":{"type":"number"},"hasMore":{"type":"boolean"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["scan"]},"attributes":{"type":"object","required":["scannedAt","origin","status","reposScanned","reposTotal","countsNew","countsSeen","countsDeparted","scannedThroughIntegrationId","failure"],"properties":{"scannedAt":{"format":"date-time","type":"string"},"origin":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["ok"]}]},"reposScanned":{"type":"number"},"reposTotal":{"type":"number"},"countsNew":{"type":"number"},"countsSeen":{"type":"number"},"countsDeparted":{"type":"number"},"scannedThroughIntegrationId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"failure":{"anyOf":[{"type":"object","required":["stage","reason"],"properties":{"stage":{"anyOf":[{"type":"string","enum":["scan"]},{"type":"string","enum":["analysis"]}]},"reason":{"anyOf":[{"type":"string","enum":["scan-failed"]},{"type":"string","enum":["context-read-failed"]},{"type":"string","enum":["analysis-failed"]}]}}},{"type":"null"}]}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"description":"Unprocessable Entity","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unprocessable Entity"]},"status":{"type":"number","enum":[422]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/{integrationId}/rescan":{"post":{"tags":["Orgs","Integrations"],"description":"Retries the first scan of an org connection's inventory (the retry affordance on a failed connection). Requires manage rights on the organization. Uses the opt-in-independent first-scan path the connect and grant-change paths use, so an auto-provisioned inventory that never opted into automatic scanning can still be re-scanned. The deterministic workflow id dedupes: retrying twice never stacks two scans — a second retry while one is running returns 409 (rescan_in_flight). Returns 404 when the connection has no provisioned inventory to re-scan.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill-inventory"]},"attributes":{"type":"object","required":["status","workflowId"],"properties":{"status":{"type":"string","enum":["started"]},"workflowId":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"description":"Service Unavailable","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Service Unavailable"]},"status":{"type":"number","enum":[503]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/github-app":{"post":{"tags":["Integrations","Orgs"],"description":"Completes a GitHub App OAuth handshake, attaching the installation to an organization.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code","installationId"],"properties":{"code":{"type":"string"},"installationId":{"type":"number"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["github-app"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/github-app-agent":{"post":{"tags":["Integrations","Orgs"],"description":"Completes the OAuth handshake for the read-write Tessl Helper GitHub App and records an org-scoped Tessl Helper installation, distinct from the repository-sync GitHub integration.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code","installationId"],"properties":{"code":{"type":"string"},"installationId":{"type":"number"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["github-app-agent"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/gitlab-token":{"post":{"tags":["Orgs","Integrations"],"description":"Attaches a GitLab personal/group access token as an integration to an organization.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["accessToken"],"properties":{"accessToken":{"type":"string"},"instanceUrl":{"format":"uri","type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["gitlab-token"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"anyOf":[{"type":"object","required":["scopeType","host","groupPath","secretId"],"properties":{"scopeType":{"type":"string","enum":["group"]},"host":{"type":"string"},"groupPath":{"type":"string"},"secretId":{"type":"string"},"webhookId":{"type":"number"},"webhookSecretId":{"type":"string"}}},{"type":"object","required":["scopeType","host","projectPath","secretId"],"properties":{"scopeType":{"type":"string","enum":["project"]},"host":{"type":"string"},"projectPath":{"type":"string"},"secretId":{"type":"string"},"webhookId":{"type":"number"},"webhookSecretId":{"type":"string"}}}]},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/bitbucket-cloud-oauth/authorize":{"post":{"tags":["Orgs","Integrations"],"description":"Starts the Bitbucket Cloud OAuth flow for the organization by issuing a signed state and authorize URL.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"returnTo":{"pattern":"^/(?![/\\\\])","maxLength":2048,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["bitbucket-cloud-oauth-authorization"]},"attributes":{"type":"object","required":["authorizationUrl","state"],"properties":{"authorizationUrl":{"format":"uri","type":"string"},"state":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/bitbucket-cloud-oauth/callback":{"post":{"tags":["Orgs","Integrations"],"description":"Completes the Bitbucket Cloud OAuth handshake for an organization by exchanging the authorization code for an access + refresh token.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["code","state"],"properties":{"code":{"minLength":1,"type":"string"},"state":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["bitbucket-cloud-oauth"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["workspaceSlug","accountId"],"properties":{"workspaceSlug":{"type":"string"},"accountId":{"type":"string"},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"workspaceName":{"type":"string"},"installedByDisplayName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/claude-marketplace/config":{"get":{"tags":["Claude Marketplace","Orgs"],"description":"Reads the organization's Claude marketplace configuration and selected plugins.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-config"]},"attributes":{"type":"object","required":["helperConnected","config"],"properties":{"helperConnected":{"type":"boolean"},"config":{"anyOf":[{"type":"object","required":["integrationId","repositoryNodeId","repositoryFullName","defaultBranch","marketplaceName","syncEnabled","autoSelectNewPlugins","selectedPlugins","createdAt","updatedAt"],"properties":{"integrationId":{"format":"uuid","type":"string"},"repositoryNodeId":{"type":"string"},"repositoryFullName":{"type":"string"},"defaultBranch":{"type":"string"},"marketplaceName":{"type":"string"},"syncEnabled":{"type":"boolean"},"autoSelectNewPlugins":{"type":"boolean"},"selectedPlugins":{"type":"array","items":{"type":"object","required":["id","eligible"],"properties":{"id":{"format":"uuid","type":"string"},"eligible":{"type":"boolean"}}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Claude Marketplace","Orgs"],"description":"Creates the organization's Claude marketplace configuration and selected plugin set.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["integrationId","repositoryNodeId"],"properties":{"integrationId":{"format":"uuid","type":"string"},"repositoryNodeId":{"minLength":1,"type":"string"},"pluginIds":{"maxItems":200,"type":"array","items":{"format":"uuid","type":"string"}},"autoSelectNewPlugins":{"type":"boolean"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-config"]},"attributes":{"type":"object","required":["integrationId","repositoryNodeId","repositoryFullName","defaultBranch","marketplaceName","syncEnabled","autoSelectNewPlugins","selectedPlugins","createdAt","updatedAt"],"properties":{"integrationId":{"format":"uuid","type":"string"},"repositoryNodeId":{"type":"string"},"repositoryFullName":{"type":"string"},"defaultBranch":{"type":"string"},"marketplaceName":{"type":"string"},"syncEnabled":{"type":"boolean"},"autoSelectNewPlugins":{"type":"boolean"},"selectedPlugins":{"type":"array","items":{"type":"object","required":["id","eligible"],"properties":{"id":{"format":"uuid","type":"string"},"eligible":{"type":"boolean"}}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"tags":["Claude Marketplace","Orgs"],"description":"Updates the organization's marketplace destination, selected plugins, or automatic-selection settings.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"integrationId":{"format":"uuid","type":"string"},"repositoryNodeId":{"minLength":1,"type":"string"},"pluginIds":{"maxItems":200,"type":"array","items":{"format":"uuid","type":"string"}},"syncEnabled":{"type":"boolean"},"autoSelectNewPlugins":{"type":"boolean"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-config"]},"attributes":{"type":"object","required":["integrationId","repositoryNodeId","repositoryFullName","defaultBranch","marketplaceName","syncEnabled","autoSelectNewPlugins","selectedPlugins","createdAt","updatedAt"],"properties":{"integrationId":{"format":"uuid","type":"string"},"repositoryNodeId":{"type":"string"},"repositoryFullName":{"type":"string"},"defaultBranch":{"type":"string"},"marketplaceName":{"type":"string"},"syncEnabled":{"type":"boolean"},"autoSelectNewPlugins":{"type":"boolean"},"selectedPlugins":{"type":"array","items":{"type":"object","required":["id","eligible"],"properties":{"id":{"format":"uuid","type":"string"},"eligible":{"type":"boolean"}}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Claude Marketplace","Orgs"],"description":"Deletes the organization's marketplace configuration, selections, and sync history.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/claude-marketplace/plugins":{"get":{"tags":["Claude Marketplace","Orgs"],"description":"Lists eligible marketplace plugins across every workspace in the organization.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-plugin"]},"attributes":{"type":"object","required":["name","fullName","describes","latestVersion"],"properties":{"name":{"type":"string"},"fullName":{"type":"string"},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"latestVersion":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/claude-marketplace/repositories":{"get":{"tags":["Claude Marketplace","Orgs"],"description":"Lists private, live marketplace destination repositories from Tessl Helper installations linked to the organization.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["claude-marketplace-repository"]},"attributes":{"type":"object","required":["integrationId","accountName","repositoryNodeId","fullName","defaultBranch","visibility","archived"],"properties":{"integrationId":{"format":"uuid","type":"string"},"accountName":{"type":"string"},"repositoryNodeId":{"type":"string"},"fullName":{"type":"string"},"defaultBranch":{"type":"string"},"visibility":{"anyOf":[{"type":"string","enum":["private"]},{"type":"string","enum":["internal"]}]},"archived":{"type":"boolean"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/claude-marketplace/sync":{"post":{"tags":["Claude Marketplace","Orgs"],"description":"Starts an asynchronous synchronization of the organization's Claude marketplace configuration to its configured GitHub repository. Returns 202 with the created run, or 409 with the existing run when a synchronization is already pending.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-sync-run"]},"attributes":{"type":"object","required":["lifecycle","trigger","additions","updates","removals","commitSha","sourceBranch","pullRequestNumber","pullRequestUrl","proposedCommitSha","failureCode","failureMessage","createdAt","startedAt","completedAt"],"properties":{"lifecycle":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["awaiting_merge"]},{"type":"string","enum":["completed_changed"]},{"type":"string","enum":["completed_unchanged"]},{"type":"string","enum":["failed"]}]},"trigger":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["scheduled"]}]},"additions":{"anyOf":[{"type":"integer"},{"type":"null"}]},"updates":{"anyOf":[{"type":"integer"},{"type":"null"}]},"removals":{"anyOf":[{"type":"integer"},{"type":"null"}]},"commitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"pullRequestNumber":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pullRequestUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"proposedCommitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"failureCode":{"anyOf":[{"anyOf":[{"type":"string","enum":["configuration_invalid"]},{"type":"string","enum":["repository_unavailable"]},{"type":"string","enum":["repository_empty"]},{"type":"string","enum":["permission_denied"]},{"type":"string","enum":["plugin_unavailable"]},{"type":"string","enum":["unsupported_plugin"]},{"type":"string","enum":["repository_too_large"]},{"type":"string","enum":["repository_conflict"]},{"type":"string","enum":["provider_unavailable"]},{"type":"string","enum":["internal_error"]},{"type":"string","enum":["pull_request_closed"]},{"type":"string","enum":["merge_timeout"]}]},{"type":"null"}]},"failureMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-sync-run"]},"attributes":{"type":"object","required":["lifecycle","trigger","additions","updates","removals","commitSha","sourceBranch","pullRequestNumber","pullRequestUrl","proposedCommitSha","failureCode","failureMessage","createdAt","startedAt","completedAt"],"properties":{"lifecycle":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["awaiting_merge"]},{"type":"string","enum":["completed_changed"]},{"type":"string","enum":["completed_unchanged"]},{"type":"string","enum":["failed"]}]},"trigger":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["scheduled"]}]},"additions":{"anyOf":[{"type":"integer"},{"type":"null"}]},"updates":{"anyOf":[{"type":"integer"},{"type":"null"}]},"removals":{"anyOf":[{"type":"integer"},{"type":"null"}]},"commitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"pullRequestNumber":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pullRequestUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"proposedCommitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"failureCode":{"anyOf":[{"anyOf":[{"type":"string","enum":["configuration_invalid"]},{"type":"string","enum":["repository_unavailable"]},{"type":"string","enum":["repository_empty"]},{"type":"string","enum":["permission_denied"]},{"type":"string","enum":["plugin_unavailable"]},{"type":"string","enum":["unsupported_plugin"]},{"type":"string","enum":["repository_too_large"]},{"type":"string","enum":["repository_conflict"]},{"type":"string","enum":["provider_unavailable"]},{"type":"string","enum":["internal_error"]},{"type":"string","enum":["pull_request_closed"]},{"type":"string","enum":["merge_timeout"]}]},{"type":"null"}]},"failureMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"description":"Unprocessable Entity","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unprocessable Entity"]},"status":{"type":"number","enum":[422]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/claude-marketplace/sync/latest":{"get":{"tags":["Claude Marketplace","Orgs"],"description":"Reads the organization's most recent Claude marketplace synchronization run (with its run ID), or null when none exists, so clients can restore sync state and poll status.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"anyOf":[{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-sync-run"]},"attributes":{"type":"object","required":["lifecycle","trigger","additions","updates","removals","commitSha","sourceBranch","pullRequestNumber","pullRequestUrl","proposedCommitSha","failureCode","failureMessage","createdAt","startedAt","completedAt"],"properties":{"lifecycle":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["awaiting_merge"]},{"type":"string","enum":["completed_changed"]},{"type":"string","enum":["completed_unchanged"]},{"type":"string","enum":["failed"]}]},"trigger":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["scheduled"]}]},"additions":{"anyOf":[{"type":"integer"},{"type":"null"}]},"updates":{"anyOf":[{"type":"integer"},{"type":"null"}]},"removals":{"anyOf":[{"type":"integer"},{"type":"null"}]},"commitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"pullRequestNumber":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pullRequestUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"proposedCommitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"failureCode":{"anyOf":[{"anyOf":[{"type":"string","enum":["configuration_invalid"]},{"type":"string","enum":["repository_unavailable"]},{"type":"string","enum":["repository_empty"]},{"type":"string","enum":["permission_denied"]},{"type":"string","enum":["plugin_unavailable"]},{"type":"string","enum":["unsupported_plugin"]},{"type":"string","enum":["repository_too_large"]},{"type":"string","enum":["repository_conflict"]},{"type":"string","enum":["provider_unavailable"]},{"type":"string","enum":["internal_error"]},{"type":"string","enum":["pull_request_closed"]},{"type":"string","enum":["merge_timeout"]}]},{"type":"null"}]},"failureMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/claude-marketplace/sync/overview":{"get":{"tags":["Claude Marketplace","Orgs"],"description":"Reads everything the organization's Claude marketplace sync page shows: the latest run, earlier run history, the next expected scheduled reconciliation, and the plugin inventory built from the last successfully synced state unioned with the current desired configuration.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-sync-overview"]},"attributes":{"type":"object","required":["latestRun","history","nextExpectedSync","inventory"],"properties":{"latestRun":{"anyOf":[{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-sync-run"]},"attributes":{"type":"object","required":["lifecycle","trigger","additions","updates","removals","commitSha","sourceBranch","pullRequestNumber","pullRequestUrl","proposedCommitSha","failureCode","failureMessage","createdAt","startedAt","completedAt"],"properties":{"lifecycle":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["awaiting_merge"]},{"type":"string","enum":["completed_changed"]},{"type":"string","enum":["completed_unchanged"]},{"type":"string","enum":["failed"]}]},"trigger":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["scheduled"]}]},"additions":{"anyOf":[{"type":"integer"},{"type":"null"}]},"updates":{"anyOf":[{"type":"integer"},{"type":"null"}]},"removals":{"anyOf":[{"type":"integer"},{"type":"null"}]},"commitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"pullRequestNumber":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pullRequestUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"proposedCommitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"failureCode":{"anyOf":[{"anyOf":[{"type":"string","enum":["configuration_invalid"]},{"type":"string","enum":["repository_unavailable"]},{"type":"string","enum":["repository_empty"]},{"type":"string","enum":["permission_denied"]},{"type":"string","enum":["plugin_unavailable"]},{"type":"string","enum":["unsupported_plugin"]},{"type":"string","enum":["repository_too_large"]},{"type":"string","enum":["repository_conflict"]},{"type":"string","enum":["provider_unavailable"]},{"type":"string","enum":["internal_error"]},{"type":"string","enum":["pull_request_closed"]},{"type":"string","enum":["merge_timeout"]}]},{"type":"null"}]},"failureMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"history":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["claude-marketplace-sync-run"]},"attributes":{"type":"object","required":["lifecycle","trigger","additions","updates","removals","commitSha","sourceBranch","pullRequestNumber","pullRequestUrl","proposedCommitSha","failureCode","failureMessage","createdAt","startedAt","completedAt"],"properties":{"lifecycle":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["awaiting_merge"]},{"type":"string","enum":["completed_changed"]},{"type":"string","enum":["completed_unchanged"]},{"type":"string","enum":["failed"]}]},"trigger":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["scheduled"]}]},"additions":{"anyOf":[{"type":"integer"},{"type":"null"}]},"updates":{"anyOf":[{"type":"integer"},{"type":"null"}]},"removals":{"anyOf":[{"type":"integer"},{"type":"null"}]},"commitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceBranch":{"anyOf":[{"type":"string"},{"type":"null"}]},"pullRequestNumber":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pullRequestUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"proposedCommitSha":{"anyOf":[{"type":"string"},{"type":"null"}]},"failureCode":{"anyOf":[{"anyOf":[{"type":"string","enum":["configuration_invalid"]},{"type":"string","enum":["repository_unavailable"]},{"type":"string","enum":["repository_empty"]},{"type":"string","enum":["permission_denied"]},{"type":"string","enum":["plugin_unavailable"]},{"type":"string","enum":["unsupported_plugin"]},{"type":"string","enum":["repository_too_large"]},{"type":"string","enum":["repository_conflict"]},{"type":"string","enum":["provider_unavailable"]},{"type":"string","enum":["internal_error"]},{"type":"string","enum":["pull_request_closed"]},{"type":"string","enum":["merge_timeout"]}]},{"type":"null"}]},"failureMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}},"nextExpectedSync":{"anyOf":[{"type":"string"},{"type":"null"}]},"inventory":{"type":"array","items":{"type":"object","required":["tileId","fullName","syncedVersion","desiredVersion","state","quality","security"],"properties":{"tileId":{"format":"uuid","type":"string"},"fullName":{"type":"string"},"syncedVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"desiredVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"state":{"anyOf":[{"type":"string","enum":["synced"]},{"type":"string","enum":["pending_addition"]},{"type":"string","enum":["pending_update"]},{"type":"string","enum":["pending_removal"]}]},"quality":{"type":"object","required":["state","score"],"properties":{"state":{"anyOf":[{"type":"string","enum":["missing"]},{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"score":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"security":{"type":"object","required":["state","level"],"properties":{"state":{"anyOf":[{"type":"string","enum":["missing"]},{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"level":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/requests":{"get":{"tags":["Orgs","Integrations"],"description":"Lists pending integration requests (GitHub App, Tessl Helper, GitLab token) for an organization.","parameters":[{"schema":{"default":"-createdAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration-request"]},"attributes":{"type":"object","required":["integrationType","status","metadata","integrationId","createdAt","updatedAt"],"properties":{"integrationType":{"anyOf":[{"type":"string","enum":["github-app"]},{"type":"string","enum":["github-app-agent"]},{"type":"string","enum":["gitlab-token"]}]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["rejected"]}]},"metadata":{"anyOf":[{"type":"object","required":["githubUserId","accountId","accountLogin"],"properties":{"githubUserId":{"type":"number"},"accountId":{"type":"number"},"accountLogin":{"type":"string"}}},{"type":"object","properties":{}}]},"integrationId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/integrations/requests/{requestId}":{"delete":{"tags":["Orgs","Integrations"],"description":"Cancels a pending integration request for an organization.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"requestId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/workspaces":{"get":{"tags":["Orgs"],"parameters":[{"schema":{"default":"name","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]}},{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","meta"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]},"attributes":{"type":"object","required":["name","orgDefaultRole","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"orgDefaultRole":{"anyOf":[{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}},"meta":{"type":"object","required":["allowedActions"],"properties":{"allowedActions":{"type":"array","items":{"type":"string"}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/audit-events":{"get":{"tags":["Orgs"],"description":"Lists audit events for an organization. Supports filtering by date range, action, and actor. Returns JSON or CSV.","parameters":[{"schema":{"format":"date-time","type":"string"},"in":"query","name":"from","required":false},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"to","required":false},{"schema":{"type":"string"},"in":"query","name":"action","required":false},{"schema":{"type":"string"},"in":"query","name":"actorId","required":false},{"schema":{"type":"string"},"in":"query","name":"targetId","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"minimum":1,"maximum":1000,"default":50,"type":"integer"},"in":"query","name":"limit","required":false},{"schema":{"anyOf":[{"type":"string","enum":["json"]},{"type":"string","enum":["csv"]}]},"in":"query","name":"format","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["audit-event"]},"attributes":{"type":"object","required":["occurredAt","action","outcome","actorType","actorId","actorEmail","actorLabel","impersonated","impersonatorId","impersonationReason","targetType","targetId","targetLabel","requestId","parentEventId","workspaceId","metadata"],"properties":{"occurredAt":{"format":"date-time","type":"string"},"action":{"type":"string"},"outcome":{"anyOf":[{"anyOf":[{"type":"string","enum":["succeeded"]},{"type":"string","enum":["failed"]}]},{"type":"null"}]},"actorType":{"anyOf":[{"type":"string","enum":["user"]},{"type":"string","enum":["api_key_user"]},{"type":"string","enum":["org_api_key_user"]},{"type":"string","enum":["system"]},{"type":"string","enum":["anonymous"]}]},"actorId":{"anyOf":[{"type":"string"},{"type":"null"}]},"actorEmail":{"anyOf":[{"type":"string"},{"type":"null"}]},"actorLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"impersonated":{"type":"boolean"},"impersonatorId":{"anyOf":[{"type":"string"},{"type":"null"}]},"impersonationReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetType":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetId":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"parentEventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"metadata":{"type":"object","additionalProperties":{}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/install-policy":{"get":{"tags":["InstallPolicy"],"description":"Returns the install policy for the organization, falling back to the default policy when no row exists.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["install-policy"]},"attributes":{"type":"object","required":["policyDoc","isDefault","updatedAt"],"properties":{"policyDoc":{"additionalProperties":false,"type":"object","required":["version","rules"],"properties":{"version":{"type":"number","enum":[1]},"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToWarn","minSeverityToBlock"],"properties":{"minSeverityToWarn":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}},"sourceRestriction":{"additionalProperties":false,"type":"object","required":["registryScope","allowGitSources"],"properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"allowGitSources":{"type":"boolean"},"gitSourceAllowlist":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["host","path"],"properties":{"host":{"minLength":1,"type":"string"},"path":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"minimumReleaseAge":{"additionalProperties":false,"type":"object","required":["days"],"properties":{"days":{"minimum":0,"type":"integer"}}}}}}},"isDefault":{"type":"boolean"},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"put":{"tags":["InstallPolicy"],"description":"Upserts the install policy for the organization.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["policyDoc"],"properties":{"policyDoc":{"additionalProperties":false,"type":"object","required":["version","rules"],"properties":{"version":{"type":"number","enum":[1]},"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToWarn","minSeverityToBlock"],"properties":{"minSeverityToWarn":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}},"sourceRestriction":{"additionalProperties":false,"type":"object","required":["registryScope","allowGitSources"],"properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"allowGitSources":{"type":"boolean"},"gitSourceAllowlist":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["host","path"],"properties":{"host":{"minLength":1,"type":"string"},"path":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"minimumReleaseAge":{"additionalProperties":false,"type":"object","required":["days"],"properties":{"days":{"minimum":0,"type":"integer"}}}}}}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["install-policy"]},"attributes":{"type":"object","required":["policyDoc","isDefault","updatedAt"],"properties":{"policyDoc":{"additionalProperties":false,"type":"object","required":["version","rules"],"properties":{"version":{"type":"number","enum":[1]},"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToWarn","minSeverityToBlock"],"properties":{"minSeverityToWarn":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}},"sourceRestriction":{"additionalProperties":false,"type":"object","required":["registryScope","allowGitSources"],"properties":{"registryScope":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["tessl-and-org"]},{"type":"string","enum":["org-only"]}]},"allowGitSources":{"type":"boolean"},"gitSourceAllowlist":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["host","path"],"properties":{"host":{"minLength":1,"type":"string"},"path":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"minimumReleaseAge":{"additionalProperties":false,"type":"object","required":["days"],"properties":{"days":{"minimum":0,"type":"integer"}}}}}}},"isDefault":{"type":"boolean"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["InstallPolicy"],"description":"Deletes the install policy for the organization, reverting to the default policy. Idempotent.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/byo-provider":{"get":{"tags":["ByoProvider"],"description":"Returns the organization's own LLM provider configuration. The credential is never included, not even masked.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["byo-provider"]},"attributes":{"type":"object","required":["baseUrl","enabledModels","tierModels","enabled","orgSlug","updatedAt"],"properties":{"baseUrl":{"type":"string"},"enabledModels":{"type":"array","items":{"type":"string"}},"tierModels":{"additionalProperties":false,"type":"object","required":["high","medium","low"],"properties":{"high":{"anyOf":[{"type":"string"},{"type":"null"}]},"medium":{"anyOf":[{"type":"string"},{"type":"null"}]},"low":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"enabled":{"type":"boolean"},"orgSlug":{"description":"Immutable organization slug used as the prefix for composed gateway model names.","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"put":{"tags":["ByoProvider"],"description":"Configures the organization's own LLM provider (bring-your-own gateway). Validates the configuration against the customer gateway and stores the credential encrypted; the credential is never returned. `tierModels` names one of the organization's own models per tier (high, medium, low); each feature is mapped to a tier, and an enabled gateway must name a model for all three. `enabledModels` may be empty, which registers the connection with no models yet; such a gateway must be created with `enabled: false` and stays unable to be enabled until it has models and all three tiers.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["baseUrl","credential","enabledModels"],"properties":{"baseUrl":{"description":"HTTPS gateway base URL ending in /v1, without user information, a query, or a fragment.","type":"string"},"credential":{"minLength":1,"type":"string"},"enabledModels":{"type":"array","items":{"minLength":1,"type":"string"}},"tierModels":{"additionalProperties":false,"description":"Tier to model, in the customer's own model names. Tessl maps each of its features to a tier; that mapping is not configurable.","type":"object","properties":{"high":{"minLength":1,"type":"string"},"medium":{"minLength":1,"type":"string"},"low":{"minLength":1,"type":"string"}}},"enabled":{"type":"boolean"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["byo-provider"]},"attributes":{"type":"object","required":["baseUrl","enabledModels","tierModels","enabled","orgSlug","updatedAt"],"properties":{"baseUrl":{"type":"string"},"enabledModels":{"type":"array","items":{"type":"string"}},"tierModels":{"additionalProperties":false,"type":"object","required":["high","medium","low"],"properties":{"high":{"anyOf":[{"type":"string"},{"type":"null"}]},"medium":{"anyOf":[{"type":"string"},{"type":"null"}]},"low":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"enabled":{"type":"boolean"},"orgSlug":{"description":"Immutable organization slug used as the prefix for composed gateway model names.","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"description":"Bad Gateway","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Gateway"]},"status":{"type":"number","enum":[502]},"message":{"type":"string"}}}}}}}}}},"patch":{"tags":["ByoProvider"],"description":"Partially updates the organization's own LLM provider. Every field is optional, including `credential`: omit it and the stored one is used. Validation runs against the merged result. Gateway validation only runs when connection details, models, or enabled state require it. A partial `tierModels` is merged over the stored tier selection.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"baseUrl":{"description":"HTTPS gateway base URL ending in /v1, without user information, a query, or a fragment.","type":"string"},"credential":{"minLength":1,"type":"string"},"enabledModels":{"minItems":1,"type":"array","items":{"minLength":1,"type":"string"}},"tierModels":{"additionalProperties":false,"description":"Tier to model, in the customer's own model names. Tessl maps each of its features to a tier; that mapping is not configurable.","type":"object","properties":{"high":{"minLength":1,"type":"string"},"medium":{"minLength":1,"type":"string"},"low":{"minLength":1,"type":"string"}}},"enabled":{"type":"boolean"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["byo-provider"]},"attributes":{"type":"object","required":["baseUrl","enabledModels","tierModels","enabled","orgSlug","updatedAt"],"properties":{"baseUrl":{"type":"string"},"enabledModels":{"type":"array","items":{"type":"string"}},"tierModels":{"additionalProperties":false,"type":"object","required":["high","medium","low"],"properties":{"high":{"anyOf":[{"type":"string"},{"type":"null"}]},"medium":{"anyOf":[{"type":"string"},{"type":"null"}]},"low":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"enabled":{"type":"boolean"},"orgSlug":{"description":"Immutable organization slug used as the prefix for composed gateway model names.","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"description":"Bad Gateway","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Gateway"]},"status":{"type":"number","enum":[502]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["ByoProvider"],"description":"Removes the organization's own LLM provider and its stored credential. Idempotent.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"description":"Bad Gateway","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Gateway"]},"status":{"type":"number","enum":[502]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/sso":{"post":{"tags":["Orgs"],"description":"Generates a WorkOS Admin Portal link for SSO configuration. Restricted to org admins.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"returnUrl":{"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["sso-portal-link"]},"attributes":{"type":"object","required":["link"],"properties":{"link":{"format":"uri","type":"string"}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/billing/checkout-sessions":{"post":{"summary":"Start a Team upgrade checkout","tags":["Billing"],"description":"Creates a Stripe Checkout session (subscription mode) for the Team plan. Returns the hosted checkout URL to redirect to. Stripe creates the customer and recurring subscription; the org is provisioned by the Stripe webhook once checkout completes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["checkout-session"]},"attributes":{"type":"object","required":["checkoutUrl"],"properties":{"checkoutUrl":{"format":"uri","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"description":"Service Unavailable","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Service Unavailable"]},"status":{"type":"number","enum":[503]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/billing/subscription":{"get":{"tags":["Billing"],"description":"The org's current plan and self-serve subscription status.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["subscription"]},"attributes":{"type":"object","required":["plan","status","startedAt","monthlyPriceUsd","upgradePriceUsd"],"properties":{"plan":{"type":"object","required":["code","displayName"],"properties":{"code":{"anyOf":[{"type":"string","enum":["free"]},{"type":"string","enum":["free-legacy-v1"]},{"type":"string","enum":["team-v1"]},{"type":"string","enum":["business-v1"]},{"type":"string","enum":["enterprise-v1"]}]},"displayName":{"type":"string"}}},"status":{"anyOf":[{"type":"string","enum":["none"]},{"type":"string","enum":["incomplete"]},{"type":"string","enum":["active"]},{"type":"string","enum":["past_due"]},{"type":"string","enum":["canceling"]},{"type":"string","enum":["canceled"]}]},"startedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"monthlyPriceUsd":{"anyOf":[{"type":"number"},{"type":"null"}]},"upgradePriceUsd":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"summary":"Cancel a Team subscription at period end","tags":["Billing"],"description":"Schedules the org to revert to free at the end of the current billing period. Team stays active until the period ends, then the plan flips to free automatically.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["cancelAtPeriodEnd"],"properties":{"cancelAtPeriodEnd":{"type":"boolean","enum":[true]}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["subscription"]},"attributes":{"type":"object","required":["plan","status","startedAt"],"properties":{"plan":{"type":"object","required":["code","displayName"],"properties":{"code":{"anyOf":[{"type":"string","enum":["free"]},{"type":"string","enum":["free-legacy-v1"]},{"type":"string","enum":["team-v1"]},{"type":"string","enum":["business-v1"]},{"type":"string","enum":["enterprise-v1"]}]},"displayName":{"type":"string"}}},"status":{"type":"string","enum":["canceling"]},"startedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"description":"Service Unavailable","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Service Unavailable"]},"status":{"type":"number","enum":[503]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/credits":{"get":{"tags":["Billing"],"description":"The org's credit account: current-window usage against the advertised limit and the plan. Pass `?include=bundles` to also include the catalogue of purchasable top-up bundles in the response.","parameters":[{"schema":{"anyOf":[{"type":"string","enum":["bundles"]},{"type":"array","items":{"type":"string","enum":["bundles"]}}]},"in":"query","name":"include","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["credit-account"]},"attributes":{"type":"object","required":["credits","plan"],"properties":{"credits":{"anyOf":[{"type":"object","required":["state","limit","used","remaining","windowStart","resetsAt","overLimit","blocked","overageAllowed"],"properties":{"state":{"anyOf":[{"type":"string","enum":["ok"]},{"type":"string","enum":["over_budget"]}]},"limit":{"type":"number"},"used":{"type":"number"},"remaining":{"type":"number"},"windowStart":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"resetsAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"overLimit":{"type":"boolean"},"blocked":{"type":"boolean"},"overageAllowed":{"type":"boolean"}}},{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["unlimited"]}}},{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["unavailable"]}}}]},"plan":{"type":"object","required":["code","displayName"],"properties":{"code":{"anyOf":[{"type":"string","enum":["free"]},{"type":"string","enum":["free-legacy-v1"]},{"type":"string","enum":["team-v1"]},{"type":"string","enum":["business-v1"]},{"type":"string","enum":["enterprise-v1"]}]},"displayName":{"type":"string"}}},"bundles":{"type":"array","items":{"type":"object","required":["code","credits","priceUsd","displayName"],"properties":{"code":{"anyOf":[{"type":"string","enum":["bundle-5k-v1"]},{"type":"string","enum":["bundle-25k-v1"]}]},"credits":{"type":"number"},"priceUsd":{"type":"number"},"displayName":{"type":"string"}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"summary":"Start a credit-bundle checkout (top up)","tags":["Billing"],"description":"Creates a Stripe Checkout session (payment mode) to buy a one-off credit bundle. Returns the hosted checkout URL to redirect to; Stripe charges the card at checkout and the credits are granted by the Stripe webhook once payment completes. Requires the org to be on the Team plan.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["bundleCode"],"properties":{"bundleCode":{"anyOf":[{"type":"string","enum":["bundle-5k-v1"]},{"type":"string","enum":["bundle-25k-v1"]}]}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["checkout-session"]},"attributes":{"type":"object","required":["checkoutUrl"],"properties":{"checkoutUrl":{"format":"uri","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"description":"Service Unavailable","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Service Unavailable"]},"status":{"type":"number","enum":[503]},"message":{"type":"string"}}}}}}}}}}},"/v1/billing/operations/{operationId}/credits":{"get":{"tags":["Billing"],"description":"The recorded credit total for a single operation (a review run, eval run, fix run, cloud launch or scenario generation). Returns `credits: null` when nothing has been recorded for the operation, which is distinct from a recorded charge of zero.","parameters":[{"schema":{"minLength":1,"maxLength":255,"type":"string"},"in":"path","name":"operationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["operation-credits"]},"attributes":{"type":"object","required":["credits"],"properties":{"credits":{"description":"Credits charged against this operation, or null when no charge has been recorded for it.","anyOf":[{"type":"number"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/orgs/{orgId}/credits/usage":{"get":{"tags":["Billing"],"description":"Paginated, filterable log of the org's credit usage events, deduplicated so each billed action appears once, with credit totals for the filtered range. Org-admin only.","parameters":[{"schema":{"default":"-timestamp","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["timestamp"]},{"type":"string","enum":["-timestamp"]}]}},{"anyOf":[{"type":"string","enum":["timestamp"]},{"type":"string","enum":["-timestamp"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["generation"]},{"type":"string","enum":["tests_reviews"]},{"type":"string","enum":["task_evaluations"]},{"type":"string","enum":["analysis"]},{"type":"string","enum":["mcp"]},{"type":"string","enum":["launch"]},{"type":"string","enum":["inference"]}]},"in":"query","name":"filter[category]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[actionCode]","required":false},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"filter[timestamp][gte]","required":false},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"filter[timestamp][lte]","required":false},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"filter[timestamp][lt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count","totals"],"properties":{"count":{"type":"number"},"totals":{"type":"object","required":["totalCredits","byCategory","byAction"],"properties":{"totalCredits":{"type":"number"},"byCategory":{"type":"array","items":{"type":"object","required":["category","totalCredits"],"properties":{"category":{"anyOf":[{"type":"string","enum":["generation"]},{"type":"string","enum":["tests_reviews"]},{"type":"string","enum":["task_evaluations"]},{"type":"string","enum":["analysis"]},{"type":"string","enum":["mcp"]},{"type":"string","enum":["launch"]},{"type":"string","enum":["inference"]}]},"totalCredits":{"type":"number"}}}},"byAction":{"type":"array","items":{"type":"object","required":["actionCode","category","unit","events","quantity","totalCredits","creditsPerUnit"],"properties":{"actionCode":{"type":"string"},"category":{"anyOf":[{"type":"string","enum":["generation"]},{"type":"string","enum":["tests_reviews"]},{"type":"string","enum":["task_evaluations"]},{"type":"string","enum":["analysis"]},{"type":"string","enum":["mcp"]},{"type":"string","enum":["launch"]},{"type":"string","enum":["inference"]}]},"unit":{"type":"string"},"events":{"type":"integer"},"quantity":{"type":"number"},"totalCredits":{"type":"number"},"creditsPerUnit":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}}}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["credit-usage-event"]},"attributes":{"type":"object","required":["timestamp","category","actionCode","quantity","unit","totalCredits"],"properties":{"timestamp":{"format":"date-time","type":"string"},"category":{"anyOf":[{"type":"string","enum":["generation"]},{"type":"string","enum":["tests_reviews"]},{"type":"string","enum":["task_evaluations"]},{"type":"string","enum":["analysis"]},{"type":"string","enum":["mcp"]},{"type":"string","enum":["launch"]},{"type":"string","enum":["inference"]}]},"actionCode":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"},"totalCredits":{"type":"number"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces":{"get":{"tags":["Workspaces"],"description":"Lists workspaces with name/org/membership/archived filters.","parameters":[{"schema":{"default":"-updatedAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]}},{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[name][like]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[orgId]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[orgId][eq]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[orgId][ne]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[orgId][gt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[orgId][gte]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[orgId][lt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[orgId][lte]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[orgId][like]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[isMember]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[isMember][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[isMember][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[archived]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[archived][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[archived][ne]","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes","meta"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]},"attributes":{"type":"object","required":["name","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},"meta":{"type":"object","required":["allowedActions"],"properties":{"allowedActions":{"type":"array","items":{"type":"string"}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Workspaces"],"description":"Creates a new workspace.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["name"],"properties":{"name":{"minLength":4,"maxLength":40,"pattern":"^[0-9a-z-]+$","type":"string"},"orgId":{"format":"uuid","type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]},"attributes":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"},"code":{"type":"string","enum":["workspace_name_taken"]},"url":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces/{workspaceIdOrName}":{"get":{"tags":["Workspaces"],"description":"Fetches a workspace by id or name.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceIdOrName","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes","meta"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]},"attributes":{"type":"object","required":["name","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"blockPublicTilePublish":{"type":"boolean"},"securityReviewsEnabled":{"type":"boolean"},"evalsEnabled":{"type":"boolean"},"orgDefaultRole":{"anyOf":[{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}},"meta":{"type":"object","required":["allowedActions"],"properties":{"allowedActions":{"type":"array","items":{"type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces/{workspaceId}":{"patch":{"tags":["Workspaces"],"description":"Archives, restores, or updates workspace settings (blockPublicTilePublish, securityReviewsEnabled, evalsEnabled, orgDefaultRole).","requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"minProperties":1,"type":"object","properties":{"name":{"minLength":4,"maxLength":40,"pattern":"^[0-9a-z-]+$","type":"string"},"blockPublicTilePublish":{"type":"boolean"},"securityReviewsEnabled":{"type":"boolean"},"evalsEnabled":{"type":"boolean"},"orgDefaultRole":{"anyOf":[{"anyOf":[{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},{"type":"null"}]}}},{"type":"object","allOf":[{"minProperties":1,"type":"object","properties":{"name":{"minLength":4,"maxLength":40,"pattern":"^[0-9a-z-]+$","type":"string"},"blockPublicTilePublish":{"type":"boolean"},"securityReviewsEnabled":{"type":"boolean"},"evalsEnabled":{"type":"boolean"},"orgDefaultRole":{"anyOf":[{"anyOf":[{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},{"type":"null"}]}}},{"type":"object","required":["archived"],"properties":{"archived":{"type":"boolean","enum":[false]}}}]},{"type":"object","allOf":[{"minProperties":1,"type":"object","properties":{"name":{"minLength":4,"maxLength":40,"pattern":"^[0-9a-z-]+$","type":"string"},"blockPublicTilePublish":{"type":"boolean"},"securityReviewsEnabled":{"type":"boolean"},"evalsEnabled":{"type":"boolean"},"orgDefaultRole":{"anyOf":[{"anyOf":[{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},{"type":"null"}]}}},{"type":"object","required":["archived","archivedReason"],"properties":{"archived":{"type":"boolean","enum":[true]},"archivedReason":{"type":"string"}}}]}]}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]},"attributes":{"type":"object","required":["name","archived","archivedAt","archivedBy","archivedReason","blockPublicTilePublish","securityReviewsEnabled","evalsEnabled","orgDefaultRole","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"archived":{"type":"boolean"},"archivedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"archivedBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"archivedReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"blockPublicTilePublish":{"type":"boolean"},"securityReviewsEnabled":{"type":"boolean"},"evalsEnabled":{"type":"boolean"},"orgDefaultRole":{"anyOf":[{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Workspaces"],"description":"Deletes a workspace by id.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces/{workspaceId}/managed-project-policy":{"get":{"tags":["ManagedProjectPolicy"],"description":"Returns the current managed project policy for the workspace.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["managed-project-policy"]},"attributes":{"type":"object","required":["name","manifest","updatedAt"],"properties":{"name":{"type":"string","enum":["current"]},"manifest":{"type":"object","required":["dependencies"],"properties":{"dependencies":{"minProperties":1,"type":"object","additionalProperties":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"string"}}}}}},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"put":{"tags":["ManagedProjectPolicy"],"description":"Creates or replaces the current managed project policy for the workspace.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["manifest"],"properties":{"manifest":{"type":"object","required":["dependencies"],"properties":{"dependencies":{"minProperties":1,"type":"object","additionalProperties":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"string"}}}}}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["managed-project-policy"]},"attributes":{"type":"object","required":["name","manifest","updatedAt"],"properties":{"name":{"type":"string","enum":["current"]},"manifest":{"type":"object","required":["dependencies"],"properties":{"dependencies":{"minProperties":1,"type":"object","additionalProperties":{"additionalProperties":false,"type":"object","required":["version"],"properties":{"version":{"type":"string"}}}}}},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["ManagedProjectPolicy"],"description":"Deletes the current managed project policy for the workspace. Idempotent.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces/{workspaceId}/onboarding":{"get":{"tags":["Workspaces"],"description":"Returns the onboarding checklist state for a workspace.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["steps"],"properties":{"steps":{"type":"array","items":{"type":"object","required":["id","completed","optional"],"properties":{"id":{"anyOf":[{"type":"string","enum":["setup-github"]},{"type":"string","enum":["generate-tile"]}]},"completed":{"type":"boolean"},"optional":{"type":"boolean"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces/{workspaceId}/members":{"get":{"tags":["Workspaces"],"description":"Lists the members of a workspace.","parameters":[{"schema":{"default":"username","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["username"]},{"type":"string","enum":["-username"]}]}},{"anyOf":[{"type":"string","enum":["username"]},{"type":"string","enum":["-username"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["username","firstName","lastName","profilePictureUrl","role","directRole"],"properties":{"username":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"profilePictureUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}],"description":"Effective workspace role (highest applicable): org admins surface as `owner`, and org members inherit the workspace's org-default role when it is higher than their stored role."},"directRole":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}],"description":"Stored workspace membership role, ignoring org-admin and org-default elevation. May be lower than `role`."}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Workspaces"],"description":"Adds a user as a member of a workspace.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["memberId","role"],"properties":{"memberId":{"type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["role"],"properties":{"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces/{workspaceId}/members/{userId}":{"patch":{"tags":["Workspaces"],"description":"Updates a workspace member's role.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["role"],"properties":{"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["user"]},"attributes":{"type":"object","required":["role"],"properties":{"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Workspaces"],"description":"Removes a member from a workspace. Cannot remove the last owner.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces/{workspaceNameOrID}/context":{"get":{"tags":["Context"],"description":"Lists the workspace Context collection: one family-deduplicated row per accessible, in-scope context occurrence in the workspace source set (active Inventory repositories and published registry plugins). Occurrence-only and read-only; References are not exposed. Cursor paginated, sortable by name or -updatedAt, and filterable by kind, relationship state, provider, direct source repository, and free text over name/description.","parameters":[{"schema":{"default":"name","anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[kind]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["published"]},{"type":"string","enum":["in-codebases"]}]},"in":"query","name":"filter[state]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[provider]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[repository]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[q]","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["ninety-plus"]},{"type":"string","enum":["seventy-to-eighty-nine"]},{"type":"string","enum":["below-seventy"]},{"type":"string","enum":["unscored"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["ninety-plus"]},{"type":"string","enum":["seventy-to-eighty-nine"]},{"type":"string","enum":["below-seventy"]},{"type":"string","enum":["unscored"]}]}}]},"in":"query","name":"filter[score]","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["none"]},{"type":"string","enum":["pending"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["passed"]},{"type":"string","enum":["critical"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["none"]},{"type":"string","enum":["pending"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["passed"]},{"type":"string","enum":["critical"]}]}}]},"in":"query","name":"filter[security]","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count","repositories"],"properties":{"count":{"type":"number"},"repositories":{"type":"array","items":{"type":"object","required":["id","name","provider"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"provider":{"type":"string"}}}}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["workspace-context-row"]},"attributes":{"type":"object","required":["kind","name","description","states","canonical","locations","containment","providers","lastObservedAt","qualityScore","scores","securityFacet"],"properties":{"kind":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"states":{"type":"object","required":["published","inCodebases"],"properties":{"published":{"type":"boolean"},"inCodebases":{"type":"boolean"}}},"canonical":{"anyOf":[{"type":"object","required":["lineageId","sourceUrl","provider","slug","owner","repo","registry","directoryName"],"properties":{"lineageId":{"type":"string"},"sourceUrl":{"type":"string"},"provider":{"type":"string"},"slug":{"type":"string"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"repo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]},"directoryName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"locations":{"type":"object","required":["total","repositories","published"],"properties":{"total":{"type":"integer"},"repositories":{"type":"integer"},"published":{"type":"integer"}}},"containment":{"anyOf":[{"type":"object","required":["pluginLineageId","pluginName"],"properties":{"pluginLineageId":{"type":"string"},"pluginName":{"type":"string"}}},{"type":"null"}]},"providers":{"type":"array","items":{"type":"string"}},"lastObservedAt":{"format":"date-time","type":"string"},"qualityScore":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"scores":{"anyOf":[{"type":"object","required":["version","aggregate","quality","securityLevel","evalAvg","evalBaseline","evalImprovementMultiplier","evalCount","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"lastScoredAt":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"securityFacet":{"anyOf":[{"type":"string","enum":["none"]},{"type":"string","enum":["pending"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["passed"]},{"type":"string","enum":["critical"]}]}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/v1/workspaces/{workspaceNameOrID}/skill-inventories/{id}/findings/{findingId}":{"patch":{"tags":["SkillInventory"],"description":"Ignores or un-ignores a single Finding. Ignoring moves it out of the status=active triage list into status=ignored and drops it from the denormalized finding counts; the state persists across re-scans.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["ignored"],"properties":{"ignored":{"type":"boolean"},"reason":{"anyOf":[{"type":"string","enum":["not-relevant"]},{"type":"string","enum":["wont-fix"]},{"type":"string","enum":["noisy"]}]}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"findingId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill-inventory-finding"]},"attributes":{"type":"object","required":["ignored"],"properties":{"ignored":{"type":"boolean"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/lineages/resolve":{"get":{"tags":["Context"],"description":"Resolves a context lineage by coordinates: a source (provider + owner/repo; for tessl-registry, owner is the workspace and repo is the plugin) plus exactly one of slug or occurrence path. `kind` applies only to slug resolution (slug is unique per source and kind); it is ignored for path resolution, since an occurrence path already identifies exactly one lineage regardless of kind. Invalid combinations are rejected with 400.","parameters":[{"schema":{"type":"string"},"in":"query","name":"provider","required":true},{"schema":{"type":"string"},"in":"query","name":"owner","required":false},{"schema":{"type":"string"},"in":"query","name":"repo","required":false},{"schema":{"type":"string"},"in":"query","name":"slug","required":false},{"schema":{"type":"string"},"in":"query","name":"path","required":false},{"schema":{"default":"skill","anyOf":[{"type":"string","enum":["skill"]},{"type":"string","enum":["plugin"]}]},"in":"query","name":"kind","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["context-lineage"]},"attributes":{"type":"object","required":["kind","slug","name","visibility","coordinates","head","canonical","liveness","createdAt","updatedAt"],"properties":{"kind":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public"]},{"type":"string","enum":["private"]}]},"coordinates":{"type":"object","required":["provider","sourceUrl","owner","repo","registry","path","ref","occurrenceType"],"properties":{"provider":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"repo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]},"path":{"type":"string"},"ref":{"type":"string"},"occurrenceType":{"type":"string"}}},"head":{"anyOf":[{"type":"object","required":["versionId","fingerprintAlgo","fingerprint","bodyFingerprint","bodyFingerprintAlgo","name","description","parseError"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"bodyFingerprintAlgo":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"parseError":{"anyOf":[{"type":"object","required":["stage","message"],"properties":{"stage":{"type":"string"},"message":{"type":"string"}}},{"type":"null"}]}}},{"type":"null"}]},"canonical":{"anyOf":[{"type":"object","required":["lineageId","electedAt","electionReason"],"properties":{"lineageId":{"format":"uuid","type":"string"},"electedAt":{"format":"date-time","type":"string"},"electionReason":{"type":"string"}}},{"type":"null"}]},"liveness":{"type":"object","required":["liveOccurrenceCount","firstSeenAt","lastSeenAt","earliestKnownAt","gone","goneAt","lastSeenPath","lastSeenRef"],"properties":{"liveOccurrenceCount":{"type":"integer"},"firstSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"earliestKnownAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"gone":{"type":"boolean"},"goneAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenPath":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSeenRef":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/lineages":{"get":{"tags":["Context"],"description":"Lists a source's live, visible context lineages of a kind, one row per lineage.","parameters":[{"schema":{"type":"string"},"in":"query","name":"filter[provider]","required":true},{"schema":{"type":"string"},"in":"query","name":"filter[owner]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[repo]","required":false},{"schema":{"default":"skill","anyOf":[{"type":"string","enum":["skill"]},{"type":"string","enum":["plugin"]}]},"in":"query","name":"filter[kind]","required":false},{"schema":{"default":"slug","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["slug"]},{"type":"string","enum":["-slug"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["slug"]},{"type":"string","enum":["-slug"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["context-lineage"]},"attributes":{"type":"object","required":["kind","slug","name","visibility","coordinates","head","canonical","liveness","review","scores","createdAt","updatedAt"],"properties":{"kind":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public"]},{"type":"string","enum":["private"]}]},"coordinates":{"type":"object","required":["provider","sourceUrl","owner","repo","registry","path","ref","occurrenceType"],"properties":{"provider":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"repo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]},"path":{"type":"string"},"ref":{"type":"string"},"occurrenceType":{"type":"string"}}},"head":{"anyOf":[{"type":"object","required":["versionId","fingerprintAlgo","fingerprint","bodyFingerprint","bodyFingerprintAlgo","name","description","parseError"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"bodyFingerprintAlgo":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"parseError":{"anyOf":[{"type":"object","required":["stage","message"],"properties":{"stage":{"type":"string"},"message":{"type":"string"}}},{"type":"null"}]}}},{"type":"null"}]},"canonical":{"anyOf":[{"type":"object","required":["lineageId","electedAt","electionReason"],"properties":{"lineageId":{"format":"uuid","type":"string"},"electedAt":{"format":"date-time","type":"string"},"electionReason":{"type":"string"}}},{"type":"null"}]},"liveness":{"type":"object","required":["liveOccurrenceCount","firstSeenAt","lastSeenAt","earliestKnownAt","gone","goneAt","lastSeenPath","lastSeenRef"],"properties":{"liveOccurrenceCount":{"type":"integer"},"firstSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"earliestKnownAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"gone":{"type":"boolean"},"goneAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenPath":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSeenRef":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"review":{"anyOf":[{"type":"object","required":["reviewRunId","versionId","score","validationPassed","createdAt"],"properties":{"reviewRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"versionId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"validationPassed":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"}}},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/repos":{"get":{"tags":["Context"],"description":"Lists an owner's repos that hold live, visible context lineages of a kind, one row per repo.","parameters":[{"schema":{"type":"string"},"in":"query","name":"filter[provider]","required":true},{"schema":{"type":"string"},"in":"query","name":"filter[owner]","required":true},{"schema":{"default":"skill","anyOf":[{"type":"string","enum":["skill"]},{"type":"string","enum":["plugin"]}]},"in":"query","name":"filter[kind]","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["context-repo"]},"attributes":{"type":"object","required":["repoName","lineageNames"],"properties":{"repoName":{"type":"string"},"lineageNames":{"type":"array","items":{"type":"string"}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/lineages/{lineageId}":{"get":{"tags":["Context"],"description":"Fetches a context lineage by id.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"lineageId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["context-lineage"]},"attributes":{"type":"object","required":["kind","slug","name","visibility","coordinates","head","canonical","liveness","movedTo","review","security","scores","createdAt","updatedAt"],"properties":{"kind":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public"]},{"type":"string","enum":["private"]}]},"coordinates":{"type":"object","required":["provider","sourceUrl","owner","repo","registry","path","ref","occurrenceType"],"properties":{"provider":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"repo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]},"path":{"type":"string"},"ref":{"type":"string"},"occurrenceType":{"type":"string"}}},"head":{"anyOf":[{"type":"object","required":["versionId","fingerprintAlgo","fingerprint","bodyFingerprint","bodyFingerprintAlgo","skillMdBody","name","description","parseError"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"bodyFingerprintAlgo":{"anyOf":[{"type":"string"},{"type":"null"}]},"skillMdBody":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"parseError":{"anyOf":[{"type":"object","required":["stage","message"],"properties":{"stage":{"type":"string"},"message":{"type":"string"}}},{"type":"null"}]}}},{"type":"null"}]},"canonical":{"anyOf":[{"type":"object","required":["lineageId","electedAt","electionReason"],"properties":{"lineageId":{"format":"uuid","type":"string"},"electedAt":{"format":"date-time","type":"string"},"electionReason":{"type":"string"}}},{"type":"null"}]},"liveness":{"type":"object","required":["liveOccurrenceCount","firstSeenAt","lastSeenAt","earliestKnownAt","gone","goneAt","lastSeenPath","lastSeenRef"],"properties":{"liveOccurrenceCount":{"type":"integer"},"firstSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"earliestKnownAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"gone":{"type":"boolean"},"goneAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenPath":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSeenRef":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"movedTo":{"anyOf":[{"anyOf":[{"type":"object","required":["kind","coordinates"],"properties":{"kind":{"type":"string","enum":["source"]},"coordinates":{"type":"object","required":["provider","sourceUrl","owner","repo","registry"],"properties":{"provider":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"repo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]}}}}},{"type":"object","required":["kind","lineageId","slug","coordinates"],"properties":{"kind":{"type":"string","enum":["lineage"]},"lineageId":{"format":"uuid","type":"string"},"slug":{"type":"string"},"coordinates":{"type":"object","required":["provider","sourceUrl","owner","repo","registry"],"properties":{"provider":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"owner":{"type":"string"},"repo":{"type":"string"},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]}}}}}]},{"type":"null"}]},"review":{"anyOf":[{"type":"object","required":["reviewRunId","versionId","score","validationPassed","createdAt","results"],"properties":{"reviewRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"versionId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"validationPassed":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"results":{"anyOf":[{"type":"object","properties":{"validation":{"type":"object","required":["checks","overallPassed","errorCount","warningCount"],"properties":{"skillName":{"type":"string"},"skillDescription":{"type":"string"},"checks":{"type":"array","items":{"type":"object","required":["name","status","message"],"properties":{"name":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["passed"]},{"type":"string","enum":["warning"]},{"type":"string","enum":["error"]}]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}},"overallPassed":{"type":"boolean"},"errorCount":{"type":"number"},"warningCount":{"type":"number"}}},"judges":{"type":"object","additionalProperties":{"type":"object","required":["success","scale"],"properties":{"success":{"type":"boolean"},"errorMessage":{"type":"string"},"scale":{"type":"object","required":["min","max"],"properties":{"min":{"type":"number"},"max":{"type":"number"}}},"evaluation":{"type":"object","required":["scores","overall_assessment","suggestions"],"properties":{"scores":{"type":"object","additionalProperties":{"type":"object","required":["score","reasoning"],"properties":{"score":{"type":"number"},"reasoning":{"type":"string"}}}},"overall_assessment":{"type":"string"},"suggestions":{"type":"array","items":{"type":"string"}},"validation_skipped":{"type":"boolean"}}},"weightedScore":{"type":"number"},"normalizedScore":{"type":"number"}}}},"scoring":{"type":"object","required":["components"],"properties":{"components":{"type":"array","items":{"type":"object","required":["id","weight","normalized"],"properties":{"id":{"type":"string"},"weight":{"type":"number"},"normalized":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}}}}},{"type":"null"}]}}},{"type":"null"}]},"security":{"type":"object","required":["securityStatus","securityRiskLevel","securityLevel","securitySummary","securityUpdatedAt","securityFindings","securityOverrideMessage"],"properties":{"securityStatus":{"anyOf":[{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},{"type":"null"}]},"securityRiskLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securitySummary":{"anyOf":[{"type":"string"},{"type":"null"}]},"securityUpdatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"securityFindings":{"type":"array","items":{"type":"object","required":["severity","severityLevel","code","title","reasoning","issueDescription"],"properties":{"severity":{"deprecated":true,"description":"Deprecated legacy Snyk per-finding severity. Use `severityLevel` instead.","anyOf":[{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"severityLevel":{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"located":{"type":"object","required":["sourceUrl","sourceRef","sourcePath","items"],"properties":{"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourcePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["kind","value","locations"],"properties":{"kind":{"type":"string"},"value":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"line":{"type":"number"},"snippet":{"type":"string"}}}},"rationale":{"type":"string"}}}}}}}}},"securityOverrideMessage":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/lineages/{lineageId}/request-evals":{"post":{"tags":["Context","Evals"],"description":"Triggers evaluations for a skill identified by its context lineage id.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"scenarioCount":{"minimum":1,"maximum":50,"default":3,"type":"integer"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"lineageId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["workflowId"],"properties":{"workflowId":{"type":"string"}}}}}}}},"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["lineageId","message"],"properties":{"lineageId":{"format":"uuid","type":"string"},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/lineages/{lineageId}/family":{"get":{"tags":["Context"],"description":"The lineage's context family: other lineages that have carried the same content, each with a copy state (in-sync / stale / modified) relative to the family's reference member, evidence dates, and coordinates for linking. Family membership and canonical flags may briefly lag recent changes; copy states and evidence reflect current content. Members, counts, and the reference member include only what the caller can access. A lineage not yet in any family returns 200 with empty `data` and zero counts. 404 when the lineage does not exist or is not visible to the caller.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"lineageId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count","canonicalAsserted","referenceLineageId","subjectDefersToCanonical","countsByState","totalAccessibleMembers","publishProvenance"],"properties":{"count":{"type":"number"},"canonicalAsserted":{"type":"boolean"},"referenceLineageId":{"format":"uuid","type":"string"},"subjectDefersToCanonical":{"type":"boolean"},"countsByState":{"type":"object","required":["inSync","stale","modified"],"properties":{"inSync":{"type":"number"},"stale":{"type":"number"},"modified":{"type":"number"}}},"totalAccessibleMembers":{"type":"number"},"publishProvenance":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["context-family-member"]},"attributes":{"type":"object","required":["kind","slug","name","coordinates","head","copyState","isCanonical","evidence","lastSeenAt"],"properties":{"kind":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"coordinates":{"type":"object","required":["provider","sourceUrl","owner","repo","registry","path","ref","occurrenceType"],"properties":{"provider":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"repo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]},"path":{"type":"string"},"ref":{"type":"string"},"occurrenceType":{"type":"string"}}},"head":{"anyOf":[{"type":"object","required":["versionId","fingerprintAlgo","fingerprint","bodyFingerprint","bodyFingerprintAlgo","name","description","parseError"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"bodyFingerprintAlgo":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"parseError":{"anyOf":[{"type":"object","required":["stage","message"],"properties":{"stage":{"type":"string"},"message":{"type":"string"}}},{"type":"null"}]}}},{"type":"null"}]},"copyState":{"anyOf":[{"type":"string","enum":["in-sync"]},{"type":"string","enum":["stale"]},{"type":"string","enum":["modified"]}]},"isCanonical":{"type":"boolean"},"evidence":{"type":"object","required":["sharedSinceAt","referenceSharedSinceAt","modifiedSinceAt","baseVersion"],"properties":{"sharedSinceAt":{"format":"date-time","type":"string"},"referenceSharedSinceAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"modifiedSinceAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"baseVersion":{"anyOf":[{"type":"object","required":["versionId","fingerprintAlgo","fingerprint","bodyFingerprint","bodyFingerprintAlgo","name","description","parseError"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"bodyFingerprintAlgo":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"parseError":{"anyOf":[{"type":"object","required":["stage","message"],"properties":{"stage":{"type":"string"},"message":{"type":"string"}}},{"type":"null"}]}}},{"type":"null"}]}}},"lastSeenAt":{"format":"date-time","type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/lineages/{lineageId}/eval-suite":{"get":{"tags":["Context","Evals"],"description":"Returns the eval suite (latest run and its scenarios) for a skill identified by its context lineage id. Eval scores are looked up from the head version's SKILL.md fingerprint.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"lineageId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-suite"]},"attributes":{"type":"object","required":["status","scenarios","expectedVariants","lastScoredAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"scenarios":{"type":"array","items":{"type":"object","required":["id","fingerprint","task","rubric","createdAt","updatedAt","solutions"],"properties":{"id":{"format":"uuid","type":"string"},"fingerprint":{"pattern":"^[a-f0-9]{64}$","type":"string"},"task":{"type":"string"},"path":{"type":"string"},"shortDescription":{"type":"string"},"rubric":{"type":"object","required":["context","type","checklist"],"properties":{"context":{"minLength":1,"type":"string"},"type":{"type":"string","enum":["weighted_checklist"]},"checklist":{"minItems":1,"type":"array","items":{"type":"object","required":["name","description","max_score"],"properties":{"name":{"minLength":1,"type":"string"},"description":{"minLength":1,"type":"string"},"max_score":{"minimum":0,"type":"number"}}}}}},"qualityAssessment":{"type":"object","required":["feasibility","feasibility_notes","leakage","leakage_evidence","scenario_value","scenario_value_notes","assessed_at","model"],"properties":{"feasibility":{"anyOf":[{"type":"string","enum":["FEASIBLE"]},{"type":"string","enum":["NOT_FEASIBLE"]}]},"feasibility_notes":{"type":"string"},"leakage":{"anyOf":[{"type":"string","enum":["NO_LEAKAGE"]},{"type":"string","enum":["LOW_LEAKAGE"]},{"type":"string","enum":["MEDIUM_LEAKAGE"]},{"type":"string","enum":["HIGH_LEAKAGE"]}]},"leakage_evidence":{"type":"array","items":{"type":"object","required":["scenario_statement","criteria_rubric"],"properties":{"scenario_statement":{"type":"string"},"criteria_rubric":{"type":"string"}}}},"scenario_value":{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]}]},"scenario_value_notes":{"type":"string"},"assessed_at":{"format":"date-time","type":"string"},"model":{"type":"string"}}},"qualityFilterStatus":{"anyOf":[{"type":"string","enum":["included"]},{"type":"string","enum":["rejected"]}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"solutions":{"type":"array","items":{"type":"object","required":["id","variant","solutionTarGZS3Key","solutionMetadata","assessmentResults","assessmentMetadata","createdAt","updatedAt"],"properties":{"id":{"format":"uuid","type":"string"},"variant":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]},"solutionTarGZS3Key":{"anyOf":[{"type":"string"},{"type":"null"}]},"solutionMetadata":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"totalTimeMs":{"type":"number"},"agentDurationMs":{"type":"number"},"costUsd":{"type":"number"},"totalTurns":{"type":"integer"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheCreationTokens":{"type":"number"}}},{"type":"null"}]},"assessmentResults":{"anyOf":[{"type":"array","items":{"type":"object","required":["name","score","reasoning"],"properties":{"name":{"minLength":1,"type":"string"},"score":{"minimum":0,"type":"number"},"max_score":{"minimum":0,"type":"number"},"reasoning":{"minLength":1,"type":"string"}}}},{"type":"null"}]},"assessmentMetadata":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"runs":{"type":"array","items":{"anyOf":[{"type":"object","required":["status","solutionId","score","createdAt"],"properties":{"status":{"type":"string","enum":["completed"]},"solutionId":{"format":"uuid","type":"string"},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"totalTimeMs":{"type":"number"},"totalTurns":{"type":"number"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheCreationTokens":{"type":"number"}}},{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending"]}}}]}},"activation":{"type":"object","required":["activatedSkills"],"properties":{"activatedSkills":{"type":"array","items":{"type":"string"}},"skipped":{"type":"boolean"},"error":{"type":"boolean"}}}}}}}}},"expectedVariants":{"type":"array","items":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/skills/analyse":{"post":{"tags":["Context"],"description":"Scans a public repository (GitHub, GitLab, or Bitbucket) at the requested branch, or the repository default branch when omitted, for SKILL.md files and returns candidates not yet indexed in the context model.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"format":"uri","type":"string"},"branch":{"type":"string"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data","meta"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["path","name","description"],"properties":{"path":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}}}}}},"meta":{"type":"object","required":["repoUrl","branch","totalCount","unindexedCount","returnedCount","limit"],"properties":{"repoUrl":{"type":"string"},"branch":{"type":"string"},"path":{"type":"string"},"totalCount":{"type":"integer"},"unindexedCount":{"type":"integer"},"returnedCount":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/context/skills":{"post":{"tags":["Context"],"description":"Registers a standalone skill from a public GitHub, GitLab, or Bitbucket URL and returns its context lineage. Duplicate requests return the existing lineage with `outcome: already_exists`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["sourceUrl","path"],"properties":{"sourceUrl":{"format":"uri","type":"string"},"path":{"minLength":1,"pattern":"(?:^|/)SKILL\\.md$","type":"string"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes","outcome"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["context-lineage"]},"attributes":{"type":"object","required":["kind","slug","name","visibility","coordinates","head","canonical","liveness","review","scores","createdAt","updatedAt"],"properties":{"kind":{"type":"string"},"slug":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public"]},{"type":"string","enum":["private"]}]},"coordinates":{"type":"object","required":["provider","sourceUrl","owner","repo","registry","path","ref","occurrenceType"],"properties":{"provider":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"repo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]},"path":{"type":"string"},"ref":{"type":"string"},"occurrenceType":{"type":"string"}}},"head":{"anyOf":[{"type":"object","required":["versionId","fingerprintAlgo","fingerprint","bodyFingerprint","bodyFingerprintAlgo","name","description","parseError"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"bodyFingerprintAlgo":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"parseError":{"anyOf":[{"type":"object","required":["stage","message"],"properties":{"stage":{"type":"string"},"message":{"type":"string"}}},{"type":"null"}]}}},{"type":"null"}]},"canonical":{"anyOf":[{"type":"object","required":["lineageId","electedAt","electionReason"],"properties":{"lineageId":{"format":"uuid","type":"string"},"electedAt":{"format":"date-time","type":"string"},"electionReason":{"type":"string"}}},{"type":"null"}]},"liveness":{"type":"object","required":["liveOccurrenceCount","firstSeenAt","lastSeenAt","earliestKnownAt","gone","goneAt","lastSeenPath","lastSeenRef"],"properties":{"liveOccurrenceCount":{"type":"integer"},"firstSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"earliestKnownAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"gone":{"type":"boolean"},"goneAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenPath":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSeenRef":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"review":{"anyOf":[{"type":"object","required":["reviewRunId","versionId","score","validationPassed","createdAt"],"properties":{"reviewRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"versionId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"validationPassed":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"}}},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}},"outcome":{"anyOf":[{"type":"string","enum":["registered"]},{"type":"string","enum":["already_exists"]}]}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/enrichment-eval-runs":{"post":{"summary":"Record an enrichment eval-run scorecard","tags":["Enrichment Eval Runs"],"description":"Records one enrichment eval-run scorecard, stored verbatim as given. The recorded run can be looked up by `extractorCommit`, `goldVersion`, and `model`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["gold_version","config","runs","aggregate","per_case","extractorCommit"],"properties":{"gold_version":{"description":"Semver of the gold set the run was scored against. Free text, since the gold set is versioned outside this database, so no version is resolved or validated against a stored record.","type":"string"},"config":{"additionalProperties":true,"type":"object","required":["model","promptVersion","maxRounds","maxStepsPerAgent","runs"],"properties":{"model":{"type":"string"},"promptVersion":{"type":"string"},"maxRounds":{"type":"integer"},"maxStepsPerAgent":{"type":"integer"},"runs":{"type":"integer"}}},"runs":{"description":"Number of repeats the aggregate metrics were computed over. Always matches `config.runs`.","type":"integer"},"aggregate":{"additionalProperties":false,"type":"object","required":["item_recall","item_precision","loc_coverage","overflag_excluded","overflag_novel"],"properties":{"item_recall":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"item_precision":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"loc_coverage":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_excluded":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_novel":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]}}},"per_case":{"maxItems":1000,"type":"array","items":{"additionalProperties":false,"type":"object","required":["plugin_id","code","metrics"],"properties":{"plugin_id":{"type":"string"},"code":{"type":"string"},"metrics":{"additionalProperties":false,"type":"object","required":["item_recall","item_precision","loc_coverage","overflag_excluded","overflag_novel"],"properties":{"item_recall":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"item_precision":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"loc_coverage":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_excluded":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_novel":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]}}}}}},"extractorCommit":{"description":"Git sha of the extractor revision the run scored.","type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["enrichment-eval-run"]},"attributes":{"type":"object","required":["extractorCommit","goldVersion","model","promptVersion","config","metrics","perCase","createdAt"],"properties":{"extractorCommit":{"type":"string"},"goldVersion":{"type":"string"},"model":{"type":"string"},"promptVersion":{"type":"string"},"config":{"additionalProperties":true,"type":"object","required":["model","promptVersion","maxRounds","maxStepsPerAgent","runs"],"properties":{"model":{"type":"string"},"promptVersion":{"type":"string"},"maxRounds":{"type":"integer"},"maxStepsPerAgent":{"type":"integer"},"runs":{"type":"integer"}}},"metrics":{"additionalProperties":false,"type":"object","required":["item_recall","item_precision","loc_coverage","overflag_excluded","overflag_novel"],"properties":{"item_recall":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"item_precision":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"loc_coverage":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_excluded":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_novel":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]}}},"perCase":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["plugin_id","code","metrics"],"properties":{"plugin_id":{"type":"string"},"code":{"type":"string"},"metrics":{"additionalProperties":false,"type":"object","required":["item_recall","item_precision","loc_coverage","overflag_excluded","overflag_novel"],"properties":{"item_recall":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"item_precision":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"loc_coverage":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_excluded":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_novel":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]}}}}}},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"get":{"summary":"List enrichment eval runs","tags":["Enrichment Eval Runs"],"description":"Lists stored enrichment eval-run scorecards, newest first, optionally filtered by `extractorCommit`, `goldVersion`, and `model`.","parameters":[{"schema":{"default":"-id","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":200,"default":200,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"type":"string"},"in":"query","name":"extractorCommit","required":false},{"schema":{"type":"string"},"in":"query","name":"goldVersion","required":false},{"schema":{"type":"string"},"in":"query","name":"model","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["enrichment-eval-run"]},"attributes":{"type":"object","required":["extractorCommit","goldVersion","model","promptVersion","config","metrics","createdAt"],"properties":{"extractorCommit":{"type":"string"},"goldVersion":{"type":"string"},"model":{"type":"string"},"promptVersion":{"type":"string"},"config":{"additionalProperties":true,"type":"object","required":["model","promptVersion","maxRounds","maxStepsPerAgent","runs"],"properties":{"model":{"type":"string"},"promptVersion":{"type":"string"},"maxRounds":{"type":"integer"},"maxStepsPerAgent":{"type":"integer"},"runs":{"type":"integer"}}},"metrics":{"additionalProperties":false,"type":"object","required":["item_recall","item_precision","loc_coverage","overflag_excluded","overflag_novel"],"properties":{"item_recall":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"item_precision":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"loc_coverage":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_excluded":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_novel":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]}}},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/enrichment-eval-runs/{id}":{"get":{"summary":"Get an enrichment eval run by ID","tags":["Enrichment Eval Runs"],"description":"Gets one stored enrichment eval-run scorecard by ID, including the full `perCase` breakdown omitted from the list endpoint.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["enrichment-eval-run"]},"attributes":{"type":"object","required":["extractorCommit","goldVersion","model","promptVersion","config","metrics","perCase","createdAt"],"properties":{"extractorCommit":{"type":"string"},"goldVersion":{"type":"string"},"model":{"type":"string"},"promptVersion":{"type":"string"},"config":{"additionalProperties":true,"type":"object","required":["model","promptVersion","maxRounds","maxStepsPerAgent","runs"],"properties":{"model":{"type":"string"},"promptVersion":{"type":"string"},"maxRounds":{"type":"integer"},"maxStepsPerAgent":{"type":"integer"},"runs":{"type":"integer"}}},"metrics":{"additionalProperties":false,"type":"object","required":["item_recall","item_precision","loc_coverage","overflag_excluded","overflag_novel"],"properties":{"item_recall":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"item_precision":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"loc_coverage":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_excluded":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_novel":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]}}},"perCase":{"type":"array","items":{"additionalProperties":false,"type":"object","required":["plugin_id","code","metrics"],"properties":{"plugin_id":{"type":"string"},"code":{"type":"string"},"metrics":{"additionalProperties":false,"type":"object","required":["item_recall","item_precision","loc_coverage","overflag_excluded","overflag_novel"],"properties":{"item_recall":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"item_precision":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"loc_coverage":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_excluded":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]},"overflag_novel":{"anyOf":[{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"number"},"stddev":{"minimum":0,"type":"number"},"n":{"minimum":1,"type":"integer"}}},{"additionalProperties":false,"type":"object","required":["mean","stddev","n"],"properties":{"mean":{"type":"null"},"stddev":{"type":"null"},"n":{"type":"number","enum":[0]}}}]}}}}}},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs":{"get":{"tags":["Evals"],"description":"Lists eval runs filtered by context-fixture type, status, visibility, and creator.","parameters":[{"schema":{"default":"-createdAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"default":true,"type":"boolean"},"in":"query","name":"mineOnly","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"projectId","required":false},{"schema":{"type":"string"},"in":"query","name":"workspaceNameFilter","required":false},{"schema":{"type":"string"},"in":"query","name":"tileNameFilter","required":false},{"schema":{"anyOf":[{"type":"string","enum":["commit"]},{"type":"string","enum":["directory"]},{"type":"string","enum":["plugin"]},{"type":"string","enum":["plugin-directory"]},{"type":"string","enum":["no-context"]}]},"in":"query","name":"contextType","required":false},{"schema":{"deprecated":true,"anyOf":[{"type":"string","enum":["tile"]},{"type":"string","enum":["skill"]},{"type":"string","enum":["project"]}]},"in":"query","name":"subjectType","required":false},{"schema":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["in_progress"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"in":"query","name":"status","required":false},{"schema":{"anyOf":[{"type":"string","enum":["private"]},{"type":"string","enum":["public_view"]},{"type":"string","enum":["public_download"]}]},"in":"query","name":"visibility","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-run"]},"attributes":{"type":"object","required":["status","metadata","createdBy","label","createdAt","updatedAt","visibility","scenarioSummary"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"metadata":{"additionalProperties":true,"type":"object","properties":{"originRemoteUrl":{"type":"string"},"branchName":{"type":"string"},"commitHash":{"type":"string"},"dirty":{"type":"boolean"},"cwd":{"type":"string"},"cliInvocation":{"type":"string"},"tileName":{"type":"string"},"tileVersion":{"type":"string"},"tileSummary":{"type":"string"},"tileIsPrivate":{"type":"boolean"},"skillName":{"type":"string"},"sourceUrl":{"type":"string"},"blobSha":{"type":"string"}}},"createdBy":{"type":"object","required":["type","id","firstName","lastName"],"properties":{"type":{"anyOf":[{"type":"string","enum":["user"]},{"type":"string","enum":["api_key"]}]},"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"runCount":{"minimum":1,"type":"integer"},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"visibility":{"anyOf":[{"type":"string","enum":["private"]},{"type":"string","enum":["public_view"]},{"type":"string","enum":["public_download"]}]},"agent":{"type":"string"},"model":{"type":"string"},"scorerAgent":{"type":"string"},"scorerModel":{"type":"string"},"skipForcedContextActivation":{"type":"boolean"},"skipScoring":{"type":"boolean"},"runQualityCheck":{"type":"boolean"},"evalRunFixtures":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","required":["type","repoUrl","ref"],"properties":{"type":{"type":"string","enum":["commit"]},"repoUrl":{"type":"string"},"ref":{"type":"string"},"installPath":{"type":"string"},"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}}},{"type":"object","required":["type","path","installPath"],"properties":{"type":{"type":"string","enum":["directory"]},"path":{"type":"string"},"installPath":{"type":"string"},"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}}},{"type":"object","required":["type","name","version"],"properties":{"type":{"type":"string","enum":["plugin"]},"name":{"type":"string"},"version":{"type":"string"}}},{"type":"object","required":["type","path"],"properties":{"type":{"type":"string","enum":["plugin-directory"]},"path":{"type":"string"},"skills":{"type":"array","items":{"type":"string"}}}}]}},"scenarioSummary":{"type":"object","required":["count"],"properties":{"count":{"minimum":0,"type":"integer"},"commonBasePath":{"type":"string"}}},"credits":{"type":"number"}}},"relationships":{"type":"object","properties":{"tile":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","fullName"],"properties":{"id":{"format":"uuid","type":"string"},"fullName":{"type":"string"}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs/{id}":{"get":{"tags":["Evals"],"description":"Fetches an eval run by id, including scenarios, solutions, and progress.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-run"]},"attributes":{"type":"object","required":["status","metadata","createdBy","createdAt","updatedAt","scenarios","label","skippedCount","expectedVariants","lastScoredAt","visibility","isMember"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"metadata":{"additionalProperties":true,"type":"object","properties":{"originRemoteUrl":{"type":"string"},"branchName":{"type":"string"},"commitHash":{"type":"string"},"dirty":{"type":"boolean"},"cwd":{"type":"string"},"cliInvocation":{"type":"string"},"tileName":{"type":"string"},"tileVersion":{"type":"string"},"tileSummary":{"type":"string"},"tileIsPrivate":{"type":"boolean"},"skillName":{"type":"string"},"sourceUrl":{"type":"string"},"blobSha":{"type":"string"}}},"createdBy":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"scenarios":{"type":"array","items":{"type":"object","required":["id","fingerprint","task","rubric","createdAt","updatedAt","solutions"],"properties":{"id":{"format":"uuid","type":"string"},"fingerprint":{"pattern":"^[a-f0-9]{64}$","type":"string"},"task":{"type":"string"},"path":{"type":"string"},"shortDescription":{"type":"string"},"rubric":{"type":"object","required":["context","type","checklist"],"properties":{"context":{"minLength":1,"type":"string"},"type":{"type":"string","enum":["weighted_checklist"]},"checklist":{"minItems":1,"type":"array","items":{"type":"object","required":["name","description","max_score"],"properties":{"name":{"minLength":1,"type":"string"},"description":{"minLength":1,"type":"string"},"max_score":{"minimum":0,"type":"number"}}}}}},"qualityAssessment":{"type":"object","required":["feasibility","feasibility_notes","leakage","leakage_evidence","scenario_value","scenario_value_notes","assessed_at","model"],"properties":{"feasibility":{"anyOf":[{"type":"string","enum":["FEASIBLE"]},{"type":"string","enum":["NOT_FEASIBLE"]}]},"feasibility_notes":{"type":"string"},"leakage":{"anyOf":[{"type":"string","enum":["NO_LEAKAGE"]},{"type":"string","enum":["LOW_LEAKAGE"]},{"type":"string","enum":["MEDIUM_LEAKAGE"]},{"type":"string","enum":["HIGH_LEAKAGE"]}]},"leakage_evidence":{"type":"array","items":{"type":"object","required":["scenario_statement","criteria_rubric"],"properties":{"scenario_statement":{"type":"string"},"criteria_rubric":{"type":"string"}}}},"scenario_value":{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]}]},"scenario_value_notes":{"type":"string"},"assessed_at":{"format":"date-time","type":"string"},"model":{"type":"string"}}},"qualityFilterStatus":{"anyOf":[{"type":"string","enum":["included"]},{"type":"string","enum":["rejected"]}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"solutions":{"type":"array","items":{"type":"object","required":["id","variant","solutionTarGZS3Key","solutionMetadata","assessmentResults","assessmentMetadata","createdAt","updatedAt"],"properties":{"id":{"format":"uuid","type":"string"},"variant":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]},"solutionTarGZS3Key":{"anyOf":[{"type":"string"},{"type":"null"}]},"solutionMetadata":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"totalTimeMs":{"type":"number"},"agentDurationMs":{"type":"number"},"costUsd":{"type":"number"},"totalTurns":{"type":"integer"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheCreationTokens":{"type":"number"}}},{"type":"null"}]},"assessmentResults":{"anyOf":[{"type":"array","items":{"type":"object","required":["name","score","reasoning"],"properties":{"name":{"minLength":1,"type":"string"},"score":{"minimum":0,"type":"number"},"max_score":{"minimum":0,"type":"number"},"reasoning":{"minLength":1,"type":"string"}}}},{"type":"null"}]},"assessmentMetadata":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"runs":{"type":"array","items":{"anyOf":[{"type":"object","required":["status","solutionId","score","createdAt"],"properties":{"status":{"type":"string","enum":["completed"]},"solutionId":{"format":"uuid","type":"string"},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"totalTimeMs":{"type":"number"},"totalTurns":{"type":"number"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheCreationTokens":{"type":"number"}}},{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending"]}}}]}},"activation":{"type":"object","required":["activatedSkills"],"properties":{"activatedSkills":{"type":"array","items":{"type":"string"}},"skipped":{"type":"boolean"},"error":{"type":"boolean"}}}}}}}}},"runCount":{"minimum":1,"type":"integer"},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"skippedCount":{"type":"number"},"expectedVariants":{"type":"array","items":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"workflowId":{"type":"string"},"visibility":{"anyOf":[{"type":"string","enum":["private"]},{"type":"string","enum":["public_view"]},{"type":"string","enum":["public_download"]}]},"isMember":{"type":"boolean"},"workspaceName":{"type":"string"},"runMetadata":{"type":"array","items":{"type":"object","required":["runId"],"properties":{"runId":{"type":"string"},"metrics":{},"errorSummary":{}}}},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}},"agent":{"type":"string"},"model":{"type":"string"},"scorerAgent":{"type":"string"},"scorerModel":{"type":"string"},"skipForcedContextActivation":{"type":"boolean"},"skipScoring":{"type":"boolean"},"runQualityCheck":{"type":"boolean"},"evalRunFixtures":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","required":["type","repoUrl","ref"],"properties":{"type":{"type":"string","enum":["commit"]},"repoUrl":{"type":"string"},"ref":{"type":"string"},"installPath":{"type":"string"},"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}}},{"type":"object","required":["type","path","installPath"],"properties":{"type":{"type":"string","enum":["directory"]},"path":{"type":"string"},"installPath":{"type":"string"},"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}}},{"type":"object","required":["type","name","version"],"properties":{"type":{"type":"string","enum":["plugin"]},"name":{"type":"string"},"version":{"type":"string"}}},{"type":"object","required":["type","path"],"properties":{"type":{"type":"string","enum":["plugin-directory"]},"path":{"type":"string"},"skills":{"type":"array","items":{"type":"string"}}}}]}},"failureReason":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"relationships":{"type":"object","required":["tile"],"properties":{"tile":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","fullName"],"properties":{"id":{"format":"uuid","type":"string"},"fullName":{"type":"string"}}}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"tags":["Evals"],"description":"Updates an eval run's visibility (private, public_view, public_download).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["visibility"],"properties":{"visibility":{"anyOf":[{"type":"string","enum":["private"]},{"type":"string","enum":["public_view"]},{"type":"string","enum":["public_download"]}]}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-run"]},"attributes":{"type":"object","required":["visibility"],"properties":{"visibility":{"anyOf":[{"type":"string","enum":["private"]},{"type":"string","enum":["public_view"]},{"type":"string","enum":["public_download"]}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs/{id}/debug":{"get":{"tags":["Evals"],"description":"Returns execution metadata and recipe-run metrics for an eval run. Tessl staff only.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["evalRun","temporal","runs"],"properties":{"evalRun":{"type":"object","required":["id","workspaceId","workflowId","status","metadata","skipForcedContextActivation","skipScoring","runQualityCheck","createdBy","createdAt","updatedAt"],"properties":{"id":{"format":"uuid","type":"string"},"workspaceId":{"format":"uuid","type":"string"},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"metadata":{"type":"object","additionalProperties":{}},"skipForcedContextActivation":{"type":"boolean"},"skipScoring":{"type":"boolean"},"runQualityCheck":{"type":"boolean"},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}},"temporal":{"anyOf":[{"type":"object","required":["temporalWorkflowId","status","workflowType","taskQueue","startTime","closeTime","historyLength"],"properties":{"temporalWorkflowId":{"type":"string"},"status":{"type":"string"},"workflowType":{"type":"string"},"taskQueue":{"type":"string"},"startTime":{"anyOf":[{"type":"string"},{"type":"null"}]},"closeTime":{"anyOf":[{"type":"string"},{"type":"null"}]},"historyLength":{"type":"number"}}},{"type":"null"}]},"runs":{"type":"array","items":{"type":"object","required":["runId"],"properties":{"runId":{"type":"string"},"metrics":{},"errorSummary":{}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs/{id}/solutions/{solutionId}/files":{"get":{"tags":["Evals"],"description":"Streams the tar.gz of an eval-run solution's files.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"solutionId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/x-tar":{"schema":{}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs-v2":{"post":{"tags":["Evals"],"description":"Creates an eval run.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceName","scenarios","variants"],"properties":{"workspaceName":{"type":"string"},"scenarios":{"description":"Per-scenario tarballs and fixtures, keyed by scenario path","minProperties":1,"type":"object","additionalProperties":{"type":"object","required":["scenarioData","fixtureData"],"properties":{"scenarioData":{"type":"object","required":["uploadKey","fingerprint"],"properties":{"uploadKey":{"type":"string"},"fingerprint":{"type":"string"}}},"fixtureData":{"type":"object","additionalProperties":{"type":"object","required":["uploadKey","fingerprint"],"properties":{"uploadKey":{"type":"string"},"fingerprint":{"type":"string"}}}}}}},"evalRunFixtures":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","required":["definition","data"],"properties":{"definition":{"anyOf":[{"type":"object","required":["type","repoUrl","ref"],"properties":{"type":{"type":"string","enum":["commit"]},"repoUrl":{"type":"string"},"ref":{"type":"string"},"installPath":{"type":"string"},"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}}},{"type":"object","required":["type","path","installPath"],"properties":{"type":{"type":"string","enum":["directory"]},"path":{"type":"string"},"installPath":{"type":"string"},"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}}}},{"type":"object","required":["type","path"],"properties":{"type":{"type":"string","enum":["plugin-directory"]},"path":{"type":"string"},"skills":{"type":"array","items":{"type":"string"}}}}]},"data":{"type":"object","required":["uploadKey","fingerprint"],"properties":{"uploadKey":{"type":"string"},"fingerprint":{"type":"string"}}}}},{"type":"object","required":["definition"],"properties":{"definition":{"type":"object","required":["type","name","version"],"properties":{"type":{"type":"string","enum":["plugin"]},"name":{"type":"string"},"version":{"type":"string"}}}}}]}},"skipForcedContextActivation":{"type":"boolean"},"skipScoring":{"type":"boolean"},"variants":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]}},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"scorerAgent":{"minLength":1,"type":"string"},"scorerModel":{"minLength":1,"type":"string"},"runs":{"minimum":1,"maximum":10,"default":1,"type":"integer"},"skipSolved":{"default":false,"type":"boolean"},"runQualityCheck":{"default":false,"type":"boolean"},"label":{"maxLength":256,"type":"string"},"metadata":{"additionalProperties":true,"type":"object","properties":{"originRemoteUrl":{"type":"string"},"branchName":{"type":"string"},"commitHash":{"type":"string"},"dirty":{"type":"boolean"},"cwd":{"type":"string"},"cliInvocation":{"type":"string"},"tileName":{"type":"string"},"tileVersion":{"type":"string"},"tileSummary":{"type":"string"},"tileIsPrivate":{"type":"boolean"},"skillName":{"type":"string"},"sourceUrl":{"type":"string"},"blobSha":{"type":"string"}}},"projectLocator":{"type":"object","required":["workspaceName","projectName"],"properties":{"workspaceName":{"minLength":1,"type":"string"},"projectName":{"minLength":1,"type":"string"}}},"projectProvenance":{"type":"object","required":["sourceType","sourceUri","repoSubpath"],"properties":{"sourceType":{"minLength":1,"maxLength":64,"type":"string"},"sourceUri":{"minLength":1,"maxLength":2048,"type":"string"},"repoSubpath":{"maxLength":4096,"type":"string"}}},"encryptedEnvUpload":{"description":"Reference to an encrypted-input upload (e.g. an env-file) delivered to the solve sandbox. Must be an existing, viewable, encrypted upload.","type":"object","required":["uploadKey"],"properties":{"uploadKey":{"type":"string"}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-run"]},"attributes":{"type":"object","required":["workflowId","metadata","label","createdBy","createdAt","updatedAt"],"properties":{"workflowId":{"type":"string"},"metadata":{"additionalProperties":true,"type":"object","properties":{"originRemoteUrl":{"type":"string"},"branchName":{"type":"string"},"commitHash":{"type":"string"},"dirty":{"type":"boolean"},"cwd":{"type":"string"},"cliInvocation":{"type":"string"},"tileName":{"type":"string"},"tileVersion":{"type":"string"},"tileSummary":{"type":"string"},"tileIsPrivate":{"type":"boolean"},"skillName":{"type":"string"},"sourceUrl":{"type":"string"},"blobSha":{"type":"string"}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"},"code":{"type":"string"},"url":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs-v2:check":{"post":{"tags":["Evals"],"description":"Checks an eval run up front: validates the agent/model selection, workspace access, and the modelSelection entitlement from the selection alone, with no fixture data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceName"],"properties":{"workspaceName":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"scorerAgent":{"minLength":1,"type":"string"},"scorerModel":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["eval-run-check"]},"attributes":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean","enum":[true]}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"},"code":{"type":"string"},"url":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs/agents":{"get":{"tags":["Evals"],"description":"Lists agents and models available for eval runs, with the default selection and the local→canonical agent aliases. Tessl-only models are included only for Tessl members. Pass `workspaceId` to scope the catalogue to a workspace: a BYO org is offered its own composed model names and its configured default.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"query","name":"workspaceId","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["eval-agents"]},"attributes":{"type":"object","required":["agents","aliases","default"],"properties":{"agents":{"type":"array","items":{"type":"object","required":["name","models"],"properties":{"name":{"type":"string"},"models":{"type":"array","items":{"type":"string"}}}}},"aliases":{"type":"object","additionalProperties":{"type":"string"}},"default":{"anyOf":[{"type":"object","required":["agent","model"],"properties":{"agent":{"type":"string"},"model":{"type":"string"}}},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs/repo-results":{"get":{"tags":["Evals"],"description":"Removed — always returns 410. Use GET /eval-runs/:id instead.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"410":{"description":"Gone","content":{"application/json":{"schema":{"description":"Gone","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Gone"]},"status":{"type":"number","enum":[410]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-scenarios/generate":{"post":{"tags":["Evals","Generation"],"description":"Starts an LLM-driven eval scenario generation run for a repo commit or tile upload.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["source"],"properties":{"workspaceName":{"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"source":{"anyOf":[{"type":"object","required":["type","orgName","repoName"],"properties":{"type":{"type":"string","enum":["commit"]},"orgName":{"type":"string"},"repoName":{"type":"string"},"commit":{"minLength":7,"maxLength":82,"type":"string"},"pullRequestNumber":{"minimum":1,"type":"integer"},"contextPatterns":{"type":"array","items":{"type":"string"}},"repoArchiveUpload":{"type":"object","required":["archiveUploadKey","commitDetails","repoCloneUrl","defaultBranch","parentCommitHash"],"properties":{"archiveUploadKey":{"description":"S3 uploads key for repo archive at HEAD of default branch","type":"string"},"commitDetails":{"description":"JSON string of pre-extracted commit details","type":"string"},"repoCloneUrl":{"description":"Clone URL for fixture metadata","type":"string"},"defaultBranch":{"type":"string"},"parentCommitHash":{"description":"Parent commit hash used as the fixture ref","type":"string"}}}}},{"type":"object","required":["type","uploadsS3Key"],"properties":{"type":{"type":"string","enum":["tile-upload"]},"uploadsS3Key":{"type":"string"},"scenarioCount":{"minimum":1,"maximum":10,"type":"integer"}}}]}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"meta":{"type":"object","required":["generationId","workflowId"],"properties":{"generationId":{"format":"uuid","type":"string"},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-generation"]},"attributes":{"type":"object","required":["workflowId","source","metadata","createdBy","createdAt","updatedAt"],"properties":{"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"anyOf":[{"type":"object","required":["type","orgName","repoName"],"properties":{"type":{"type":"string","enum":["commit"]},"orgName":{"type":"string"},"repoName":{"type":"string"},"commit":{"minLength":7,"maxLength":82,"type":"string"},"pullRequestNumber":{"minimum":1,"type":"integer"},"contextPatterns":{"type":"array","items":{"type":"string"}},"repoArchiveUpload":{"type":"object","required":["archiveUploadKey","commitDetails","repoCloneUrl","defaultBranch","parentCommitHash"],"properties":{"archiveUploadKey":{"description":"S3 uploads key for repo archive at HEAD of default branch","type":"string"},"commitDetails":{"description":"JSON string of pre-extracted commit details","type":"string"},"repoCloneUrl":{"description":"Clone URL for fixture metadata","type":"string"},"defaultBranch":{"type":"string"},"parentCommitHash":{"description":"Parent commit hash used as the fixture ref","type":"string"}}}}},{"type":"object","required":["type","uploadsS3Key"],"properties":{"type":{"type":"string","enum":["tile-upload"]},"uploadsS3Key":{"type":"string"},"scenarioCount":{"minimum":1,"maximum":10,"type":"integer"}}}]},"metadata":{"type":"object","additionalProperties":{}},"createdBy":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/generation-runs":{"get":{"tags":["Generation"],"description":"Lists eval scenario generation runs (v1) with mine-only/status filters.","parameters":[{"schema":{"default":"-createdAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"default":true,"type":"boolean"},"in":"query","name":"mineOnly","required":false},{"schema":{"type":"string"},"in":"query","name":"workspaceNameFilter","required":false},{"schema":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["in_progress"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["generation-run"]},"attributes":{"type":"object","required":["status","source","metadata","data","createdBy","workspaceName","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"source":{"type":"object","additionalProperties":{}},"metadata":{"type":"object","additionalProperties":{}},"data":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["eval-scenarios"]}}},"createdBy":{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"workspaceName":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/generation-runs/{id}":{"get":{"tags":["Generation"],"description":"Use `/experimental/generation-runs-v2/{id}` instead. The v2 endpoint returns a slim per-scenario index and is the path new clients should integrate against.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["generation-run"]},"attributes":{"type":"object","required":["status","source","metadata","createdBy","workflowId","data","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"source":{"type":"object","additionalProperties":{}},"metadata":{"type":"object","additionalProperties":{}},"createdBy":{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"data":{"type":"object","required":["type","scenarios"],"properties":{"type":{"type":"string","enum":["eval-scenarios"]},"scenarios":{"type":"array","items":{"type":"object","required":["id","task","shortDescription","rubric","fixture","fixtures","createdAt","updatedAt"],"properties":{"id":{"format":"uuid","type":"string"},"task":{"type":"string"},"shortDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"rubric":{"type":"object","required":["context","type","checklist"],"properties":{"context":{"minLength":1,"type":"string"},"type":{"type":"string","enum":["weighted_checklist"]},"checklist":{"minItems":1,"type":"array","items":{"type":"object","required":["name","description","max_score"],"properties":{"name":{"minLength":1,"type":"string"},"description":{"minLength":1,"type":"string"},"max_score":{"minimum":0,"type":"number"}}}}}},"fixture":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"fixtures":{"type":"object","additionalProperties":{}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/generation-runs/{id}/download":{"get":{"tags":["Generation"],"description":"Use `/experimental/generation-runs-v2/{id}/download` instead. The v2 endpoint returns a presigned S3 URL pointing at the canonical `scenarios.tar.gz`; clients fetch and unpack it locally.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data","meta"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-scenario"]},"attributes":{"type":"object","required":["shortDescription","task","rubric","fixture","fixtures"],"properties":{"shortDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"task":{"type":"string"},"rubric":{"type":"object","required":["context","type","checklist"],"properties":{"context":{"type":"string"},"type":{"type":"string"},"checklist":{"type":"array","items":{}}}},"fixture":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"fixtures":{"type":"object","additionalProperties":{}}}}}}},"meta":{"type":"object","required":["type","count","generationRunId","status"],"properties":{"type":{"type":"string","enum":["eval-scenarios"]},"count":{"type":"number"},"generationRunId":{"format":"uuid","type":"string"},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/generation-runs-v2/{id}":{"get":{"tags":["Generation"],"description":"Fetches a generation run by id. Returns the slim per-scenario index (`name`, `shortDescription`, `checklistSize`, `warnings`); fetch `/download` for the full content.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["generation-run"]},"attributes":{"type":"object","required":["status","source","metadata","createdBy","workflowId","data","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"source":{"type":"object","additionalProperties":{}},"metadata":{"type":"object","additionalProperties":{}},"createdBy":{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"data":{"type":"object","required":["type","scenarios"],"properties":{"type":{"type":"string","enum":["eval-scenarios"]},"scenarios":{"type":"array","items":{"type":"object","required":["id","name","shortDescription","checklistSize","createdAt","updatedAt"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"shortDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"checklistSize":{"minimum":0,"type":"integer"},"warnings":{"type":"array","items":{"type":"string"}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/generation-runs-v2/{id}/download":{"get":{"tags":["Generation"],"description":"Returns a presigned URL for downloading the materialized tarball produced by a v2 generation run.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["generation-run"]},"attributes":{"type":"object","required":["presignedUrl","expiresAt"],"properties":{"presignedUrl":{"format":"uri","type":"string"},"expiresAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/eval-runs/{id}/retry":{"post":{"tags":["Evals"],"description":"Retries a failed eval run by creating a new run with the same config.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-run"]},"attributes":{"type":"object","required":["workflowId","metadata","label","createdBy","createdAt","updatedAt"],"properties":{"workflowId":{"type":"string"},"metadata":{"additionalProperties":true,"type":"object","properties":{"originRemoteUrl":{"type":"string"},"branchName":{"type":"string"},"commitHash":{"type":"string"},"dirty":{"type":"boolean"},"cwd":{"type":"string"},"cliInvocation":{"type":"string"},"tileName":{"type":"string"},"tileVersion":{"type":"string"},"tileSummary":{"type":"string"},"tileIsPrivate":{"type":"boolean"},"skillName":{"type":"string"},"sourceUrl":{"type":"string"},"blobSha":{"type":"string"}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"},"code":{"type":"string"},"url":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/agent-logs/presigned-url":{"post":{"tags":["Agent Logs"],"description":"Issues a presigned S3 URL for uploading an agent session log captured by the Tessl CLI or supported coding-agent integrations.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["provider","projectPath","sessionId","capturedAt","contentType"],"properties":{"provider":{"anyOf":[{"type":"string","enum":["claude-code"]},{"type":"string","enum":["cursor-ide"]},{"type":"string","enum":["cursor-agent"]},{"type":"string","enum":["tessl-agent"]},{"type":"string","enum":["tessl-cli"]},{"type":"string","enum":["gemini-cli"]},{"type":"string","enum":["codex-cli"]}]},"projectPath":{"type":"string"},"sessionId":{"type":"string"},"capturedAt":{"format":"date-time","type":"string"},"contentType":{"default":"application/json","type":"string"},"contentEncoding":{"type":"string"},"schemaVersion":{"type":"number"},"launchRunId":{"format":"uuid","type":"string"},"metadata":{"type":"object","properties":{"cliVersion":{"type":"string"},"platform":{"type":"string"},"arch":{"type":"string"},"osType":{"type":"string"},"osRelease":{"type":"string"},"nodeVersion":{"type":"string"},"gitRepo":{"type":"string"}}}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["presignedUrl","expiresIn"],"properties":{"presignedUrl":{"format":"uri","type":"string"},"expiresIn":{"type":"number"}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/cli-env":{"get":{"tags":["CLI"],"description":"Returns the static CLI environment: the LLM gateway base URL and telemetry credentials.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["cli-env"]},"attributes":{"type":"object","required":["envVars"],"properties":{"envVars":{"type":"object","additionalProperties":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/cli-env/config":{"get":{"tags":["CLI"],"description":"Returns static configuration: the LLM gateway base URL and telemetry credentials. No per-user secret is issued, so authentication is optional.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["cli-env"]},"attributes":{"type":"object","required":["envVars"],"properties":{"envVars":{"type":"object","additionalProperties":{"type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/implement-ticket-schema/schema.json":{"get":{"tags":["Skills"],"description":"Returns the JSON Schema for the implement-ticket skill input payload. Public and unauthenticated.","responses":{"200":{"description":"JSON Schema document","content":{"application/json":{"schema":{"description":"JSON Schema document","type":"object","additionalProperties":true}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/orgs/{orgId}/context":{"get":{"tags":["Orgs","Context"],"description":"Lists the org Context collection: the union of every accessible workspace's Context collection across the org, one family-deduplicated row per occurrence group with the workspaces it was discovered through. v1 is a union of the workspace-scoped reads; a family surfacing through several workspaces appears once with every attribution. Cursor paginated, sortable by name or -updatedAt, filterable by kind, relationship state, provider, direct source repository, and free text, and narrowable to specific workspaces with a repeatable workspaceId filter.","parameters":[{"schema":{"default":"name","anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[kind]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["published"]},{"type":"string","enum":["in-codebases"]}]},"in":"query","name":"filter[state]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[provider]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[repository]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[q]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[groupId]","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["ninety-plus"]},{"type":"string","enum":["seventy-to-eighty-nine"]},{"type":"string","enum":["below-seventy"]},{"type":"string","enum":["unscored"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["ninety-plus"]},{"type":"string","enum":["seventy-to-eighty-nine"]},{"type":"string","enum":["below-seventy"]},{"type":"string","enum":["unscored"]}]}}]},"in":"query","name":"filter[score]","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["none"]},{"type":"string","enum":["pending"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["passed"]},{"type":"string","enum":["critical"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["none"]},{"type":"string","enum":["pending"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["passed"]},{"type":"string","enum":["critical"]}]}}]},"in":"query","name":"filter[security]","required":false},{"schema":{"anyOf":[{"format":"uuid","type":"string"},{"type":"array","items":{"format":"uuid","type":"string"}}]},"in":"query","name":"workspaceId","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count","total","repositories"],"properties":{"count":{"type":"number"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}]},"repositories":{"type":"array","items":{"type":"object","required":["id","name","provider"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"provider":{"type":"string"}}}}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["org-context-row"]},"attributes":{"type":"object","required":["kind","name","description","states","canonical","locations","containment","providers","lastObservedAt","qualityScore","scores","securityFacet","workspaces"],"properties":{"kind":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"states":{"type":"object","required":["published","inCodebases"],"properties":{"published":{"type":"boolean"},"inCodebases":{"type":"boolean"}}},"canonical":{"anyOf":[{"type":"object","required":["lineageId","sourceUrl","provider","slug","owner","repo","registry","directoryName"],"properties":{"lineageId":{"type":"string"},"sourceUrl":{"type":"string"},"provider":{"type":"string"},"slug":{"type":"string"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"repo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspaceName","tileName"],"properties":{"workspaceName":{"type":"string"},"tileName":{"type":"string"}}},{"type":"null"}]},"directoryName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"locations":{"type":"object","required":["total","repositories","published"],"properties":{"total":{"type":"integer"},"repositories":{"type":"integer"},"published":{"type":"integer"}}},"containment":{"anyOf":[{"type":"object","required":["pluginLineageId","pluginName"],"properties":{"pluginLineageId":{"type":"string"},"pluginName":{"type":"string"}}},{"type":"null"}]},"providers":{"type":"array","items":{"type":"string"}},"lastObservedAt":{"format":"date-time","type":"string"},"qualityScore":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"scores":{"anyOf":[{"type":"object","required":["version","aggregate","quality","securityLevel","evalAvg","evalBaseline","evalImprovementMultiplier","evalCount","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"lastScoredAt":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"securityFacet":{"anyOf":[{"type":"string","enum":["none"]},{"type":"string","enum":["pending"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["passed"]},{"type":"string","enum":["critical"]}]},"workspaces":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/orgs/{orgId}/home-summary":{"get":{"tags":["Orgs"],"description":"Headline counts, quality distribution, security-review coverage, and trailing-window activity for the org Home dashboard, aggregated across every workspace in the org the caller can see, plus org-owned inventories that belong to no workspace. `connected` drives the blank-slate vs connected state; the quality bar and the context-health bands use a fixed 70/90 threshold in v1. `connected` is org-wide (any SCM integration or any inventory on the org) independent of workspace visibility, so it can be true even when every count below is zero because the caller cannot see the org workspaces. Scan status and all counts include org-owned inventories.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["connected","repoCount","skillCount","avgQuality","belowBarCount","qualityBar","securityFindingsCount","securityNeedsReviewCount","reviewedCount","reviewInProgressCount","openFindingsCount","criticalFindingsCount","window","newMembers","publishes","installs","contextHealth","mostInstalled","lastScannedAt","scanStatus"],"properties":{"connected":{"description":"Whether the org has any SCM integration or any inventory. When false, the counts below are all zero / null.","type":"boolean"},"repoCount":{"type":"number"},"skillCount":{"type":"number"},"avgQuality":{"anyOf":[{"description":"Mean quality (0–100) over skills with a resolvable quality score, or null when none are scored.","type":"number"},{"type":"null"}]},"belowBarCount":{"description":"Scored skills under `qualityBar`.","type":"number"},"qualityBar":{"type":"number"},"securityFindingsCount":{"description":"Skills whose latest security review flagged HIGH/CRITICAL risk.","type":"number"},"securityNeedsReviewCount":{"description":"Skills with no usable security review verdict — never reviewed or the latest review failed.","type":"number"},"reviewedCount":{"description":"Skills with a completed security review.","type":"number"},"reviewInProgressCount":{"description":"Skills with a security review still pending.","type":"number"},"openFindingsCount":{"description":"Active inventory Findings across the org, matching the org Findings feed the Home card links to.","type":"number"},"criticalFindingsCount":{"description":"Active Findings at critical priority.","type":"number"},"window":{"description":"The trailing window the activity figures below are measured over, and which their `previous` counts compare against. `installs` is the exception: it is measured over the same number of days but ends on `installsThrough`, because installs are read from a nightly snapshot that never covers today.","type":"object","required":["days","since","installsThrough"],"properties":{"days":{"type":"integer"},"since":{"format":"date","type":"string"},"installsThrough":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}]}}},"newMembers":{"description":"Org members who joined during the window, and during the equally long window before it.","type":"object","required":["current","previous"],"properties":{"current":{"type":"integer"},"previous":{"type":"integer"}}},"publishes":{"description":"Registry versions published from this org over the window. Counts plugins, not the skills inside them. `series` carries one point per day with zeros included.","type":"object","required":["total","delta","series"],"properties":{"total":{"type":"integer"},"delta":{"type":"object","required":["current","previous"],"properties":{"current":{"type":"integer"},"previous":{"type":"integer"}}},"series":{"type":"array","items":{"type":"object","required":["day","count"],"properties":{"day":{"type":"string"},"count":{"type":"integer"}}}}}},"installs":{"description":"Installs of plugins this org published, from the nightly PostHog snapshot, over the window ending `window.installsThrough`. Counts deliberate installs only — a CLI auto-sync re-install is not one. `mostInstalled` below is the same measure broken out per plugin, so its rows sum to a subset of this total. Scoped to the workspaces the caller can see, like `publishes`. Null means the snapshot has never completed a run (a fresh deployment, or a worker with no PostHog credentials); it is never a request-time failure, since this endpoint makes no PostHog call. Zero would be the wrong answer there, because it would assert nobody installed anything.","anyOf":[{"type":"object","required":["total","delta","series"],"properties":{"total":{"type":"integer"},"delta":{"type":"object","required":["current","previous"],"properties":{"current":{"type":"integer"},"previous":{"type":"integer"}}},"series":{"type":"array","items":{"type":"object","required":["day","count"],"properties":{"day":{"type":"string"},"count":{"type":"integer"}}}}}},{"type":"null"}]},"contextHealth":{"description":"The org Context collection bucketed by review quality. Read from the same context model the org Context page and the Total context figure use, over the same source scope (visible workspaces plus org-owned inventories) and the same family de-duplication, so the four bands partition that collection and `total` equals the org Context page's `meta.total` for the same caller. The bands are that page's `filter[score]` bands, so each one addresses exactly the rows the page lists when filtered to it. These totals are still scoped differently to `avgQuality` and `belowBarCount` above, which come from the per-workspace inventory summaries.","type":"object","required":["unscored","belowSeventy","seventyToEightyNine","ninetyPlus","total"],"properties":{"unscored":{"type":"integer"},"belowSeventy":{"type":"integer"},"seventyToEightyNine":{"type":"integer"},"ninetyPlus":{"type":"integer"},"total":{"type":"integer"}}},"mostInstalled":{"description":"The org's most-installed plugins over the same trailing window and from the same nightly PostHog snapshot as `installs`, ranked most-installed first. `installs` counts deliberate installs only (a CLI auto-sync re-install is not one), so this panel agrees with the installs card beside it rather than with the cumulative registry download counter. Scoped to the workspaces the caller can see, and measured over the window ending `window.installsThrough`; empty when no snapshot has ever completed or nothing was installed in the window.","type":"array","items":{"type":"object","required":["pluginName","installs"],"properties":{"pluginName":{"description":"`workspace/plugin`, as recorded at install time in the nightly snapshot.","type":"string"},"installs":{"type":"integer"}}}},"lastScannedAt":{"anyOf":[{"format":"date-time","description":"Most recent completed scan across the org's inventories, or null.","type":"string"},{"type":"null"}]},"scanStatus":{"description":"Org-wide scan state across the org's SCM accounts, so org Home can distinguish a failed or in-flight estate from a clean empty one. This is the highest-precedence status across all accounts in the org, in order: `failed` (any account has a failed scan), `running` (a scan is in flight), `ok` (at least one scan succeeded), `none` (no scans at all).","anyOf":[{"type":"string","enum":["none"]},{"type":"string","enum":["running"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["ok"]}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/orgs/{orgId}/findings":{"get":{"tags":["Orgs"],"description":"Lists the union of Findings across every skill inventory in the org the caller can see, ranked by priority (critical → low) then recency and paginated with a single stable cursor spanning the union. `filter[status]` selects the slice: `active` (default) returns Findings on their inventory’s current scan that have not been user-ignored; `ignored` returns the user-ignored Findings on that same current scan, so they can be reviewed and restored. Both slices are scoped to the current scan, so a Finding that falls off its inventory’s latest scan leaves both regardless of whether it was ignored. Each row carries its `inventoryId` and owning workspace (`workspaceId` + `workspaceName`) for drill-down; both fields are null for org-owned inventories that belong to no workspace (no workspace deep-link is available for those rows). The union can be narrowed to specific workspaces with the repeatable `workspaceId` filter. Detail of gated archetypes (drift/overlap) is withheld on plans without the advancedInventoryFindings entitlement, exactly as on the per-inventory findings endpoint.","parameters":[{"schema":{"default":"-priority","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["priority"]},{"type":"string","enum":["-priority"]}]}},{"anyOf":[{"type":"string","enum":["priority"]},{"type":"string","enum":["-priority"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"default":"active","anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["ignored"]}]},"in":"query","name":"filter[status]","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["registry-match"]},{"type":"string","enum":["overlap"]},{"type":"string","enum":["frontmatter-error"]},{"type":"string","enum":["publishable"]},{"type":"string","enum":["drift"]},{"type":"string","enum":["untracked"]},{"type":"string","enum":["skill-overload"]},{"type":"string","enum":["policy-violation"]},{"type":"string","enum":["stale-content"]},{"type":"string","enum":["outdated-copy"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["registry-match"]},{"type":"string","enum":["overlap"]},{"type":"string","enum":["frontmatter-error"]},{"type":"string","enum":["publishable"]},{"type":"string","enum":["drift"]},{"type":"string","enum":["untracked"]},{"type":"string","enum":["skill-overload"]},{"type":"string","enum":["policy-violation"]},{"type":"string","enum":["stale-content"]},{"type":"string","enum":["outdated-copy"]}]}}]},"in":"query","name":"filter[archetype]","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]}}]},"in":"query","name":"filter[priority]","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["quiet"]},{"type":"string","enum":["dormant"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["quiet"]},{"type":"string","enum":["dormant"]}]}}]},"in":"query","name":"filter[repoActivity]","required":false},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"in":"query","name":"filter[skill]","required":false},{"schema":{"anyOf":[{"format":"uuid","type":"string"},{"type":"array","items":{"format":"uuid","type":"string"}}]},"in":"query","name":"filter[id]","required":false},{"schema":{"anyOf":[{"format":"uuid","type":"string"},{"type":"array","items":{"format":"uuid","type":"string"}}]},"in":"query","name":"workspaceId","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count","total"],"properties":{"count":{"type":"number"},"total":{"type":"integer"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["skill-inventory-finding"]},"attributes":{"type":"object","required":["archetype","priority","title","description","repoActivity","status","ignoreReason","gated","logicalSkill","skillInstance","clusterMembers","instances","repoFullName","canonicalName","inventoryId","workspaceId","workspaceName","groupId"],"properties":{"archetype":{"anyOf":[{"type":"string","enum":["registry-match"]},{"type":"string","enum":["overlap"]},{"type":"string","enum":["frontmatter-error"]},{"type":"string","enum":["publishable"]},{"type":"string","enum":["drift"]},{"type":"string","enum":["untracked"]},{"type":"string","enum":["skill-overload"]},{"type":"string","enum":["policy-violation"]},{"type":"string","enum":["stale-content"]},{"type":"string","enum":["outdated-copy"]}]},"priority":{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]},"title":{"type":"string"},"description":{"type":"string"},"repoActivity":{"anyOf":[{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["quiet"]},{"type":"string","enum":["dormant"]}]},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["resolved"]},{"type":"string","enum":["ignored"]}]},"ignoreReason":{"anyOf":[{"anyOf":[{"type":"string","enum":["not-relevant"]},{"type":"string","enum":["wont-fix"]},{"type":"string","enum":["noisy"]}]},{"type":"null"}]},"gated":{"type":"boolean"},"logicalSkill":{"anyOf":[{"type":"object","required":["canonicalRepo","canonicalName","body","frontmatter","instanceCount"],"properties":{"canonicalRepo":{"type":"string"},"canonicalName":{"type":"string"},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"frontmatter":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"instanceCount":{"type":"number"}}},{"type":"null"}]},"skillInstance":{"anyOf":[{"type":"object","required":["name","path","frontmatterError","body","frontmatter","repoFullName","repoDefaultBranch","repoUrl"],"properties":{"name":{"type":"string"},"path":{"type":"string"},"frontmatterError":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"frontmatter":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"repoFullName":{"type":"string"},"repoDefaultBranch":{"type":"string"},"repoUrl":{"type":"string"}}},{"type":"null"}]},"clusterMembers":{"type":"array","items":{"type":"object","required":["canonicalRepo","canonicalName","body","frontmatter","instanceCount"],"properties":{"canonicalRepo":{"type":"string"},"canonicalName":{"type":"string"},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"frontmatter":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"instanceCount":{"type":"number"}}}},"instances":{"type":"array","items":{"type":"object","required":["id","path","kind","agents","lastModified","repoFullName","repoUrl","repoDefaultBranch"],"properties":{"id":{"format":"uuid","type":"string"},"path":{"type":"string"},"kind":{"anyOf":[{"type":"string","enum":["source"]},{"type":"string","enum":["dependency"]}]},"agents":{"type":"array","items":{"type":"string"}},"lastModified":{"anyOf":[{"type":"object","required":["date","authorLogin","authorName"],"properties":{"date":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorLogin":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"repoFullName":{"type":"string"},"repoUrl":{"type":"string"},"repoDefaultBranch":{"type":"string"}}}},"repoFullName":{"anyOf":[{"type":"string"},{"type":"null"}]},"canonicalName":{"anyOf":[{"type":"string"},{"type":"null"}]},"inventoryId":{"format":"uuid","type":"string"},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"workspaceName":{"anyOf":[{"type":"string"},{"type":"null"}]},"groupId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]}}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"},"code":{"type":"string"},"url":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/orgs/{orgId}/findings/counts-by-skill":{"get":{"tags":["Orgs"],"description":"Counts open Findings per skill canonical name across every skill inventory in the org the caller can see, for the names given in the repeatable `filter[skill]` param. Returns one row per requested name that has at least one Finding in the slice, carrying the count and the worst severity among them; a name with none is absent rather than zero. Same scan scope and Active/Ignored split as the org Findings feed, so a count here always agrees with that feed. Intended for decorating a page of Context rows: the request is bounded by the names on the page, not by the size of the org's Finding set.","parameters":[{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"in":"query","name":"filter[skill]","required":true},{"schema":{"default":"active","anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["ignored"]}]},"in":"query","name":"filter[status]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["skill-inventory-finding-count"]},"attributes":{"type":"object","required":["count","worstPriority"],"properties":{"count":{"type":"integer"},"worstPriority":{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]}}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"},"code":{"type":"string"},"url":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/orgs/{orgId}/insights":{"get":{"tags":["Orgs"],"description":"Org-wide credit usage broken down by category, workspace and user, over the requested range or the org's current billing window when none is given. Backs the org Usage page. Shape will evolve while this lives under /experimental.","parameters":[{"schema":{"format":"date-time","type":"string"},"in":"query","name":"filter[timestamp][gte]","required":false},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"filter[timestamp][lt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["org-insights"]},"attributes":{"type":"object","required":["window","credits","usageByCategory","creditsByWorkspace","spendByUser"],"properties":{"window":{"type":"object","required":["creditsSince","creditsBefore","isBillingPeriod"],"properties":{"creditsSince":{"format":"date-time","type":"string"},"creditsBefore":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"isBillingPeriod":{"type":"boolean"}}},"credits":{"anyOf":[{"type":"object","required":["state","limit","used","remaining","windowStart","resetsAt","overLimit","blocked","overageAllowed"],"properties":{"state":{"anyOf":[{"type":"string","enum":["ok"]},{"type":"string","enum":["over_budget"]}]},"limit":{"type":"number"},"used":{"type":"number"},"remaining":{"type":"number"},"windowStart":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"resetsAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"overLimit":{"type":"boolean"},"blocked":{"type":"boolean"},"overageAllowed":{"type":"boolean"}}},{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["unlimited"]}}},{"type":"object","required":["state"],"properties":{"state":{"type":"string","enum":["unavailable"]}}}]},"usageByCategory":{"type":"array","items":{"type":"object","required":["category","totalCredits"],"properties":{"category":{"anyOf":[{"type":"string","enum":["generation"]},{"type":"string","enum":["tests_reviews"]},{"type":"string","enum":["task_evaluations"]},{"type":"string","enum":["analysis"]},{"type":"string","enum":["mcp"]},{"type":"string","enum":["launch"]},{"type":"string","enum":["inference"]}]},"totalCredits":{"type":"number"}}}},"creditsByWorkspace":{"anyOf":[{"type":"object","required":["rows","other"],"properties":{"rows":{"type":"array","items":{"type":"object","required":["workspaceId","name","totalCredits"],"properties":{"workspaceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalCredits":{"type":"number"}}}},"other":{"anyOf":[{"type":"object","required":["groups","totalCredits"],"properties":{"groups":{"type":"integer"},"totalCredits":{"type":"number"}}},{"type":"null"}]}}},{"type":"null"}]},"spendByUser":{"anyOf":[{"type":"object","required":["rows","other"],"properties":{"rows":{"type":"array","items":{"type":"object","required":["userId","username","totalCredits"],"properties":{"userId":{"anyOf":[{"type":"string"},{"type":"null"}]},"username":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalCredits":{"type":"number"}}}},"other":{"anyOf":[{"type":"object","required":["groups","totalCredits"],"properties":{"groups":{"type":"integer"},"totalCredits":{"type":"number"}}},{"type":"null"}]}}},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/orgs/{orgId}/publish-policy":{"get":{"tags":["PublishPolicy"],"description":"Returns the publish policy for the organization, falling back to the default policy when no row exists. A persisted policy that no longer matches the current schema surfaces as a 500 rather than silently downgrading to the default.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["publish-policy"]},"attributes":{"type":"object","required":["policyDoc","isDefault","updatedAt"],"properties":{"policyDoc":{"additionalProperties":false,"type":"object","required":["version","rules"],"properties":{"version":{"type":"number","enum":[1]},"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToBlock"],"properties":{"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}}}}}},"isDefault":{"type":"boolean"},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"put":{"tags":["PublishPolicy"],"description":"Upserts the publish policy for the organization.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["policyDoc"],"properties":{"policyDoc":{"additionalProperties":false,"type":"object","required":["version","rules"],"properties":{"version":{"type":"number","enum":[1]},"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToBlock"],"properties":{"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}}}}}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["publish-policy"]},"attributes":{"type":"object","required":["policyDoc","isDefault","updatedAt"],"properties":{"policyDoc":{"additionalProperties":false,"type":"object","required":["version","rules"],"properties":{"version":{"type":"number","enum":[1]},"rules":{"additionalProperties":false,"type":"object","required":["securityThreshold"],"properties":{"securityThreshold":{"additionalProperties":false,"type":"object","required":["minSeverityToBlock"],"properties":{"minSeverityToBlock":{"anyOf":[{"anyOf":[{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]}}}}}}},"isDefault":{"type":"boolean"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["PublishPolicy"],"description":"Deletes the publish policy for the organization, reverting to the default policy. Idempotent.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/search":{"get":{"tags":["Search"],"description":"Hybrid keyword + vector search across tiles and skills.","parameters":[{"schema":{"minLength":1,"maxLength":500,"type":"string"},"in":"query","name":"q","required":false},{"schema":{"anyOf":[{"type":"string","enum":["text"]},{"type":"string","enum":["hybrid"]},{"type":"string","enum":["semantic"]}]},"in":"query","name":"searchMode","required":false},{"schema":{"minimum":1,"default":1,"type":"integer"},"in":"query","name":"page[number]","required":false},{"schema":{"minimum":1,"maximum":100,"default":20,"type":"integer"},"in":"query","name":"page[size]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["tile"]},{"type":"string","enum":["skill"]}]},"in":"query","name":"filter[type][eq]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["score"]},{"type":"string","enum":["-score"]},{"type":"string","enum":["aggregateScore"]},{"type":"string","enum":["-aggregateScore"]},{"type":"string","enum":["qualityScore"]},{"type":"string","enum":["-qualityScore"]},{"type":"string","enum":["impactScore"]},{"type":"string","enum":["-impactScore"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["securityLevel"]},{"type":"string","enum":["-securityLevel"]},{"type":"string","enum":["evalImprovementMultiplier"]},{"type":"string","enum":["-evalImprovementMultiplier"]}]},"in":"query","name":"sort","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][eq]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][ne]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][gt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][gte]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][lt]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][lte]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[describes][like]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][eq]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][ne]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][gt]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][gte]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][lt]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][lte]","required":false},{"schema":{"pattern":"^[a-z]+$","type":"string"},"in":"query","name":"filter[packageRegistry][like]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSkills]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSkills][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSkills][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSteering]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSteering][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasSteering][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasDocs]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasDocs][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[hasDocs][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[includePrivate]","required":false,"description":"When true, include private tiles/skills accessible to authenticated users. Defaults to true."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includePrivate][eq]","required":false,"description":"When true, include private tiles/skills accessible to authenticated users. Defaults to true."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includePrivate][ne]","required":false,"description":"When true, include private tiles/skills accessible to authenticated users. Defaults to true."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid]","required":false,"description":"When true, include skills that failed validation. Defaults to false."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid][eq]","required":false,"description":"When true, include skills that failed validation. Defaults to false."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid][ne]","required":false,"description":"When true, include skills that failed validation. Defaults to false."},{"schema":{"anyOf":[{"type":"string","enum":["versions"]},{"type":"string","enum":["tile-skills"]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["versions"]},{"type":"string","enum":["tile-skills"]}]}}]},"in":"query","name":"include","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","first","last","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"first":{"format":"uri","type":"string"},"last":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["pagination"],"properties":{"pagination":{"type":"object","required":["total","pages","number","size"],"properties":{"total":{"type":"integer"},"pages":{"type":"integer"},"number":{"type":"integer"},"size":{"type":"integer"}}}}},"data":{"type":"array","items":{"anyOf":[{"type":"object","required":["id","type","attributes","relationships"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["tile"]},"attributes":{"type":"object","required":["name","fullName","describes","featured","isPrivate","createdAt","updatedAt","scores"],"properties":{"name":{"type":"string"},"fullName":{"type":"string"},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"featured":{"type":"boolean"},"isPrivate":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"versions":{"type":"array","items":{"type":"object","required":["fingerprint","version","major","minor","patch","prerelease","summary","describes","docs","hasDocs","hasSteering","hasSkills","archived","createdAt","evalScore","evalBaselineScore","evalImprovement","evalImprovementMultiplier"],"properties":{"fingerprint":{"type":"string"},"version":{"type":"string"},"major":{"type":"number"},"minor":{"type":"number"},"patch":{"type":"number"},"prerelease":{"anyOf":[{"type":"string"},{"type":"null"}]},"summary":{"type":"string"},"describes":{"anyOf":[{"type":"string"},{"type":"null"}]},"docs":{"anyOf":[{"type":"string"},{"type":"null"}]},"hasDocs":{"type":"boolean"},"hasSteering":{"type":"boolean"},"hasSkills":{"type":"boolean"},"archived":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"evalScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalBaselineScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"integer"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"skills":{"type":"array","items":{"type":"object","required":["path","name","description"],"properties":{"path":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}},"relationships":{"type":"object","required":["workspace"],"properties":{"workspace":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["workspace"]},"attributes":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}}}}}}},{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["name","description","sourceUrl","path","isPrivate","createdAt","updatedAt","validationPassed","scores"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"sourceUrl":{"anyOf":[{"type":"string","enum":[""]},{"format":"uri","minLength":1,"type":"string"}]},"path":{"type":"string"},"isPrivate":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"versions":{"type":"array","items":{"type":"object","required":["sourceRef","name","description","createdAt"],"properties":{"sourceRef":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"createdAt":{"format":"date-time","type":"string"}}}},"validationPassed":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}]}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/search/github":{"get":{"tags":["Search"],"description":"Searches GitHub for repositories matching a query string (cached, top 5). Deprecated alias of GET /experimental/search/repos?provider=github.","parameters":[{"schema":{"minLength":1,"maxLength":200,"type":"string"},"in":"query","name":"q","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","required":["owner","repo","repoDescription","repoStars","repoUrl","defaultBranch"],"properties":{"owner":{"type":"string"},"repo":{"type":"string"},"repoDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"repoStars":{"type":"integer"},"repoUrl":{"type":"string"},"defaultBranch":{"type":"string"}}}},"meta":{"type":"object","required":["totalCount"],"properties":{"totalCount":{"type":"integer"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/search/repos":{"get":{"tags":["Search"],"description":"Searches a provider (github, gitlab) for public repositories matching a query string (cached, top 5). Providers without public repo search (e.g. bitbucket) return supported=false.","parameters":[{"schema":{"minLength":1,"maxLength":200,"type":"string"},"in":"query","name":"q","required":true},{"schema":{"anyOf":[{"type":"string","enum":["github"]},{"type":"string","enum":["gitlab"]},{"type":"string","enum":["bitbucket"]}]},"in":"query","name":"provider","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"meta":{"type":"object","required":["totalCount","supported"],"properties":{"totalCount":{"type":"integer"},"supported":{"type":"boolean"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["repo-search-result"]},"attributes":{"type":"object","required":["owner","repo","description","stars","url","defaultBranch"],"properties":{"owner":{"type":"string"},"repo":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"stars":{"type":"integer"},"url":{"type":"string"},"defaultBranch":{"type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations":{"get":{"tags":["Workspaces","Integrations"],"description":"Lists integrations (GitHub, GitLab, Linear) configured for a workspace.","parameters":[{"schema":{"default":"-updatedAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]}},{"anyOf":[{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"anyOf":[{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["github-app"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["github-app-agent"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["gitlab-token"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"anyOf":[{"type":"object","required":["scopeType","host","groupPath"],"properties":{"scopeType":{"type":"string","enum":["group"]},"host":{"type":"string"},"groupPath":{"type":"string"},"webhookId":{"type":"number"}}},{"type":"object","required":["scopeType","host","projectPath"],"properties":{"scopeType":{"type":"string","enum":["project"]},"host":{"type":"string"},"projectPath":{"type":"string"},"webhookId":{"type":"number"}}}]},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["linear"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["linearOrganizationId","agentAppUserId"],"properties":{"linearOrganizationId":{"type":"string"},"agentAppUserId":{"type":"string"},"targetRepo":{"type":"string"},"taskDelegation":{"additionalProperties":false,"type":"object","required":["entrypoint"],"properties":{"entrypoint":{"additionalProperties":false,"type":"object","required":["plugin","skill"],"properties":{"plugin":{"type":"string"},"skill":{"type":"string"}}},"delegationStateName":{"type":"string"},"environmentName":{"minLength":1,"type":"string"}}},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"linearOrganizationName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["bitbucket-cloud-oauth"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["workspaceSlug","accountId"],"properties":{"workspaceSlug":{"type":"string"},"accountId":{"type":"string"},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"workspaceName":{"type":"string"},"installedByDisplayName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["mockhub"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["seed","org","config"],"properties":{"seed":{"type":"number"},"org":{"type":"string"},"config":{"type":"object","required":["repoCount","skillRepoFraction","minSkillsPerRepo","maxSkillsPerRepo","manifestCount","minSkillSentences","maxSkillSentences","duplicateClusterFraction"],"properties":{"repoCount":{"type":"number"},"skillRepoFraction":{"type":"number"},"minSkillsPerRepo":{"type":"number"},"maxSkillsPerRepo":{"type":"number"},"manifestCount":{"type":"number"},"minSkillSentences":{"type":"number"},"maxSkillSentences":{"type":"number"},"duplicateClusterFraction":{"type":"number"}}}}},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}]}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/{integrationId}":{"delete":{"tags":["Integrations","Workspaces"],"description":"Removes an integration from a workspace.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"tags":["Integrations","Workspaces"],"description":"Updates settings on a Linear integration: the linked repository and the task delegation configuration. Each can be set independently; pass `null` to clear either. Setting the task delegation configuration fails with 403 if it is not available for the workspace.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"minProperties":1,"type":"object","properties":{"targetRepo":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"taskDelegation":{"anyOf":[{"additionalProperties":false,"type":"object","required":["entrypoint"],"properties":{"entrypoint":{"additionalProperties":false,"type":"object","required":["plugin","skill"],"properties":{"plugin":{"type":"string"},"skill":{"type":"string"}}},"delegationStateName":{"type":"string"},"environmentName":{"minLength":1,"type":"string"}}},{"type":"null"}]}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["linear"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["linearOrganizationId","agentAppUserId"],"properties":{"linearOrganizationId":{"type":"string"},"agentAppUserId":{"type":"string"},"targetRepo":{"type":"string"},"taskDelegation":{"additionalProperties":false,"type":"object","required":["entrypoint"],"properties":{"entrypoint":{"additionalProperties":false,"type":"object","required":["plugin","skill"],"properties":{"plugin":{"type":"string"},"skill":{"type":"string"}}},"delegationStateName":{"type":"string"},"environmentName":{"minLength":1,"type":"string"}}},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"linearOrganizationName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/{integrationId}/linear/metadata":{"get":{"tags":["Integrations","Workspaces"],"description":"Returns the connected Linear org's workflow states across all teams. Each state carries its name, type, and owning team, so a caller can choose a delegation state to store in the task-delegation config.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["linear-workflow-state"]},"attributes":{"type":"object","required":["name","type","teamName"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"teamName":{"type":"string"}}}}}}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/github-app":{"post":{"tags":["Integrations","Workspaces"],"description":"Completes a GitHub App OAuth handshake, attaching the installation to a workspace.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code","installationId"],"properties":{"code":{"type":"string"},"installationId":{"type":"number"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["github-app"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/github-app/request":{"post":{"tags":["Integrations","Workspaces"],"description":"Records a request to install a GitHub App for a workspace (pending org-admin approval).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code"],"properties":{"code":{"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration-request"]},"attributes":{"type":"object","required":["status","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["rejected"]}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/github-app/token":{"post":{"tags":["Integrations","Workspaces"],"description":"Mints a short-lived GitHub installation token for the workspace's Tessl Helper GitHub App installation, plus the bot identity (`appSlug`, `botUserId`, `login`, `email`) resolved via the authenticated App credentials. Naming an `owner` selects that GitHub account's installation instead of the most recently updated one, and `repositories` scopes the token to those repository names. Used by CI workflows and the CLI to act as the Tessl Helper bot without holding the private key or guessing the slug.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"owner":{"minLength":1,"maxLength":39,"description":"The GitHub account — an organization or a user — whose Tessl Helper installation mints the token. A workspace can reach the app on several accounts; without this the most recently updated installation is used, which may not be the one owning the repositories you want. Required whenever `repositories` is given.","type":"string"},"repositories":{"minItems":1,"maxItems":500,"description":"Restricts the token to these repositories. Omit for a token covering everything the installation can reach.","type":"array","items":{"minLength":1,"maxLength":100,"description":"A bare repository name, with no owner — GitHub's contract for a scoped installation token. Letters, digits, \".\", \"-\" and \"_\" only; not \".\" or \"..\" and not ending in \".git\".","type":"string"}},"permissions":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","enum":["read"]},{"type":"string","enum":["write"]}]}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["github-installation-access-token"]},"attributes":{"type":"object","required":["token","expiresAt","permissions","appSlug","botUserId","login","email"],"properties":{"token":{"type":"string"},"expiresAt":{"type":"string"},"permissions":{"type":"object","additionalProperties":{"type":"string"}},"appSlug":{"type":"string"},"botUserId":{"type":"number"},"login":{"type":"string"},"email":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/github-app-agent":{"post":{"tags":["Integrations","Workspaces"],"description":"Completes the OAuth handshake for the read-write Tessl Helper GitHub App and records a workspace-scoped Tessl Helper installation, distinct from the repository-sync GitHub integration.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code","installationId"],"properties":{"code":{"type":"string"},"installationId":{"type":"number"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["github-app-agent"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["installationId","installationTarget"],"properties":{"installationId":{"type":"number"},"installationTarget":{"type":"string"}}},"metadata":{"type":"object","required":["installedByGitHubUser","installedIntoAccountName","installedIntoAccountType"],"properties":{"installedByGitHubUser":{"type":"number"},"installedIntoAccountName":{"type":"string"},"installedIntoAccountType":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"string","enum":["enterprise"]}]}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/github-app-agent/request":{"post":{"tags":["Integrations","Workspaces"],"description":"Records a request to install the read-write Tessl Helper GitHub App for a workspace (pending org-admin approval). Distinct from the Sync `github-app` request.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["code"],"properties":{"code":{"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration-request"]},"attributes":{"type":"object","required":["status","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["rejected"]}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/gitlab-token":{"post":{"tags":["Workspaces","Integrations"],"description":"Attaches a GitLab personal/group access token as an integration to a workspace.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["accessToken"],"properties":{"accessToken":{"type":"string"},"instanceUrl":{"format":"uri","type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["gitlab-token"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"anyOf":[{"type":"object","required":["scopeType","host","groupPath","secretId"],"properties":{"scopeType":{"type":"string","enum":["group"]},"host":{"type":"string"},"groupPath":{"type":"string"},"secretId":{"type":"string"},"webhookId":{"type":"number"},"webhookSecretId":{"type":"string"}}},{"type":"object","required":["scopeType","host","projectPath","secretId"],"properties":{"scopeType":{"type":"string","enum":["project"]},"host":{"type":"string"},"projectPath":{"type":"string"},"secretId":{"type":"string"},"webhookId":{"type":"number"},"webhookSecretId":{"type":"string"}}}]},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/mockhub":{"post":{"tags":["Integrations","Workspaces"],"description":"Dev-only: instantly connects a synthetic MockHub SCM provider to a workspace (no OAuth) and kicks a first inventory scan of its seeded repos/skills. Rejected with 404 unless NODE_ENV is development, and 503 when the workflow engine could not accept the first scan.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"seed":{"type":"number"},"org":{"pattern":"^[a-z0-9-]+$","type":"string"},"config":{"type":"object","properties":{"repoCount":{"minimum":0,"type":"number"},"skillRepoFraction":{"minimum":0,"maximum":1,"type":"number"},"minSkillsPerRepo":{"minimum":0,"type":"number"},"maxSkillsPerRepo":{"minimum":0,"type":"number"},"manifestCount":{"minimum":0,"type":"number"},"minSkillSentences":{"minimum":1,"type":"number"},"maxSkillSentences":{"minimum":1,"type":"number"},"duplicateClusterFraction":{"minimum":0,"maximum":1,"type":"number"}}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes","inventoryId"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["mockhub"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["seed","org","config"],"properties":{"seed":{"type":"number"},"org":{"type":"string"},"config":{"type":"object","required":["repoCount","skillRepoFraction","minSkillsPerRepo","maxSkillsPerRepo","manifestCount","minSkillSentences","maxSkillSentences","duplicateClusterFraction"],"properties":{"repoCount":{"type":"number"},"skillRepoFraction":{"type":"number"},"minSkillsPerRepo":{"type":"number"},"maxSkillsPerRepo":{"type":"number"},"manifestCount":{"type":"number"},"minSkillSentences":{"type":"number"},"maxSkillSentences":{"type":"number"},"duplicateClusterFraction":{"type":"number"}}}}},"metadata":{"type":"object","properties":{}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}},"inventoryId":{"format":"uuid","type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"description":"Service Unavailable","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Service Unavailable"]},"status":{"type":"number","enum":[503]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/linear/authorize":{"post":{"tags":["Workspaces","Integrations"],"description":"Starts the Linear OAuth flow for the workspace by issuing a signed state and authorize URL.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"targetRepo":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["linear-oauth-authorization"]},"attributes":{"type":"object","required":["authorizationUrl","state"],"properties":{"authorizationUrl":{"format":"uri","type":"string"},"state":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/linear/callback":{"post":{"tags":["Workspaces","Integrations"],"description":"Completes the Linear OAuth handshake by exchanging the authorization code for a workspace token.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["code","state"],"properties":{"code":{"minLength":1,"type":"string"},"state":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["linear"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["linearOrganizationId","agentAppUserId"],"properties":{"linearOrganizationId":{"type":"string"},"agentAppUserId":{"type":"string"},"targetRepo":{"type":"string"}}},"metadata":{"type":"object","properties":{"linearOrganizationName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/bitbucket-cloud-oauth/authorize":{"post":{"tags":["Workspaces","Integrations"],"description":"Starts the Bitbucket Cloud OAuth flow for the workspace by issuing a signed state and authorize URL.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"returnTo":{"pattern":"^/(?![/\\\\])","maxLength":2048,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["bitbucket-cloud-oauth-authorization"]},"attributes":{"type":"object","required":["authorizationUrl","state"],"properties":{"authorizationUrl":{"format":"uri","type":"string"},"state":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/bitbucket-cloud-oauth/callback":{"post":{"tags":["Workspaces","Integrations"],"description":"Completes the Bitbucket Cloud OAuth handshake by exchanging the authorization code for an access + refresh token.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["code","state"],"properties":{"code":{"minLength":1,"type":"string"},"state":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration"]},"attributes":{"type":"object","required":["type","installedBy","connectionData","metadata","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["bitbucket-cloud-oauth"]},"installedBy":{"format":"uuid","type":"string"},"connectionData":{"type":"object","required":["workspaceSlug","accountId"],"properties":{"workspaceSlug":{"type":"string"},"accountId":{"type":"string"},"scope":{"type":"string"},"reconnectRequired":{"type":"boolean"}}},"metadata":{"type":"object","properties":{"workspaceName":{"type":"string"},"installedByDisplayName":{"type":"string"}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/requests":{"get":{"tags":["Workspaces","Integrations"],"description":"Lists pending integration requests (GitHub App, GitLab token) for a workspace.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["integration-request"]},"attributes":{"type":"object","required":["integrationType","status","metadata","integrationId","createdAt","updatedAt"],"properties":{"integrationType":{"anyOf":[{"type":"string","enum":["github-app"]},{"type":"string","enum":["gitlab-token"]}]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["rejected"]}]},"metadata":{"anyOf":[{"type":"object","required":["githubUserId","accountId","accountLogin"],"properties":{"githubUserId":{"type":"number"},"accountId":{"type":"number"},"accountLogin":{"type":"string"}}},{"type":"object","properties":{}}]},"integrationId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/integrations/requests/{requestId}":{"delete":{"tags":["Workspaces","Integrations"],"description":"Cancels a pending workspace integration request.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"requestId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/inventory":{"get":{"tags":["Workspaces"],"description":"Lists the workspace's repository inventory (tile.json files discovered via the SCM integration).","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"query","name":"integrationId","required":true},{"schema":{"type":"string"},"in":"query","name":"filter[id]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[id][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[tile]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[tile][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[tile][nlike]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[q]","required":false},{"schema":{"default":false,"type":"boolean"},"in":"query","name":"includeInventoryDetails","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["inventory-item"]},"attributes":{"anyOf":[{"type":"object","required":["name","enabled","updatedAt","url","provider","meta","tiles"],"properties":{"name":{"type":"string"},"enabled":{"type":"boolean"},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string","enum":["github"]},{"type":"string","enum":["gitlab"]},{"type":"string","enum":["bitbucket"]},{"type":"string","enum":["mockhub"]}]},"meta":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},"tiles":{"type":"array","items":{"type":"object","required":["name","version"],"properties":{"name":{"type":"string"},"version":{"type":"string"}}}}}},{"type":"object","required":["name","error"],"properties":{"name":{"type":"string"},"error":{"type":"string"}}}]}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/mcp-servers":{"get":{"tags":["Workspaces","MCP"],"description":"Lists MCP servers configured for a workspace.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["mcp-server"]},"attributes":{"type":"object","required":["authorizationServer","authState","authorized","createdAt","expiresAt","gatewayPath","name","requiresReauthorization","scope","transport","updatedAt","upstreamUrl"],"properties":{"authorizationServer":{"type":"string"},"authState":{"description":"Derived auth state. \"refreshable\" is optimistic: the token bundle exists but the gateway may still fail to refresh if the bundle lacks a refresh token.","anyOf":[{"type":"string","enum":["authorized"]},{"type":"string","enum":["refreshable"]},{"type":"string","enum":["requires_reauth"]}]},"authorized":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"expiresAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"gatewayPath":{"type":"string"},"name":{"type":"string"},"requiresReauthorization":{"type":"boolean"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"transport":{"anyOf":[{"type":"string","enum":["http"]},{"type":"string","enum":["sse"]}]},"updatedAt":{"format":"date-time","type":"string"},"upstreamUrl":{"format":"uri","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Workspaces","MCP"],"description":"Registers or updates a workspace MCP server and returns an OAuth authorization URL.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["name","transport","upstreamUrl"],"properties":{"name":{"minLength":1,"maxLength":63,"type":"string"},"oauth":{"additionalProperties":false,"type":"object","properties":{"authorizationServerUrl":{"format":"uri","type":"string"},"clientId":{"minLength":1,"type":"string"},"clientSecret":{"minLength":1,"type":"string"},"resource":{"format":"uri","type":"string"},"scope":{"minLength":1,"type":"string"}}},"transport":{"anyOf":[{"type":"string","enum":["http"]},{"type":"string","enum":["sse"]}]},"upstreamUrl":{"format":"uri","type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["mcp-server"]},"attributes":{"type":"object","required":["authorizationUrl","gatewayPath","name","transport","upstreamUrl"],"properties":{"authorizationUrl":{"format":"uri","type":"string"},"gatewayPath":{"type":"string"},"name":{"type":"string"},"transport":{"anyOf":[{"type":"string","enum":["http"]},{"type":"string","enum":["sse"]}]},"upstreamUrl":{"format":"uri","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/mcp-servers/{mcpName}":{"delete":{"tags":["Workspaces","MCP"],"description":"Deletes a workspace MCP server. The endpoint is idempotent.","parameters":[{"schema":{"minLength":1,"type":"string"},"in":"path","name":"mcpName","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/mcp-servers/{mcpName}/reauth":{"post":{"tags":["Workspaces","MCP"],"description":"Starts a fresh OAuth authorization flow for an existing workspace MCP server.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"scope":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"minLength":1,"type":"string"},"in":"path","name":"mcpName","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["mcp-server"]},"attributes":{"type":"object","required":["authorizationUrl","gatewayPath","name","transport","upstreamUrl"],"properties":{"authorizationUrl":{"format":"uri","type":"string"},"gatewayPath":{"type":"string"},"name":{"type":"string"},"transport":{"anyOf":[{"type":"string","enum":["http"]},{"type":"string","enum":["sse"]}]},"upstreamUrl":{"format":"uri","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/mcp-servers/{mcpName}/callback":{"post":{"tags":["Workspaces","MCP"],"description":"Completes an MCP OAuth callback by exchanging the authorization code for tokens.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["state"],"properties":{"code":{"minLength":1,"type":"string"},"error":{"minLength":1,"type":"string"},"errorDescription":{"minLength":1,"type":"string"},"state":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"minLength":1,"type":"string"},"in":"path","name":"mcpName","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["mcp-server"]},"attributes":{"type":"object","required":["authorized","expiresAt","name","scope","tokenType"],"properties":{"authorized":{"type":"boolean"},"expiresAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"name":{"type":"string"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenType":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/workflows/{workflowId}":{"get":{"summary":"Get workflow status (deprecated compatibility endpoint)","tags":["Workspaces"],"description":"Backwards-compatible status polling endpoint for older API clients. The `workflowId` path parameter is a string, not a UUID; `workspaceId` remains a UUID. Deprecated — new clients should poll the relevant run entity (e.g. generation-run / eval-run) instead.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"in":"path","name":"workflowId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["workflow"]},"attributes":{"type":"object","required":["status","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["in_progress"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/api-keys":{"get":{"tags":["API Keys"],"description":"Lists API keys for a workspace.","parameters":[{"schema":{"default":"-createdAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["api-key"]},"attributes":{"type":"object","required":["name","role","obfuscatedValue","lastUsedAt","createdBy","expiryDate","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"obfuscatedValue":{"type":"string"},"lastUsedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"type":"string"},"expiryDate":{"format":"date-time","type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["API Keys"],"description":"Issues a new API key scoped to a workspace and a member role.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["name","role"],"properties":{"name":{"type":"string"},"role":{"anyOf":[{"type":"string","enum":["owner"]},{"type":"string","enum":["manager"]},{"type":"string","enum":["publisher"]},{"type":"string","enum":["member"]},{"type":"string","enum":["consumer"]}]},"expiryDate":{"format":"date-time","type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["api-key"]},"attributes":{"type":"object","required":["name","value","expiryDate","createdAt"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"expiryDate":{"format":"date-time","type":"string"},"createdAt":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/api-keys/{apiKeyId}":{"delete":{"tags":["API Keys"],"description":"Revokes a workspace API key.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"apiKeyId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/skills/workspace":{"post":{"tags":["Skills","Workspaces"],"description":"Indexes one or more SKILL.md files from a GitHub repository using the workspace GitHub App installation. Supports public and private repositories.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sourceUrl","paths","sourceRef"],"properties":{"sourceUrl":{"format":"uri","type":"string"},"paths":{"minItems":1,"maxItems":10,"type":"array","items":{"minLength":1,"pattern":"^(?:[\\w.\\-]+/)*SKILL\\.md$","description":"Relative path to a SKILL.md file within the repository","type":"string"}},"sourceRef":{"minLength":1,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["registered","skipped","failed","skills","errors"],"properties":{"registered":{"type":"integer"},"skipped":{"type":"integer"},"failed":{"type":"integer"},"skills":{"type":"array","items":{"type":"object","required":["skillId","skillVersionId","path","commitSha"],"properties":{"skillId":{"type":"string"},"skillVersionId":{"type":"string"},"path":{"type":"string"},"commitSha":{"type":"string"}}}},"errors":{"type":"array","items":{"type":"object","required":["path","message"],"properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/tile-rollout":{"post":{"tags":["Workspaces","Tiles"],"description":"This endpoint has been retired.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/analyse":{"post":{"tags":["Skills"],"description":"Scans a public repository (GitHub, GitLab, or Bitbucket) at a given branch for SKILL.md files and returns a summary.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["repoUrl"],"properties":{"repoUrl":{"format":"uri","type":"string"},"branch":{"type":"string"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data","meta"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["path","name","description"],"properties":{"path":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}}}}}},"meta":{"type":"object","required":["repoUrl","branch","totalCount","unindexedCount","returnedCount","limit"],"properties":{"repoUrl":{"type":"string"},"branch":{"type":"string"},"path":{"type":"string"},"totalCount":{"type":"integer"},"unindexedCount":{"type":"integer"},"returnedCount":{"type":"integer"},"limit":{"type":"integer"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills":{"get":{"tags":["Skills"],"description":"Deprecated. Use `GET /experimental/context/lineages` (scoped to one source) or `GET /experimental/search` for cross-source discovery. `filter[search]` advertises `[like]` only; the bare and `[eq]` forms are still honoured as substring matches. `filter[sourceUrl]` advertises `[eq]` only and is matched as an exact canonicalized source. Each `id` is now a context lineage id and is not valid against `/experimental/skills/{id}` or `/experimental/skills/{id}/request-evals`.","parameters":[{"schema":{"default":"-updatedAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]},{"type":"string","enum":["relevance"]},{"type":"string","enum":["-relevance"]}]}},{"anyOf":[{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]},{"type":"string","enum":["relevance"]},{"type":"string","enum":["-relevance"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[search][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[featured][ne]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid]","required":false,"description":"When true (or ne=false), include skills whose latest review failed validation. Defaults to false. Note: ne=true excludes skills where includeInvalid is true, which is the same as the default behaviour."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid][eq]","required":false,"description":"When true (or ne=false), include skills whose latest review failed validation. Defaults to false. Note: ne=true excludes skills where includeInvalid is true, which is the same as the default behaviour."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid][ne]","required":false,"description":"When true (or ne=false), include skills whose latest review failed validation. Defaults to false. Note: ne=true excludes skills where includeInvalid is true, which is the same as the default behaviour."}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["name","description","sourceUrl","sourceRef","path","featured","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"sourceRef":{"type":"string"},"path":{"type":"string"},"featured":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"relevance":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Skills"],"description":"Indexes a standalone skill from a public source URL (GitHub, GitLab, or Bitbucket) and triggers review + security workflows.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["sourceUrl","path"],"properties":{"sourceUrl":{"format":"uri","type":"string"},"path":{"minLength":1,"pattern":"(?:^|/)SKILL\\.md$","type":"string"}}}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["name","description","sourceUrl","sourceRef","blobSha","dirTreeSha","path","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"sourceRef":{"type":"string"},"blobSha":{"type":"string"},"dirTreeSha":{"type":"string"},"path":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"204":{"description":"Default Response"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"description":"Bad Request","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Bad Request"]},"status":{"type":"number","enum":[400]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/{id}":{"get":{"tags":["Skills"],"description":"Fetches a standalone skill by id, including the SKILL.md body.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["name","description","sourceUrl","sourceRef","path","skillMdBody","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"sourceRef":{"type":"string"},"path":{"type":"string"},"skillMdBody":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/{id}/request-evals":{"post":{"tags":["Skills","Evals"],"description":"Triggers evaluations for a standalone skill.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"scenarioCount":{"minimum":1,"maximum":50,"default":3,"type":"integer"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["workflowId"],"properties":{"workflowId":{"type":"string"}}}}}}}},"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["skillVersionId","message"],"properties":{"evalRunId":{"format":"uuid","type":"string"},"skillVersionId":{"format":"uuid","type":"string"},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/{provider}/{owner}":{"get":{"tags":["Skills"],"description":"Deprecated. Use `GET /experimental/context/repos?filter[provider]=&filter[owner]=&filter[kind]=skill` (note: the context repos list is not validation-filtered, so its counts include skills that failed validation). Each `id` is a `owner/repo` string, unchanged.","parameters":[{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid]","required":false,"description":"When true, include skills whose latest review failed validation in the per-repo counts and name lists. Defaults to false, matching the legacy route."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid][eq]","required":false,"description":"When true, include skills whose latest review failed validation in the per-repo counts and name lists. Defaults to false, matching the legacy route."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid][ne]","required":false,"description":"When true, include skills whose latest review failed validation in the per-repo counts and name lists. Defaults to false, matching the legacy route."},{"schema":{"type":"string"},"in":"path","name":"provider","required":true},{"schema":{"type":"string"},"in":"path","name":"owner","required":true}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["skill-repo"]},"attributes":{"type":"object","required":["repoName","skillNames","skillCount","updatedAt"],"properties":{"repoName":{"type":"string"},"skillNames":{"type":"array","items":{"type":"string"}},"skillCount":{"type":"number"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/{provider}/{owner}/{repo}":{"get":{"tags":["Skills"],"description":"Deprecated. Use `GET /experimental/context/lineages?filter[provider]=&filter[owner]=&filter[repo]=&filter[kind]=skill`. Each `id` is now a context lineage id and is not valid against `/experimental/skills/{id}` or `/experimental/skills/{id}/request-evals`.","parameters":[{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid]","required":false,"description":"When true, include skills whose latest review failed validation. Defaults to false."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid][eq]","required":false,"description":"When true, include skills whose latest review failed validation. Defaults to false."},{"schema":{"type":"boolean"},"in":"query","name":"filter[includeInvalid][ne]","required":false,"description":"When true, include skills whose latest review failed validation. Defaults to false."},{"schema":{"type":"string"},"in":"path","name":"provider","required":true},{"schema":{"type":"string"},"in":"path","name":"owner","required":true},{"schema":{"type":"string"},"in":"path","name":"repo","required":true}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["name","description","sourceUrl","sourceRef","path","isPrivate","createdAt","updatedAt","reviewScore","scores"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"sourceRef":{"type":"string"},"path":{"type":"string"},"isPrivate":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"reviewScore":{"anyOf":[{"type":"number"},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/{provider}/{owner}/{repo}/{skillName}":{"get":{"tags":["Skills"],"description":"Deprecated. Use `GET /experimental/context/lineages/resolve` followed by `GET /experimental/context/lineages/{lineageId}`. `tileFullName` and `workspaceId` are always null in this response, and security findings no longer carry the optional `located` enrichment (Snyk finding-location deep links). The returned `id` is a context lineage id and is not valid against `/experimental/skills/{id}` or `/experimental/skills/{id}/request-evals`.","parameters":[{"schema":{"type":"string"},"in":"path","name":"provider","required":true},{"schema":{"type":"string"},"in":"path","name":"owner","required":true},{"schema":{"type":"string"},"in":"path","name":"repo","required":true},{"schema":{"type":"string"},"in":"path","name":"skillName","required":true}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["name","description","sourceUrl","sourceRef","path","isPrivate","workspaceId","skillMdBody","createdAt","updatedAt","tileFullName","reviewResults","reviewScore","scores","securityStatus","securityRiskLevel","securityLevel","securitySummary","securityUpdatedAt","securityFindings","securityOverrideMessage"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"sourceUrl":{"format":"uri","type":"string"},"sourceRef":{"type":"string"},"path":{"type":"string"},"isPrivate":{"type":"boolean"},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"skillMdBody":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"tileFullName":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewResults":{"anyOf":[{"type":"object","properties":{"validation":{"type":"object","required":["checks","overallPassed","errorCount","warningCount"],"properties":{"skillName":{"type":"string"},"skillDescription":{"type":"string"},"checks":{"type":"array","items":{"type":"object","required":["name","status","message"],"properties":{"name":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["passed"]},{"type":"string","enum":["warning"]},{"type":"string","enum":["error"]}]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"array","items":{"type":"string"}}]}}}}},"overallPassed":{"type":"boolean"},"errorCount":{"type":"number"},"warningCount":{"type":"number"}}},"judges":{"type":"object","additionalProperties":{"type":"object","required":["success","scale"],"properties":{"success":{"type":"boolean"},"errorMessage":{"type":"string"},"scale":{"type":"object","required":["min","max"],"properties":{"min":{"type":"number"},"max":{"type":"number"}}},"evaluation":{"type":"object","required":["scores","overall_assessment","suggestions"],"properties":{"scores":{"type":"object","additionalProperties":{"type":"object","required":["score","reasoning"],"properties":{"score":{"type":"number"},"reasoning":{"type":"string"}}}},"overall_assessment":{"type":"string"},"suggestions":{"type":"array","items":{"type":"string"}},"validation_skipped":{"type":"boolean"}}},"weightedScore":{"type":"number"},"normalizedScore":{"type":"number"}}}},"scoring":{"type":"object","required":["components"],"properties":{"components":{"type":"array","items":{"type":"object","required":["id","weight","normalized"],"properties":{"id":{"type":"string"},"weight":{"type":"number"},"normalized":{"anyOf":[{"type":"number"},{"type":"null"}]}}}}}}}},{"type":"null"}]},"reviewScore":{"anyOf":[{"type":"number"},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","securityLevel","evalAvg","evalBaseline","evalImprovement","evalImprovementMultiplier","evalCount","validationErrors","lastScoredAt"],"properties":{"version":{"type":"string"},"aggregate":{"anyOf":[{"type":"number"},{"type":"null"}]},"quality":{"anyOf":[{"type":"number"},{"type":"null"}]},"impact":{"anyOf":[{"type":"number"},{"type":"null"}]},"security":{"deprecated":true,"description":"Deprecated legacy Snyk overall grade. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"evalAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalBaseline":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovement":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalImprovementMultiplier":{"anyOf":[{"type":"number"},{"type":"null"}]},"evalCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"validationErrors":{"type":"array","items":{"type":"string"}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"securityStatus":{"anyOf":[{"anyOf":[{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},{"type":"null"}]},"securityRiskLevel":{"deprecated":true,"description":"Deprecated legacy Snyk risk level. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securitySummary":{"anyOf":[{"type":"string"},{"type":"null"}]},"securityUpdatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"securityFindings":{"type":"array","items":{"type":"object","required":["severity","severityLevel","code","title","reasoning","issueDescription"],"properties":{"severity":{"deprecated":true,"description":"Deprecated legacy Snyk per-finding severity. Use `severityLevel` instead.","anyOf":[{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"severityLevel":{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"located":{"type":"object","required":["sourceUrl","sourceRef","sourcePath","items"],"properties":{"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourcePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["kind","value","locations"],"properties":{"kind":{"type":"string"},"value":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"line":{"type":"number"},"snippet":{"type":"string"}}}},"rationale":{"type":"string"}}}}}}}}},"securityOverrideMessage":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/{provider}/{owner}/{repo}/{skillName}/eval-suite":{"get":{"tags":["Skills","Evals"],"description":"Deprecated. Use `GET /experimental/context/lineages/resolve` to resolve the lineage id, then `GET /experimental/context/lineages/{lineageId}/eval-suite`. The `id` field is the resolved context lineage id, not a skill-version id.","parameters":[{"schema":{"type":"string"},"in":"path","name":"provider","required":true},{"schema":{"type":"string"},"in":"path","name":"owner","required":true},{"schema":{"type":"string"},"in":"path","name":"repo","required":true},{"schema":{"type":"string"},"in":"path","name":"skillName","required":true}],"deprecated":true,"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["eval-suite"]},"attributes":{"type":"object","required":["status","scenarios","expectedVariants","lastScoredAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"scenarios":{"type":"array","items":{"type":"object","required":["id","fingerprint","task","rubric","createdAt","updatedAt","solutions"],"properties":{"id":{"format":"uuid","type":"string"},"fingerprint":{"pattern":"^[a-f0-9]{64}$","type":"string"},"task":{"type":"string"},"path":{"type":"string"},"shortDescription":{"type":"string"},"rubric":{"type":"object","required":["context","type","checklist"],"properties":{"context":{"minLength":1,"type":"string"},"type":{"type":"string","enum":["weighted_checklist"]},"checklist":{"minItems":1,"type":"array","items":{"type":"object","required":["name","description","max_score"],"properties":{"name":{"minLength":1,"type":"string"},"description":{"minLength":1,"type":"string"},"max_score":{"minimum":0,"type":"number"}}}}}},"qualityAssessment":{"type":"object","required":["feasibility","feasibility_notes","leakage","leakage_evidence","scenario_value","scenario_value_notes","assessed_at","model"],"properties":{"feasibility":{"anyOf":[{"type":"string","enum":["FEASIBLE"]},{"type":"string","enum":["NOT_FEASIBLE"]}]},"feasibility_notes":{"type":"string"},"leakage":{"anyOf":[{"type":"string","enum":["NO_LEAKAGE"]},{"type":"string","enum":["LOW_LEAKAGE"]},{"type":"string","enum":["MEDIUM_LEAKAGE"]},{"type":"string","enum":["HIGH_LEAKAGE"]}]},"leakage_evidence":{"type":"array","items":{"type":"object","required":["scenario_statement","criteria_rubric"],"properties":{"scenario_statement":{"type":"string"},"criteria_rubric":{"type":"string"}}}},"scenario_value":{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]}]},"scenario_value_notes":{"type":"string"},"assessed_at":{"format":"date-time","type":"string"},"model":{"type":"string"}}},"qualityFilterStatus":{"anyOf":[{"type":"string","enum":["included"]},{"type":"string","enum":["rejected"]}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"solutions":{"type":"array","items":{"type":"object","required":["id","variant","solutionTarGZS3Key","solutionMetadata","assessmentResults","assessmentMetadata","createdAt","updatedAt"],"properties":{"id":{"format":"uuid","type":"string"},"variant":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]},"solutionTarGZS3Key":{"anyOf":[{"type":"string"},{"type":"null"}]},"solutionMetadata":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"totalTimeMs":{"type":"number"},"agentDurationMs":{"type":"number"},"costUsd":{"type":"number"},"totalTurns":{"type":"integer"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheCreationTokens":{"type":"number"}}},{"type":"null"}]},"assessmentResults":{"anyOf":[{"type":"array","items":{"type":"object","required":["name","score","reasoning"],"properties":{"name":{"minLength":1,"type":"string"},"score":{"minimum":0,"type":"number"},"max_score":{"minimum":0,"type":"number"},"reasoning":{"minLength":1,"type":"string"}}}},{"type":"null"}]},"assessmentMetadata":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"runs":{"type":"array","items":{"anyOf":[{"type":"object","required":["status","solutionId","score","createdAt"],"properties":{"status":{"type":"string","enum":["completed"]},"solutionId":{"format":"uuid","type":"string"},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"totalTimeMs":{"type":"number"},"totalTurns":{"type":"number"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheCreationTokens":{"type":"number"}}},{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending"]}}}]}},"activation":{"type":"object","required":["activatedSkills"],"properties":{"activatedSkills":{"type":"array","items":{"type":"string"}},"skipped":{"type":"boolean"},"error":{"type":"boolean"}}}}}}}}},"expectedVariants":{"type":"array","items":{"anyOf":[{"type":"string","enum":["baseline"]},{"type":"string","enum":["usage-spec"]}]}},"lastScoredAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skill-inventories":{"post":{"tags":["SkillInventory"],"description":"Upload of a skill inventory scan from the CLI.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["version","workspaceId","org","scannedAt","repos"],"properties":{"version":{"minLength":1,"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"org":{"minLength":1,"type":"string"},"scannedAt":{"format":"date-time","type":"string"},"cliVersion":{"type":"string"},"stats":{"additionalProperties":true,"type":"object","properties":{"reposScanned":{"type":"number"},"apiCalls":{"type":"number"}}},"repos":{"type":"array","items":{"type":"object","required":["name","fullName","url","topics","visibility","defaultBranch","skills"],"properties":{"name":{"type":"string"},"fullName":{"type":"string"},"url":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"topics":{"type":"array","items":{"type":"string"}},"visibility":{"anyOf":[{"type":"string","enum":["public"]},{"type":"string","enum":["private"]},{"type":"string","enum":["internal"]}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}]},"defaultBranch":{"type":"string"},"pushedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"skills":{"type":"array","items":{"anyOf":[{"type":"object","required":["path","body"],"properties":{"path":{"type":"string"},"body":{"type":"string"},"agents":{"type":"array","items":{"type":"string"}},"lastModified":{}}},{"type":"object","required":["path","name"],"properties":{"path":{"type":"string"},"name":{"type":"string"},"depSource":{"anyOf":[{"type":"string"},{"type":"null"}]},"version":{"anyOf":[{"type":"string"},{"type":"null"}]},"agents":{"type":"array","items":{"type":"string"}}}}]}},"manifests":{"type":"array","items":{"type":"object","required":["path","type"],"properties":{"path":{"type":"string"},"type":{"anyOf":[{"type":"string","enum":["skills-lock"]},{"type":"string","enum":["tessl-deps"]},{"type":"string","enum":["tile"]},{"type":"string","enum":["tessl-plugin"]},{"type":"string","enum":["claude-plugin"]},{"type":"string","enum":["claude-marketplace"]},{"type":"string","enum":["claude-settings"]},{"type":"string","enum":["unknown"]}]},"content":{}}}},"truncated":{"type":"boolean"}}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["inventoryId","scanIndex","kind"],"properties":{"inventoryId":{"format":"uuid","type":"string"},"scanIndex":{"type":"number"},"kind":{"anyOf":[{"type":"string","enum":["first-scan-authed"]},{"type":"string","enum":["re-scan"]}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/improve":{"post":{"tags":["Skills"],"description":"Iteratively improves a SKILL.md via LLM passes guided by the review pipeline; returns the diff and revised content.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"minLength":1,"maxLength":100000,"type":"string"},"model":{"minLength":1,"description":"Model override to use for the improve passes instead of the default model","type":"string"},"max-iterations":{"minimum":1,"maximum":10,"default":3,"description":"Maximum number of improve iterations (1-10, default 3)","type":"integer"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["originalContent","improvedContent","diff","reviewSummary","summaryOfChanges","originalScore","finalScore","iterations","credits"],"properties":{"originalContent":{"type":"string"},"improvedContent":{"type":"string"},"diff":{"type":"string"},"reviewSummary":{"type":"string"},"summaryOfChanges":{"type":"string"},"originalScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"finalScore":{"anyOf":[{"type":"integer"},{"type":"null"}]},"iterations":{"type":"integer"},"credits":{"description":"Credits charged for this improvement (0 if nothing was billed).","type":"number"}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/review":{"post":{"tags":["Skills"],"description":"Runs the LLM skill-review pipeline against a SKILL.md content string and returns scored validation results.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"minLength":1,"type":"string"},"model":{"minLength":1,"description":"Model override to use for the review instead of the default model","type":"string"},"files":{"description":"Optional bundle files (relative path -> UTF-8 content) that accompany SKILL.md.","type":"object","additionalProperties":{"type":"string"}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["review","validation","credits"],"properties":{"review":{"type":"object","required":["reviewScore"],"properties":{"reviewScore":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]}}},"validation":{"type":"object","required":["checks","overallPassed","errorCount","warningCount"],"properties":{"skillName":{"type":"string"},"skillDescription":{"type":"string"},"checks":{"type":"array","items":{"type":"object","required":["name","status","message"],"properties":{"name":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["passed"]},{"type":"string","enum":["warning"]},{"type":"string","enum":["error"]}]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{}}}}},"overallPassed":{"type":"boolean"},"errorCount":{"type":"number"},"warningCount":{"type":"number"}}},"descriptionJudge":{"type":"object","required":["success","scale"],"properties":{"success":{"type":"boolean"},"errorMessage":{"type":"string"},"evaluation":{"type":"object","required":["scores","overall_assessment","suggestions"],"properties":{"scores":{"type":"object","additionalProperties":{"type":"object","required":["score","reasoning"],"properties":{"score":{"type":"number"},"reasoning":{"type":"string"}}}},"overall_assessment":{"type":"string"},"suggestions":{"type":"array","items":{"type":"string"}},"validation_skipped":{"type":"boolean"}}},"weightedScore":{"type":"number"},"scale":{"type":"object","required":["min","max"],"properties":{"min":{"type":"number"},"max":{"type":"number"}}},"normalizedScore":{"type":"number"}}},"contentJudge":{"type":"object","required":["success","scale"],"properties":{"success":{"type":"boolean"},"errorMessage":{"type":"string"},"evaluation":{"type":"object","required":["scores","overall_assessment","suggestions"],"properties":{"scores":{"type":"object","additionalProperties":{"type":"object","required":["score","reasoning"],"properties":{"score":{"type":"number"},"reasoning":{"type":"string"}}}},"overall_assessment":{"type":"string"},"suggestions":{"type":"array","items":{"type":"string"}},"validation_skipped":{"type":"boolean"}}},"weightedScore":{"type":"number"},"scale":{"type":"object","required":["min","max"],"properties":{"min":{"type":"number"},"max":{"type":"number"}}},"normalizedScore":{"type":"number"}}},"credits":{"description":"Credits charged for this review (0 if nothing was billed).","type":"number"}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/review-runs":{"post":{"tags":["Review Runs"],"description":"Creates a new review run and starts processing it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["uploadKey","metadata","workspaceId"],"properties":{"uploadKey":{"type":"string"},"metadata":{"type":"object","required":["tier"],"properties":{"tier":{"type":"string","enum":["authed_free"]},"pathLabel":{"type":"string"},"source":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]}}},"config":{"type":"object","properties":{"agent":{"type":"string"},"model":{"type":"string"}}},"workspaceId":{"format":"uuid","type":"string"},"force":{"type":"boolean"},"pluginRef":{"minLength":1,"description":"Registry reference to a custom review plugin (workspace/plugin[@version]).","type":"string"},"pluginUploadKey":{"minLength":1,"description":"S3 upload key of a locally-packed review plugin tarball.","type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["review-run"]},"attributes":{"type":"object","required":["workflowId","status","metadata","createdAt","updatedAt"],"properties":{"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"pathLabel":{"type":"string"},"source":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]},"reusedFromReviewRunId":{"format":"uuid","type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"get":{"tags":["Review Runs"],"description":"Lists review runs, optionally filtered by workspace.","parameters":[{"schema":{"default":"-createdAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"workspaceId","required":false},{"schema":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["review-run"]},"attributes":{"type":"object","required":["status","workflowId","workspaceId","createdBy","score","results","metadata","config","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"score":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"results":{"anyOf":[{},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"pathLabel":{"type":"string"},"source":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]},"reusedFromReviewRunId":{"format":"uuid","type":"string"}}},"config":{"additionalProperties":true,"type":"object","required":["agent","model"],"properties":{"agent":{"type":"string"},"model":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/review-runs/{id}":{"get":{"tags":["Review Runs"],"description":"Gets a review run by ID, including optional progress when pending.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["review-run"]},"attributes":{"type":"object","required":["status","workflowId","workspaceId","createdBy","score","results","metadata","config","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"score":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"results":{"anyOf":[{},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"pathLabel":{"type":"string"},"source":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]},"reusedFromReviewRunId":{"format":"uuid","type":"string"}}},"config":{"additionalProperties":true,"type":"object","required":["agent","model"],"properties":{"agent":{"type":"string"},"model":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/review-runs/{id}/retry":{"post":{"tags":["Review Runs"],"description":"Deprecated — use `POST /experimental/reviews/{id}/retry` instead. Retries a failed review run by creating a new run with the same config.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"deprecated":true,"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["review-run"]},"attributes":{"type":"object","required":["workflowId","status","metadata","createdAt","updatedAt"],"properties":{"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"pathLabel":{"type":"string"},"source":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]},"reusedFromReviewRunId":{"format":"uuid","type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/security-review-runs":{"post":{"tags":["Security Review Runs"],"description":"Creates a new security review run and starts processing it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["uploadKey","workspaceId"],"properties":{"uploadKey":{"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"label":{"type":"string"},"force":{"type":"boolean"},"metadata":{"type":"object","properties":{"subject":{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["security-review-run"]},"attributes":{"type":"object","required":["workflowId","status","createdAt","updatedAt"],"properties":{"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/security-review-runs/{id}":{"get":{"tags":["Security Review Runs"],"description":"Gets a security review run by ID.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["security-review-run"]},"attributes":{"type":"object","required":["status","workflowId","workspaceId","createdBy","overallSeverity","securityLevel","results","metadata","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"format":"uuid","type":"string"},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"overallSeverity":{"deprecated":true,"description":"Deprecated legacy Snyk overall severity. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"results":{"anyOf":[{"type":"object","required":["verdict","overallSeverity","securityLevel","findings"],"properties":{"verdict":{"anyOf":[{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]}]},"overallSeverity":{"deprecated":true,"description":"Deprecated legacy Snyk overall severity. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","severityLevel","code","title","reasoning","issueDescription"],"properties":{"severity":{"deprecated":true,"description":"Deprecated legacy Snyk per-finding severity. Use `severityLevel` instead.","anyOf":[{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"severityLevel":{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"located":{"type":"object","required":["sourceUrl","sourceRef","sourcePath","items"],"properties":{"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourcePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["kind","value","locations"],"properties":{"kind":{"type":"string"},"value":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"line":{"type":"number"},"snippet":{"type":"string"}}}},"rationale":{"type":"string"}}}}}}}}}}},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"subject":{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}},"source":{"type":"string"},"label":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/security/enrichment":{"post":{"summary":"Trigger finding enrichment for a skill","tags":["Finding Enrichment"],"description":"Starts finding enrichment for a skill named by `skillId`, `skillVersionId`, `tileVersionSkillId`, or explicit `source` coordinates. Findings default to those from the skill's latest security review; pass `findings` to enrich an explicit set instead. Returns the run handle to poll. Returns 422 when the findings derived from the skill's latest review are not enrichable (an explicit `findings` payload bypasses this check). Returns 409 when another run is already in progress for the same skill content — only enforced for `skillId`/`skillVersionId`/`tileVersionSkillId` targets, which resolve to a content fingerprint; concurrent `source`-coordinate requests have no fingerprint to guard on and are not deduplicated.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","properties":{"skillId":{"format":"uuid","type":"string"},"skillVersionId":{"format":"uuid","type":"string"},"tileVersionSkillId":{"format":"uuid","type":"string"},"source":{"additionalProperties":false,"type":"object","required":["sourceUrl","sourceRef"],"properties":{"sourceUrl":{"type":"string"},"sourceRef":{"type":"string"},"path":{"type":"string"},"workspaceId":{"format":"uuid","type":"string"}}},"findings":{"maxItems":200,"type":"array","items":{"type":"object","required":["code","reason"],"properties":{"code":{"description":"Finding code, e.g. W007 / W011 / W012.","maxLength":64,"type":"string"},"reason":{"description":"The scanner's one-line reason.","maxLength":2000,"type":"string"}}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["finding-enrichment"]},"attributes":{"type":"object","required":["status"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"description":"Unprocessable Entity","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unprocessable Entity"]},"status":{"type":"number","enum":[422]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/security/enrichment/{correlationId}":{"get":{"summary":"View a finding-enrichment run","tags":["Finding Enrichment"],"description":"Returns the enrichment run addressed by `correlationId`: its status, located items with assessments, telemetry, feedback, and error.","parameters":[{"schema":{"type":"string"},"in":"path","name":"correlationId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["finding-enrichment"]},"attributes":{"type":"object","required":["status","findings","items","telemetry","feedback","error","approved","stopReason"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"findings":{"anyOf":[{"type":"array","items":{"type":"object","required":["code","reason"],"properties":{"code":{"description":"Finding code, e.g. W007 / W011 / W012.","maxLength":64,"type":"string"},"reason":{"description":"The scanner's one-line reason.","maxLength":2000,"type":"string"}}}},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["value","kind","locations"],"properties":{"code":{"type":"string"},"value":{"type":"string"},"kind":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"line":{"type":"number"},"snippet":{"type":"string"}}}},"rationale":{"type":"string"},"assessment":{"type":"object","required":["verdict","justification"],"properties":{"verdict":{"type":"string"},"justification":{"type":"string"}}}}}},"telemetry":{"type":"object","properties":{"tokens":{"type":"object","required":["prompt","completion","total","cacheRead","cacheWrite"],"properties":{"prompt":{"type":"number"},"completion":{"type":"number"},"total":{"type":"number"},"cacheRead":{"type":"number"},"cacheWrite":{"type":"number"}}},"turns":{"type":"number"},"rounds":{"type":"number"},"costUsd":{"type":"number"},"costMissingTurns":{"type":"number"},"toolCalls":{"type":"number"},"wallMs":{"type":"number"}}},"feedback":{"anyOf":[{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"type":"object","required":["category","message"],"properties":{"category":{"type":"string"},"message":{"type":"string"},"suggestion":{"type":"string"}}}}}},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"approved":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"stopReason":{"anyOf":[{"anyOf":[{"type":"string","enum":["approved"]},{"type":"string","enum":["aborted"]},{"type":"string","enum":["finder_no_submit"]},{"type":"string","enum":["finder_step_capped"]},{"type":"string","enum":["reviewer_no_verdict"]},{"type":"string","enum":["round_cap"]},{"type":"string","enum":["spend_cap"]}]},{"type":"null"}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/reviews":{"get":{"tags":["Reviews"],"description":"Lists review runs, both quality and security, each tagged with its kind, newest first.","parameters":[{"schema":{"minimum":1,"maximum":100,"default":100,"type":"integer"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][eq]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"in":"query","name":"filter[status]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"in":"query","name":"filter[status][eq]","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["review"]},"attributes":{"anyOf":[{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","score","results","metadata","config","createdAt","updatedAt"],"properties":{"kind":{"type":"string","enum":["quality"]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"score":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"results":{"anyOf":[{},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"pathLabel":{"type":"string"},"source":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]},"reusedFromReviewRunId":{"format":"uuid","type":"string"}}},"config":{"additionalProperties":true,"type":"object","required":["agent","model"],"properties":{"agent":{"type":"string"},"model":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}},"credits":{"type":"number"}}},{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","overallSeverity","securityLevel","results","metadata","createdAt","updatedAt"],"properties":{"kind":{"type":"string","enum":["security"]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"format":"uuid","type":"string"},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"overallSeverity":{"deprecated":true,"description":"Deprecated legacy Snyk overall severity. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"results":{"anyOf":[{"type":"object","required":["verdict","overallSeverity","securityLevel","findings"],"properties":{"verdict":{"anyOf":[{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]}]},"overallSeverity":{"deprecated":true,"description":"Deprecated legacy Snyk overall severity. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","severityLevel","code","title","reasoning","issueDescription"],"properties":{"severity":{"deprecated":true,"description":"Deprecated legacy Snyk per-finding severity. Use `severityLevel` instead.","anyOf":[{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"severityLevel":{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"located":{"type":"object","required":["sourceUrl","sourceRef","sourcePath","items"],"properties":{"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourcePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["kind","value","locations"],"properties":{"kind":{"type":"string"},"value":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"line":{"type":"number"},"snippet":{"type":"string"}}}},"rationale":{"type":"string"}}}}}}}}}}},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"subject":{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}},"source":{"type":"string"},"label":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"credits":{"type":"number"}}}]}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/reviews/{id}":{"get":{"tags":["Reviews"],"description":"Gets a review run by ID. Resolves either a quality or a security review run.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["review"]},"attributes":{"anyOf":[{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","score","results","metadata","config","createdAt","updatedAt"],"properties":{"kind":{"type":"string","enum":["quality"]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"score":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"results":{"anyOf":[{},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"pathLabel":{"type":"string"},"source":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]},"reusedFromReviewRunId":{"format":"uuid","type":"string"}}},"config":{"additionalProperties":true,"type":"object","required":["agent","model"],"properties":{"agent":{"type":"string"},"model":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}},"credits":{"type":"number"}}},{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","overallSeverity","securityLevel","results","metadata","createdAt","updatedAt"],"properties":{"kind":{"type":"string","enum":["security"]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"format":"uuid","type":"string"},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"overallSeverity":{"deprecated":true,"description":"Deprecated legacy Snyk overall severity. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"results":{"anyOf":[{"type":"object","required":["verdict","overallSeverity","securityLevel","findings"],"properties":{"verdict":{"anyOf":[{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]}]},"overallSeverity":{"deprecated":true,"description":"Deprecated legacy Snyk overall severity. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","severityLevel","code","title","reasoning","issueDescription"],"properties":{"severity":{"deprecated":true,"description":"Deprecated legacy Snyk per-finding severity. Use `severityLevel` instead.","anyOf":[{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"severityLevel":{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"located":{"type":"object","required":["sourceUrl","sourceRef","sourcePath","items"],"properties":{"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourcePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["kind","value","locations"],"properties":{"kind":{"type":"string"},"value":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"line":{"type":"number"},"snippet":{"type":"string"}}}},"rationale":{"type":"string"}}}}}}}}}}},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"subject":{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}},"source":{"type":"string"},"label":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"credits":{"type":"number"}}}]}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/reviews/{id}/retry":{"post":{"tags":["Reviews"],"description":"Retries a failed review run, resolving its kind and routing to that kind’s retry logic. Returns the newly created run as a kind-tagged review.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["review"]},"attributes":{"anyOf":[{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","score","results","metadata","config","createdAt","updatedAt"],"properties":{"kind":{"type":"string","enum":["quality"]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"score":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"results":{"anyOf":[{},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"pathLabel":{"type":"string"},"source":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]},"reusedFromReviewRunId":{"format":"uuid","type":"string"}}},"config":{"additionalProperties":true,"type":"object","required":["agent","model"],"properties":{"agent":{"type":"string"},"model":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}},"credits":{"type":"number"}}},{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","overallSeverity","securityLevel","results","metadata","createdAt","updatedAt"],"properties":{"kind":{"type":"string","enum":["security"]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"format":"uuid","type":"string"},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"overallSeverity":{"deprecated":true,"description":"Deprecated legacy Snyk overall severity. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"results":{"anyOf":[{"type":"object","required":["verdict","overallSeverity","securityLevel","findings"],"properties":{"verdict":{"anyOf":[{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]}]},"overallSeverity":{"deprecated":true,"description":"Deprecated legacy Snyk overall severity. Use `securityLevel` instead.","anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"securityLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"type":"null"}]},"findings":{"type":"array","items":{"type":"object","required":["severity","severityLevel","code","title","reasoning","issueDescription"],"properties":{"severity":{"deprecated":true,"description":"Deprecated legacy Snyk per-finding severity. Use `severityLevel` instead.","anyOf":[{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"severityLevel":{"anyOf":[{"type":"string","enum":["NONE"]},{"type":"string","enum":["CRITICAL"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["LOW"]}]},"code":{"type":"string"},"title":{"type":"string"},"reasoning":{"type":"string"},"issueDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"located":{"type":"object","required":["sourceUrl","sourceRef","sourcePath","items"],"properties":{"sourceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourcePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","required":["kind","value","locations"],"properties":{"kind":{"type":"string"},"value":{"type":"string"},"locations":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"line":{"type":"number"},"snippet":{"type":"string"}}}},"rationale":{"type":"string"}}}}}}}}}}},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","required":["tier"],"properties":{"tier":{"anyOf":[{"type":"string","enum":["anonymous"]},{"type":"string","enum":["authed_free"]}]},"subject":{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}},"source":{"type":"string"},"label":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"credits":{"type":"number"}}}]}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/fix-runs":{"post":{"tags":["Fix Runs"],"description":"Creates a new fix run, which iteratively improves and reviews the target until it passes or the iteration limit is reached.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["uploadKey","workspaceId"],"properties":{"uploadKey":{"minLength":1,"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"threshold":{"minimum":0,"maximum":100,"default":90,"description":"Stop iterating once a review scores at or above this value (0–100).","type":"number"},"maxIterations":{"minimum":1,"maximum":10,"default":3,"description":"Maximum improve→review iterations to attempt.","type":"integer"},"agent":{"type":"string"},"model":{"type":"string"},"subject":{"anyOf":[{"type":"object","required":["type","name","path","tileRef","registryUrl"],"properties":{"type":{"type":"string","enum":["tile_skill"]},"name":{"type":"string"},"path":{"type":"string"},"tileRef":{"type":"string"},"registryUrl":{"type":"string"}}},{"type":"object","required":["type","name"],"properties":{"type":{"type":"string","enum":["skill"]},"name":{"type":"string"},"path":{"type":"string"}}}]},"pluginRef":{"minLength":1,"description":"Registry reference to a custom review plugin (workspace/plugin[@version]).","type":"string"},"pluginUploadKey":{"minLength":1,"description":"S3 upload key of a locally-packed review plugin tarball.","type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["fix-run"]},"attributes":{"type":"object","required":["status","workflowId","config","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"type":"object","required":["threshold","maxIterations","agent","model"],"properties":{"threshold":{"type":"number"},"maxIterations":{"type":"integer"},"agent":{"type":"string"},"model":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/fix-runs/{id}":{"get":{"tags":["Fix Runs"],"description":"Gets a fix run by ID, including baseline and final scores, the applied summary of changes, and progress while pending.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["fix-run"]},"attributes":{"type":"object","required":["status","workflowId","workspaceId","createdBy","config","baselineScore","finalScore","summaryOfChanges","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"config":{"type":"object","required":["threshold","maxIterations","agent","model"],"properties":{"threshold":{"type":"number"},"maxIterations":{"type":"integer"},"agent":{"type":"string"},"model":{"type":"string"}}},"baselineScore":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"finalScore":{"anyOf":[{"minimum":0,"maximum":100,"type":"integer"},{"type":"null"}]},"summaryOfChanges":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/fix-runs/{id}/cancel":{"post":{"tags":["Fix Runs"],"description":"Requests cancellation of a fix run so in-flight work stops. Idempotent – a no-op for a run that has already finished.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["fix-run"]},"attributes":{"type":"object","required":["status"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/fix-runs/{id}/bundle":{"get":{"tags":["Fix Runs"],"description":"Returns a presigned URL for downloading the applied fix bundle produced by a fix run.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["fix-run"]},"attributes":{"type":"object","required":["presignedUrl","expiresAt"],"properties":{"presignedUrl":{"format":"uri","type":"string"},"expiresAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/launch-runs":{"post":{"tags":["Launch Runs"],"description":"Creates a launch run and starts processing it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceName","skill","repo"],"properties":{"workspaceName":{"minLength":1,"type":"string"},"skill":{"minLength":1,"description":"The plugin to install and the skill to run. A value without a `file:` prefix means a registry ref (either a full `workspace/plugin[@version]` or a bare `plugin[@version]` name resolved across the workspaces the caller can see); a value with a `file:` prefix means a local plugin path inside the cloned repo (e.g. file:apps/cli/plugins/agent-enablement). Either form may carry a trailing `#skill` selector (e.g. `workspace/plugin@1.0.0#implement-ticket` or `file:apps/cli/plugins/agent-enablement#implement-ticket`) that installs the whole plugin and launches the one named skill; it is required when the plugin exposes more than one skill. This is a wire convention: the value is stored verbatim and interpreted downstream by the launch recipe.","type":"string"},"repo":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"snapshot":{"minLength":1,"description":"Commit SHA or tag pinning the repo snapshot for this run. Pins the checked-out repository, not the sandbox runtime image. Use `sandboxSnapshot` for the latter.","type":"string"},"sandboxSnapshot":{"minLength":1,"description":"Operational override selecting the sandbox runtime image the launch run is created from. Distinct from `snapshot`, which pins the checked-out repository. When omitted the run falls back to the configured default.","type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}],"description":"Selects the sandbox image family the run is created from (`base` for the standard recipe-runner image, `dev` for the Docker-capable variant). Resolved server-side to a concrete snapshot name — callers pick a capability set, not an internal image id. Mutually exclusive with `sandboxSnapshot`; providing both is a 400."},"workdir":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"encryptedEnvUpload":{"description":"Reference to an encrypted-input upload (e.g. an env-file) delivered to the launch sandbox. Must be an existing, viewable, encrypted upload. Mutually exclusive with `environmentId`.","type":"object","required":["uploadKey"],"properties":{"uploadKey":{"minLength":1,"type":"string"}}},"environmentId":{"format":"uuid","description":"Id of a workspace environment whose sealed `.env` payload is opened server-side at launch and delivered to the sandbox. Must belong to the launch workspace. A live reference resolved when each run starts, so environment edits affect subsequently started and resumed runs and a deleted environment fails the launch.","type":"string"},"uploads":{"description":"Additional upload keys (context archives, config tarballs) keyed by a caller-defined logical name. Each must be an existing, viewable upload.","type":"object","additionalProperties":{"minLength":1,"type":"string"}},"inputs":{"description":"Skill-specific inputs forwarded to the launched skill, keyed by the skill's own placeholder names (e.g. ISSUE_IDENTIFIER, ISSUE_TITLE, ISSUE_DESCRIPTION).","type":"object","additionalProperties":{"type":"string"}},"instructions":{"description":"Free-text instructions appended to the skill prompt the launch agent runs, mirroring the local `--instructions` flag. Distinct from the structured `inputs` channel.","type":"string"},"mcpServers":{"description":"Names of workspace-registered MCP proxies to wire into the launched agent. Each name must resolve to an existing `mcp_server_credential` in the launch workspace that is either fully authorized or refreshable (has a stored token that can be renewed). Requires the `mcp-gateway` feature; naming an unknown or unauthorized server is a 400.","type":"array","items":{"minLength":1,"type":"string"}},"label":{"maxLength":256,"type":"string"},"metadata":{"type":"object","additionalProperties":{}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run"]},"attributes":{"type":"object","required":["workflowId","status","label","createdBy","createdAt"],"properties":{"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"get":{"tags":["Launch Runs"],"description":"Lists launch runs in the workspaces the caller can view, newest-first.","parameters":[{"schema":{"default":"-id","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"workspaceId","required":false},{"schema":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run"]},"attributes":{"type":"object","required":["status","config","label","workspace","createdBy","createdAt","updatedAt","progressUpdatedAt","hasResult"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"config":{"type":"object","required":["skillRef","repoUrl","agent","model","triggerSource"],"properties":{"skillRef":{"type":"string"},"repoUrl":{"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"triggerSource":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["api"]},{"type":"string","enum":["webhook"]},{"type":"string","enum":["scheduled"]}]},"mcpServers":{"type":"array","items":{"minLength":1,"type":"string"}}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspace":{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progressUpdatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"liveness":{"type":"object","required":["phase","updatedAt"],"properties":{"phase":{"anyOf":[{"type":"string","enum":["queued"]},{"type":"string","enum":["starting"]},{"type":"string","enum":["preparing"]},{"type":"string","enum":["running"]},{"type":"string","enum":["recovering"]},{"type":"string","enum":["retrying"]},{"type":"string","enum":["finalizing"]}]},"message":{"maxLength":256,"type":"string"},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"failureReason":{"type":"object","required":["code"],"properties":{"code":{"type":"string"}}},"outcome":{"type":"object","required":["status"],"properties":{"status":{"description":"Coarse outcome: whether the skill changed anything. `succeeded` — the skill did its work; `no-action` — the skill ran but made no change; `failed` — the skill tried and could not complete. This is NOT derivable from the launch run's own status; the skill governs its domain-specific outcome via `output`.","anyOf":[{"type":"string","enum":["succeeded"]},{"type":"string","enum":["no-action"]},{"type":"string","enum":["failed"]}]},"reason":{"maxLength":1024,"type":"string"}}},"summary":{"type":"string"},"pr":{"type":"object","required":["url"],"properties":{"url":{"type":"string"},"number":{"type":"number"}}},"hasResult":{"type":"boolean"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/launch-runs/{id}/resume":{"post":{"tags":["Launch Runs"],"description":"Resumes a completed launch run: creates a new child run with the parent run’s workspace restored, so the launch agent continues its prior session.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"instructions":{"description":"Free-text instructions for the resumed run. Overrides the parent run’s instructions when supplied; omitted keeps the parent’s.","type":"string"},"label":{"maxLength":256,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run"]},"attributes":{"type":"object","required":["workflowId","status","label","createdBy","createdAt"],"properties":{"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"description":"Conflict","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Conflict"]},"status":{"type":"number","enum":[409]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/launch-runs/{id}/cancel":{"post":{"tags":["Launch Runs"],"description":"Requests cancellation of a launch run, stopping its in-flight work. Idempotent: a no-op for a run that has already finished.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run"]},"attributes":{"type":"object","required":["status"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/schedules":{"post":{"tags":["Schedules"],"description":"Creates a schedule that fires a launch run on a cron. The launch config is either copied from an existing launch run (`fromLaunchRunId`) or given inline (`skill`, `repo`, …); provide exactly one.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["workspaceName","cron"],"properties":{"workspaceName":{"minLength":1,"type":"string"},"cron":{"minLength":1,"description":"Cron expression the schedule fires on, interpreted in `timezone`. Rejected if unparseable or if its tightest interval is under the minimum allowed.","type":"string"},"timezone":{"minLength":1,"description":"IANA timezone the cron is interpreted in (e.g. `America/New_York`). Defaults to `UTC`.","type":"string"},"fromLaunchRunId":{"format":"uuid","description":"Id of an existing launch run whose stored config this schedule copies. Mutually exclusive with the inline launch spec; provide exactly one. The caller must be able to `view` the launch run's workspace.","type":"string"},"label":{"maxLength":256,"type":"string"},"description":{"maxLength":4096,"type":"string"},"metadata":{"type":"object","additionalProperties":{}},"skill":{"minLength":1,"description":"The plugin to install and the skill to run. A value without a `file:` prefix means a registry ref (either a full `workspace/plugin[@version]` or a bare `plugin[@version]` name resolved across the workspaces the caller can see); a value with a `file:` prefix means a local plugin path inside the cloned repo (e.g. file:apps/cli/plugins/agent-enablement). Either form may carry a trailing `#skill` selector (e.g. `workspace/plugin@1.0.0#implement-ticket` or `file:apps/cli/plugins/agent-enablement#implement-ticket`) that installs the whole plugin and launches the one named skill; it is required when the plugin exposes more than one skill. This is a wire convention: the value is stored verbatim and interpreted downstream by the launch recipe.","type":"string"},"repo":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"snapshot":{"minLength":1,"description":"Commit SHA or tag pinning the repo snapshot for this run. Pins the checked-out repository, not the sandbox runtime image. Use `sandboxSnapshot` for the latter.","type":"string"},"sandboxSnapshot":{"minLength":1,"description":"Operational override selecting the sandbox runtime image the launch run is created from. Distinct from `snapshot`, which pins the checked-out repository. When omitted the run falls back to the configured default.","type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}],"description":"Selects the sandbox image family the run is created from (`base` for the standard recipe-runner image, `dev` for the Docker-capable variant). Resolved server-side to a concrete snapshot name — callers pick a capability set, not an internal image id. Mutually exclusive with `sandboxSnapshot`; providing both is a 400."},"workdir":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"inputs":{"description":"Skill-specific inputs forwarded to the launched skill, keyed by the skill's own placeholder names (e.g. ISSUE_IDENTIFIER, ISSUE_TITLE, ISSUE_DESCRIPTION).","type":"object","additionalProperties":{"type":"string"}},"instructions":{"description":"Free-text instructions appended to the skill prompt the launch agent runs, mirroring the local `--instructions` flag. Distinct from the structured `inputs` channel.","type":"string"},"environmentId":{"format":"uuid","description":"Id of a workspace environment whose sealed `.env` payload is opened server-side at each run. Must belong to the schedule workspace. Resolved live when each run fires, so environment edits take effect on subsequent runs and a deleted environment fails the launch.","type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["schedule"]},"attributes":{"type":"object","required":["status","cron","timezone","label","description","createdBy","createdAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["paused"]}]},"cron":{"type":"string"},"timezone":{"type":"string"},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"get":{"tags":["Schedules"],"description":"Lists schedules in the workspaces the caller can view, newest-first.","parameters":[{"schema":{"default":"-id","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"workspaceId","required":false},{"schema":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["paused"]}]},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["schedule"]},"attributes":{"type":"object","required":["status","cron","timezone","config","label","description","workspace","createdBy","nextRunAt","lastRunAt","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["paused"]}]},"cron":{"type":"string"},"timezone":{"type":"string"},"config":{"type":"object","required":["skillRef","repoUrl","baseBranch"],"properties":{"skillRef":{"type":"string"},"repoUrl":{"type":"string"},"baseBranch":{"type":"string"}}},"resolvedSkill":{"type":"object","required":["kind","name","registry","path","description"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["registry"]},{"type":"string","enum":["local"]}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspace","tile","version"],"properties":{"workspace":{"type":"string"},"tile":{"type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"path":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspace":{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"nextRunAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastRunAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastRun":{"type":"object","required":["id","status","updatedAt"],"properties":{"id":{"format":"uuid","type":"string"},"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"outcome":{"type":"object","required":["status"],"properties":{"status":{"description":"Coarse outcome: whether the skill changed anything. `succeeded` — the skill did its work; `no-action` — the skill ran but made no change; `failed` — the skill tried and could not complete. This is NOT derivable from the launch run's own status; the skill governs its domain-specific outcome via `output`.","anyOf":[{"type":"string","enum":["succeeded"]},{"type":"string","enum":["no-action"]},{"type":"string","enum":["failed"]}]},"reason":{"maxLength":1024,"type":"string"}}},"updatedAt":{"format":"date-time","type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/schedules/{id}":{"get":{"tags":["Schedules"],"description":"Gets a schedule by ID, including its full launch config, cron, timezone, status, and next/last run times.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["schedule"]},"attributes":{"type":"object","required":["status","cron","timezone","config","label","description","metadata","workspaceId","createdBy","environment","nextRunAt","lastRunAt","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["paused"]}]},"cron":{"type":"string"},"timezone":{"type":"string"},"config":{"type":"object","required":["skillRef","repoUrl","baseBranch","agent","model","triggerSource"],"properties":{"skillRef":{"type":"string"},"repoUrl":{"type":"string"},"baseBranch":{"type":"string"},"snapshot":{"type":"string"},"sandboxSnapshot":{"type":"string"},"workdir":{"minLength":1,"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"triggerSource":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["api"]},{"type":"string","enum":["webhook"]},{"type":"string","enum":["scheduled"]}]},"mcpServers":{"type":"array","items":{"minLength":1,"type":"string"}}}},"resolvedSkill":{"type":"object","required":["kind","name","registry","path","description"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["registry"]},{"type":"string","enum":["local"]}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspace","tile","version"],"properties":{"workspace":{"type":"string"},"tile":{"type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"path":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"type":"object","additionalProperties":{}},"workspaceId":{"format":"uuid","type":"string"},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"environment":{"anyOf":[{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}},{"type":"null"}]},"nextRunAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastRunAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"patch":{"tags":["Schedules"],"description":"Pauses/resumes a schedule (`status`) and/or updates its `cron`, `timezone`, or `label`. Cron and timezone changes apply to the next scheduled occurrence; status and label changes apply immediately.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["paused"]}]},"cron":{"minLength":1,"description":"New cron expression the schedule fires on, interpreted in `timezone`. Rejected if unparseable or if its tightest interval is under the minimum allowed.","type":"string"},"timezone":{"minLength":1,"description":"New IANA timezone the cron is interpreted in. When supplied without `cron`, re-interprets the existing cron in the new zone.","type":"string"},"label":{"maxLength":256,"type":"string"},"description":{"maxLength":4096,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["schedule"]},"attributes":{"type":"object","required":["status","cron","timezone","config","label","description","metadata","workspaceId","createdBy","environment","nextRunAt","lastRunAt","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["paused"]}]},"cron":{"type":"string"},"timezone":{"type":"string"},"config":{"type":"object","required":["skillRef","repoUrl","baseBranch","agent","model","triggerSource"],"properties":{"skillRef":{"type":"string"},"repoUrl":{"type":"string"},"baseBranch":{"type":"string"},"snapshot":{"type":"string"},"sandboxSnapshot":{"type":"string"},"workdir":{"minLength":1,"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"triggerSource":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["api"]},{"type":"string","enum":["webhook"]},{"type":"string","enum":["scheduled"]}]},"mcpServers":{"type":"array","items":{"minLength":1,"type":"string"}}}},"resolvedSkill":{"type":"object","required":["kind","name","registry","path","description"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["registry"]},{"type":"string","enum":["local"]}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"registry":{"anyOf":[{"type":"object","required":["workspace","tile","version"],"properties":{"workspace":{"type":"string"},"tile":{"type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"path":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"type":"object","additionalProperties":{}},"workspaceId":{"format":"uuid","type":"string"},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"environment":{"anyOf":[{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}},{"type":"null"}]},"nextRunAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastRunAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Schedules"],"description":"Deletes a schedule. No further runs are scheduled after deletion.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/schedules/{id}/runs":{"get":{"tags":["Schedules"],"description":"Lists the launch runs a schedule has spawned, newest-first.","parameters":[{"schema":{"default":"-id","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run"]},"attributes":{"type":"object","required":["status","config","label","workspace","createdBy","createdAt","updatedAt","progressUpdatedAt","hasResult"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"config":{"type":"object","required":["skillRef","repoUrl","agent","model","triggerSource"],"properties":{"skillRef":{"type":"string"},"repoUrl":{"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"triggerSource":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["api"]},{"type":"string","enum":["webhook"]},{"type":"string","enum":["scheduled"]}]},"mcpServers":{"type":"array","items":{"minLength":1,"type":"string"}}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspace":{"type":"object","required":["id","name"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}}},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progressUpdatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"liveness":{"type":"object","required":["phase","updatedAt"],"properties":{"phase":{"anyOf":[{"type":"string","enum":["queued"]},{"type":"string","enum":["starting"]},{"type":"string","enum":["preparing"]},{"type":"string","enum":["running"]},{"type":"string","enum":["recovering"]},{"type":"string","enum":["retrying"]},{"type":"string","enum":["finalizing"]}]},"message":{"maxLength":256,"type":"string"},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"failureReason":{"type":"object","required":["code"],"properties":{"code":{"type":"string"}}},"outcome":{"type":"object","required":["status"],"properties":{"status":{"description":"Coarse outcome: whether the skill changed anything. `succeeded` — the skill did its work; `no-action` — the skill ran but made no change; `failed` — the skill tried and could not complete. This is NOT derivable from the launch run's own status; the skill governs its domain-specific outcome via `output`.","anyOf":[{"type":"string","enum":["succeeded"]},{"type":"string","enum":["no-action"]},{"type":"string","enum":["failed"]}]},"reason":{"maxLength":1024,"type":"string"}}},"summary":{"type":"string"},"pr":{"type":"object","required":["url"],"properties":{"url":{"type":"string"},"number":{"type":"number"}}},"hasResult":{"type":"boolean"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/schedules/{id}/trigger":{"post":{"tags":["Schedules"],"description":"Fires a schedule now, out of band, in addition to its cron fires. The launch run is created asynchronously.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"202":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["schedule"]},"attributes":{"type":"object","required":["status"],"properties":{"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["paused"]}]}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/launch-runs/{id}":{"get":{"tags":["Launch Runs"],"description":"Gets a launch run by ID, including progress while pending and a failure reason when failed.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run"]},"attributes":{"type":"object","required":["status","workflowId","workspaceId","createdBy","config","label","metadata","createdAt","updatedAt","progressUpdatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]},{"type":"string","enum":["cancelled"]}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workspaceId":{"format":"uuid","type":"string"},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"config":{"type":"object","required":["skillRef","repoUrl","baseBranch","agent","model","triggerSource"],"properties":{"skillRef":{"type":"string"},"repoUrl":{"type":"string"},"baseBranch":{"type":"string"},"snapshot":{"type":"string"},"sandboxSnapshot":{"type":"string"},"workdir":{"minLength":1,"type":"string"},"agent":{"type":"string"},"model":{"type":"string"},"triggerSource":{"anyOf":[{"type":"string","enum":["manual"]},{"type":"string","enum":["api"]},{"type":"string","enum":["webhook"]},{"type":"string","enum":["scheduled"]}]},"mcpServers":{"type":"array","items":{"minLength":1,"type":"string"}}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"type":"object","additionalProperties":{}},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"progressUpdatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"liveness":{"type":"object","required":["phase","updatedAt"],"properties":{"phase":{"anyOf":[{"type":"string","enum":["queued"]},{"type":"string","enum":["starting"]},{"type":"string","enum":["preparing"]},{"type":"string","enum":["running"]},{"type":"string","enum":["recovering"]},{"type":"string","enum":["retrying"]},{"type":"string","enum":["finalizing"]}]},"message":{"maxLength":256,"type":"string"},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}},"progress":{"type":"object","required":["queue","recipes"],"properties":{"queue":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["queued"]},{"type":"string","enum":["active"]},{"type":"string","enum":["finishing"]}]},"recipes":{"type":"array","items":{"type":"object","required":["name","waiting","running","completed"],"properties":{"name":{"type":"string"},"waiting":{"minimum":0,"type":"integer"},"running":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"}}}},"summary":{"type":"object","required":["label","completed","failed"],"properties":{"label":{"type":"string"},"total":{"minimum":0,"type":"integer"},"completed":{"minimum":0,"type":"integer"},"failed":{"minimum":0,"type":"integer"}}},"units":{"type":"array","items":{"type":"object","required":["name","percent","waiting"],"properties":{"name":{"type":"string"},"percent":{"minimum":0,"maximum":100,"type":"integer"},"waiting":{"type":"boolean"}}}}}},"sandboxId":{"type":"string"},"phase":{"anyOf":[{"type":"string","enum":["preparing"]},{"type":"string","enum":["waiting_for_capacity"]},{"type":"string","enum":["starting"]},{"type":"string","enum":["recipe_running"]},{"type":"string","enum":["finishing"]}]},"failureReason":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"string"},"failedTaskNames":{"type":"array","items":{"type":"string"}}}},"outcome":{"type":"object","required":["status"],"properties":{"status":{"description":"Coarse outcome: whether the skill changed anything. `succeeded` — the skill did its work; `no-action` — the skill ran but made no change; `failed` — the skill tried and could not complete. This is NOT derivable from the launch run's own status; the skill governs its domain-specific outcome via `output`.","anyOf":[{"type":"string","enum":["succeeded"]},{"type":"string","enum":["no-action"]},{"type":"string","enum":["failed"]}]},"reason":{"maxLength":1024,"type":"string"}}},"result":{"type":"object","additionalProperties":{}},"outputSchema":{"type":"object","additionalProperties":{}},"inputSchema":{"type":"object","additionalProperties":{}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/launch-runs/{id}/artifact":{"get":{"tags":["Launch Runs"],"description":"Returns a presigned URL for downloading the diagnostic workspace archive a launch run execution retained. Every execution retains an archive, success or failure alike. Requires workspace-admin permission because the archive is a raw workspace snapshot that can contain secrets a recipe or agent wrote. Pass `attempt` to download a specific execution’s archive (see the per-execution list at `/launch-runs/:id/executions`); omit it for the latest execution.","parameters":[{"schema":{"minimum":1,"type":"integer"},"in":"query","name":"attempt","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run"]},"attributes":{"type":"object","required":["presignedUrl","expiresAt"],"properties":{"presignedUrl":{"format":"uri","type":"string"},"expiresAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/launch-runs/{id}/executions":{"get":{"tags":["Launch Runs"],"description":"Lists every recorded execution of a launch run's workflow — oldest-first — with each attempt's outcome, timestamps, and diagnostic summary/details. A cumulative launch bill spans retries, so this surfaces why earlier cold executions failed rather than only the newest transcript. For a caller with workspace-admin permission, a failed execution is flagged `artifactAvailable`; download its archive from `/launch-runs/:id/artifact?attempt={attempt}`. Returns an empty list when no execution has recorded metrics yet.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run-execution"]},"attributes":{"type":"object","required":["attempt","status","exitCode","totalDurationMs","createdAt"],"properties":{"attempt":{"type":"integer"},"status":{"type":"string"},"exitCode":{"type":"integer"},"totalDurationMs":{"anyOf":[{"type":"integer"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"diagnosticSummary":{"anyOf":[{"type":"string"},{"type":"null"}]},"diagnosticDetails":{"anyOf":[{"type":"string"},{"type":"null"}]},"artifactAvailable":{"type":"boolean"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/launch-runs/{id}/logs":{"get":{"tags":["Launch Runs"],"description":"Returns the raw provider JSONL transcript for a launch run's agent logs. Serves the most recently captured session as a single transcript; `204 No Content` means no session has been uploaded (or its upload has not completed) yet.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/x-ndjson":{"schema":{}}}},"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/environments":{"post":{"tags":["Environments"],"description":"Creates a named, workspace-scoped environment. The supplied `.env` payload is validated, sealed under the workspace key, and never returned by any read path.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceName","name"],"properties":{"workspaceName":{"minLength":1,"type":"string"},"name":{"minLength":1,"type":"string"},"envFile":{"minLength":1,"description":"Raw `.env` file contents (`KEY=VALUE` per line). Blank lines and `#` comments are ignored. Mutually exclusive with `entries`.","type":"string"},"entries":{"description":"Environment variables as a `KEY=VALUE` map. Mutually exclusive with `envFile`.","type":"object","additionalProperties":{"type":"string"}},"metadata":{"additionalProperties":false,"type":"object","properties":{"description":{"type":"string"},"mcpServerNames":{"maxItems":20,"description":"Names of workspace-registered MCP proxies to configure on this environment. Each must name an MCP server already registered and authorized in this workspace. Requires the `mcp-gateway` feature; naming an unknown or unauthorized server is a 400.","type":"array","items":{"minLength":1,"type":"string"}}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["environment"]},"attributes":{"type":"object","required":["name","workspaceId","metadata","keyNames","emptyKeyNames","mcpServerNames","createdBy","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"description":{"type":"string"},"envVariableNames":{"type":"array","items":{"type":"string"}},"emptyKeyNames":{"type":"array","items":{"type":"string"}},"mcpServerNames":{"type":"array","items":{"type":"string"}}}},{"type":"null"}]},"keyNames":{"type":"array","items":{"type":"string"}},"emptyKeyNames":{"type":"array","items":{"type":"string"}},"mcpServerNames":{"type":"array","items":{"type":"string"}},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"get":{"tags":["Environments"],"description":"Lists environments in the workspaces the caller can view, newest-first. Never returns the sealed values — only names, metadata, and declared key names.","parameters":[{"schema":{"default":"-id","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["createdAt"]},{"type":"string","enum":["-createdAt"]},{"type":"string","enum":["updatedAt"]},{"type":"string","enum":["-updatedAt"]},{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"number"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"filter[workspaceId][eq]","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["environment"]},"attributes":{"type":"object","required":["name","workspaceId","metadata","keyNames","emptyKeyNames","mcpServerNames","createdBy","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"description":{"type":"string"},"envVariableNames":{"type":"array","items":{"type":"string"}},"emptyKeyNames":{"type":"array","items":{"type":"string"}},"mcpServerNames":{"type":"array","items":{"type":"string"}}}},{"type":"null"}]},"keyNames":{"type":"array","items":{"type":"string"}},"emptyKeyNames":{"type":"array","items":{"type":"string"}},"mcpServerNames":{"type":"array","items":{"type":"string"}},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/environments/{id}":{"get":{"tags":["Environments"],"description":"Gets a single environment by ID (metadata only — the sealed value is never returned).","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["environment"]},"attributes":{"type":"object","required":["name","workspaceId","metadata","keyNames","emptyKeyNames","mcpServerNames","createdBy","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"description":{"type":"string"},"envVariableNames":{"type":"array","items":{"type":"string"}},"emptyKeyNames":{"type":"array","items":{"type":"string"}},"mcpServerNames":{"type":"array","items":{"type":"string"}}}},{"type":"null"}]},"keyNames":{"type":"array","items":{"type":"string"}},"emptyKeyNames":{"type":"array","items":{"type":"string"}},"mcpServerNames":{"type":"array","items":{"type":"string"}},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"put":{"tags":["Environments"],"description":"Replaces an environment's sealed value in place. The new `.env` payload is validated, sealed under the workspace key, and never returned.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"envFile":{"minLength":1,"description":"Raw `.env` file contents (`KEY=VALUE` per line). Blank lines and `#` comments are ignored. Mutually exclusive with `entries`.","type":"string"},"entries":{"description":"Environment variables as a `KEY=VALUE` map. Mutually exclusive with `envFile`.","type":"object","additionalProperties":{"type":"string"}},"metadata":{"additionalProperties":false,"type":"object","properties":{"description":{"type":"string"},"mcpServerNames":{"maxItems":20,"description":"Names of workspace-registered MCP proxies to configure on this environment. Each must name an MCP server already registered and authorized in this workspace. Requires the `mcp-gateway` feature; naming an unknown or unauthorized server is a 400.","type":"array","items":{"minLength":1,"type":"string"}}}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["environment"]},"attributes":{"type":"object","required":["name","workspaceId","metadata","keyNames","emptyKeyNames","mcpServerNames","createdBy","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object","properties":{"description":{"type":"string"},"envVariableNames":{"type":"array","items":{"type":"string"}},"emptyKeyNames":{"type":"array","items":{"type":"string"}},"mcpServerNames":{"type":"array","items":{"type":"string"}}}},{"type":"null"}]},"keyNames":{"type":"array","items":{"type":"string"}},"emptyKeyNames":{"type":"array","items":{"type":"string"}},"mcpServerNames":{"type":"array","items":{"type":"string"}},"createdBy":{"anyOf":[{"type":"object","required":["id","firstName","lastName"],"properties":{"id":{"format":"uuid","type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Environments"],"description":"Deletes an environment by ID.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/workspaces/{workspaceId}/reviewer-plugin":{"get":{"tags":["Workspaces"],"description":"Gets the reviewer plugin configuration for a workspace.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"anyOf":[{"type":"object","required":["reviewerRef"],"properties":{"reviewerRef":{"type":"string"}}},{"type":"null"}]}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"put":{"tags":["Workspaces"],"description":"Sets the reviewer plugin configuration for a workspace.","requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"type":"object","required":["reviewerRef"],"properties":{"reviewerRef":{"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["reviewerRef"],"properties":{"reviewerRef":{"type":"string"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Workspaces"],"description":"Deletes the reviewer plugin configuration for a workspace.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/skills/tile-skills":{"get":{"tags":["Skills","Tiles"],"description":"Lists tile-skills (skills shipped inside a tile version) sourced from a given repository URL.","parameters":[{"schema":{"format":"uri","type":"string"},"in":"query","name":"sourceUrl","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["tile-skill"]},"attributes":{"type":"object","required":["skillPath","skillName","skillDescription","tileFullName","tileName","tileVersion","workspaceName"],"properties":{"skillPath":{"type":"string"},"skillName":{"anyOf":[{"type":"string"},{"type":"null"}]},"skillDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"tileFullName":{"type":"string"},"tileName":{"type":"string"},"tileVersion":{"type":"string"},"workspaceName":{"type":"string"}}}}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/tasks":{"post":{"tags":["Tasks"],"description":"Create-or-get a task by `idempotencyKey`. Emits `task.created`; when `startImmediately` (default true) and inputs are supplied, kicks off the first run.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceName","idempotencyKey","definition","inputs"],"properties":{"workspaceName":{"minLength":1,"type":"string"},"idempotencyKey":{"minLength":1,"type":"string"},"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}},"links":{"type":"array","items":{"type":"object","required":["type","value"],"properties":{"type":{"minLength":1,"type":"string"},"value":{"minLength":1,"type":"string"},"displayLabel":{"minLength":1,"maxLength":256,"type":"string"},"displayTitle":{"minLength":1,"maxLength":1024,"type":"string"},"displayUrl":{"minLength":1,"maxLength":2048,"pattern":"^https?://","type":"string"}}}},"initialUserInput":{"minProperties":1,"type":"object","properties":{"text":{"minLength":1,"type":"string"},"structured":{"type":"object","additionalProperties":{}}}},"startImmediately":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["web","self"],"properties":{"web":{"format":"uri","type":"string"},"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task"]},"attributes":{"type":"object","required":["status","definition","inputs","currentRunId","links","createdBy","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}},"currentRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"links":{"type":"array","items":{"type":"object","required":["type","value","eventId"],"properties":{"type":{"type":"string"},"value":{"type":"string"},"eventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"displayLabel":{"type":"string"},"displayTitle":{"type":"string"},"displayUrl":{"type":"string"}}}},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["web","self"],"properties":{"web":{"format":"uri","type":"string"},"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task"]},"attributes":{"type":"object","required":["status","definition","inputs","currentRunId","links","createdBy","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}},"currentRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"links":{"type":"array","items":{"type":"object","required":["type","value","eventId"],"properties":{"type":{"type":"string"},"value":{"type":"string"},"eventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"displayLabel":{"type":"string"},"displayTitle":{"type":"string"},"displayUrl":{"type":"string"}}}},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"get":{"tags":["Tasks"],"description":"List tasks in a workspace, optionally filtered by status.","parameters":[{"schema":{"default":"-id","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}},{"anyOf":[{"type":"string","enum":["id"]},{"type":"string","enum":["-id"]}]}]},"in":"query","name":"sort","required":false},{"schema":{"minimum":1,"maximum":100,"default":100,"type":"integer"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[before]","required":false},{"schema":{"minLength":1,"type":"string"},"in":"query","name":"filter[workspaceName]","required":true},{"schema":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"in":"query","name":"filter[status]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"in":"query","name":"filter[status][eq]","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task"]},"attributes":{"type":"object","required":["status","definition","currentRunId","linkCount","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"currentRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"linkCount":{"minimum":0,"type":"integer"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/tasks/by-link":{"get":{"tags":["Tasks"],"description":"Find a task by its (workspace, link type, link value) triple. 404 when no match exists.","parameters":[{"schema":{"minLength":1,"type":"string"},"in":"query","name":"workspaceName","required":true},{"schema":{"minLength":1,"type":"string"},"in":"query","name":"type","required":true},{"schema":{"minLength":1,"type":"string"},"in":"query","name":"value","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["web","self"],"properties":{"web":{"format":"uri","type":"string"},"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task"]},"attributes":{"type":"object","required":["status","definition","inputs","currentRun","pendingInputCount","links","latestEvents","workspaceName","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}},"currentRun":{"anyOf":[{"type":"object","required":["id","status"],"properties":{"id":{"format":"uuid","type":"string"},"status":{"type":"string"},"liveness":{"type":"object","required":["phase","updatedAt"],"properties":{"phase":{"anyOf":[{"type":"string","enum":["queued"]},{"type":"string","enum":["starting"]},{"type":"string","enum":["preparing"]},{"type":"string","enum":["running"]},{"type":"string","enum":["recovering"]},{"type":"string","enum":["retrying"]},{"type":"string","enum":["finalizing"]}]},"message":{"maxLength":256,"type":"string"},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"pendingInputCount":{"minimum":0,"type":"integer"},"links":{"type":"array","items":{"type":"object","required":["type","value","eventId"],"properties":{"type":{"type":"string"},"value":{"type":"string"},"eventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"displayLabel":{"type":"string"},"displayTitle":{"type":"string"},"displayUrl":{"type":"string"}}}},"latestEvents":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task-event"]},"attributes":{"anyOf":[{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.created"]},"payload":{"type":"object","required":["definition","inputs"],"properties":{"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["user_input.received"]},"payload":{"type":"object","properties":{"text":{"type":"string"},"structured":{"type":"object","additionalProperties":{}},"inResponseTo":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.created"]},"payload":{"type":"object","required":["runId","consumedInputEventIds"],"properties":{"runId":{"format":"uuid","type":"string"},"consumedInputEventIds":{"type":"array","items":{"format":"uuid","type":"string"}},"resumeOfRunId":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.completed"]},"payload":{"type":"object","required":["runId","output"],"properties":{"runId":{"format":"uuid","type":"string"},"output":{"anyOf":[{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["completed"]},"links":{"type":"array","items":{"type":"object","required":["type","value"],"properties":{"type":{"minLength":1,"type":"string"},"value":{"minLength":1,"type":"string"},"number":{"type":"number"},"displayLabel":{"minLength":1,"maxLength":256,"type":"string"},"displayTitle":{"minLength":1,"maxLength":1024,"type":"string"},"displayUrl":{"minLength":1,"maxLength":2048,"pattern":"^https?://","type":"string"}}}},"summary":{"type":"string"}}},{"type":"object","required":["status","questions"],"properties":{"status":{"type":"string","enum":["needs_input"]},"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}},{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["failed"]},"reason":{"type":"string"}}}]}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.failed"]},"payload":{"type":"object","required":["runId","failureReason"],"properties":{"runId":{"format":"uuid","type":"string"},"failureReason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.cancelled"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["input.requested"]},"payload":{"type":"object","required":["questions"],"properties":{"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.progress"]},"payload":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"tool":{"type":"string"}}}}}]}}}},"workspaceName":{"minLength":1,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/tasks/{id}":{"get":{"tags":["Tasks"],"description":"Get a task by id, including its current run, pending-input count, links, and the latest event tail.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["web","self"],"properties":{"web":{"format":"uri","type":"string"},"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task"]},"attributes":{"type":"object","required":["status","definition","inputs","currentRun","pendingInputCount","links","latestEvents","workspaceName","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}},"currentRun":{"anyOf":[{"type":"object","required":["id","status"],"properties":{"id":{"format":"uuid","type":"string"},"status":{"type":"string"},"liveness":{"type":"object","required":["phase","updatedAt"],"properties":{"phase":{"anyOf":[{"type":"string","enum":["queued"]},{"type":"string","enum":["starting"]},{"type":"string","enum":["preparing"]},{"type":"string","enum":["running"]},{"type":"string","enum":["recovering"]},{"type":"string","enum":["retrying"]},{"type":"string","enum":["finalizing"]}]},"message":{"maxLength":256,"type":"string"},"updatedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]}}}}},{"type":"null"}]},"pendingInputCount":{"minimum":0,"type":"integer"},"links":{"type":"array","items":{"type":"object","required":["type","value","eventId"],"properties":{"type":{"type":"string"},"value":{"type":"string"},"eventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"displayLabel":{"type":"string"},"displayTitle":{"type":"string"},"displayUrl":{"type":"string"}}}},"latestEvents":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task-event"]},"attributes":{"anyOf":[{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.created"]},"payload":{"type":"object","required":["definition","inputs"],"properties":{"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["user_input.received"]},"payload":{"type":"object","properties":{"text":{"type":"string"},"structured":{"type":"object","additionalProperties":{}},"inResponseTo":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.created"]},"payload":{"type":"object","required":["runId","consumedInputEventIds"],"properties":{"runId":{"format":"uuid","type":"string"},"consumedInputEventIds":{"type":"array","items":{"format":"uuid","type":"string"}},"resumeOfRunId":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.completed"]},"payload":{"type":"object","required":["runId","output"],"properties":{"runId":{"format":"uuid","type":"string"},"output":{"anyOf":[{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["completed"]},"links":{"type":"array","items":{"type":"object","required":["type","value"],"properties":{"type":{"minLength":1,"type":"string"},"value":{"minLength":1,"type":"string"},"number":{"type":"number"},"displayLabel":{"minLength":1,"maxLength":256,"type":"string"},"displayTitle":{"minLength":1,"maxLength":1024,"type":"string"},"displayUrl":{"minLength":1,"maxLength":2048,"pattern":"^https?://","type":"string"}}}},"summary":{"type":"string"}}},{"type":"object","required":["status","questions"],"properties":{"status":{"type":"string","enum":["needs_input"]},"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}},{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["failed"]},"reason":{"type":"string"}}}]}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.failed"]},"payload":{"type":"object","required":["runId","failureReason"],"properties":{"runId":{"format":"uuid","type":"string"},"failureReason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.cancelled"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["input.requested"]},"payload":{"type":"object","required":["questions"],"properties":{"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.progress"]},"payload":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"tool":{"type":"string"}}}}}]}}}},"workspaceName":{"minLength":1,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/tasks/{id}/events":{"get":{"tags":["Tasks"],"description":"List events for a task, ordered ascending by id. Filterable by event type(s) and/or runId.","parameters":[{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"in":"query","name":"type","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"runId","required":false},{"schema":{"minimum":1,"maximum":200,"type":"integer"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task-event"]},"attributes":{"anyOf":[{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.created"]},"payload":{"type":"object","required":["definition","inputs"],"properties":{"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["user_input.received"]},"payload":{"type":"object","properties":{"text":{"type":"string"},"structured":{"type":"object","additionalProperties":{}},"inResponseTo":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.created"]},"payload":{"type":"object","required":["runId","consumedInputEventIds"],"properties":{"runId":{"format":"uuid","type":"string"},"consumedInputEventIds":{"type":"array","items":{"format":"uuid","type":"string"}},"resumeOfRunId":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.completed"]},"payload":{"type":"object","required":["runId","output"],"properties":{"runId":{"format":"uuid","type":"string"},"output":{"anyOf":[{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["completed"]},"links":{"type":"array","items":{"type":"object","required":["type","value"],"properties":{"type":{"minLength":1,"type":"string"},"value":{"minLength":1,"type":"string"},"number":{"type":"number"},"displayLabel":{"minLength":1,"maxLength":256,"type":"string"},"displayTitle":{"minLength":1,"maxLength":1024,"type":"string"},"displayUrl":{"minLength":1,"maxLength":2048,"pattern":"^https?://","type":"string"}}}},"summary":{"type":"string"}}},{"type":"object","required":["status","questions"],"properties":{"status":{"type":"string","enum":["needs_input"]},"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}},{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["failed"]},"reason":{"type":"string"}}}]}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.failed"]},"payload":{"type":"object","required":["runId","failureReason"],"properties":{"runId":{"format":"uuid","type":"string"},"failureReason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.cancelled"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["input.requested"]},"payload":{"type":"object","required":["questions"],"properties":{"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.progress"]},"payload":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"tool":{"type":"string"}}}}}]}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"post":{"tags":["Tasks"],"description":"Write a client-emitted task event (`user_input.received`, `input.requested`, `run.progress`). Backend-owned lifecycle events (`task.created`, `run.*`, `task.cancelled`) MUST be rejected with 400.","requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","required":["type","payload"],"properties":{"type":{"type":"string","enum":["user_input.received"]},"payload":{"type":"object","properties":{"text":{"type":"string"},"structured":{"type":"object","additionalProperties":{}},"inResponseTo":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["type","payload"],"properties":{"type":{"type":"string","enum":["input.requested"]},"payload":{"type":"object","required":["questions"],"properties":{"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}}}},{"type":"object","required":["type","payload"],"properties":{"type":{"type":"string","enum":["run.progress"]},"payload":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"tool":{"type":"string"}}}}}]}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data","meta"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task-event"]},"attributes":{"anyOf":[{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.created"]},"payload":{"type":"object","required":["definition","inputs"],"properties":{"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["user_input.received"]},"payload":{"type":"object","properties":{"text":{"type":"string"},"structured":{"type":"object","additionalProperties":{}},"inResponseTo":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.created"]},"payload":{"type":"object","required":["runId","consumedInputEventIds"],"properties":{"runId":{"format":"uuid","type":"string"},"consumedInputEventIds":{"type":"array","items":{"format":"uuid","type":"string"}},"resumeOfRunId":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.completed"]},"payload":{"type":"object","required":["runId","output"],"properties":{"runId":{"format":"uuid","type":"string"},"output":{"anyOf":[{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["completed"]},"links":{"type":"array","items":{"type":"object","required":["type","value"],"properties":{"type":{"minLength":1,"type":"string"},"value":{"minLength":1,"type":"string"},"number":{"type":"number"},"displayLabel":{"minLength":1,"maxLength":256,"type":"string"},"displayTitle":{"minLength":1,"maxLength":1024,"type":"string"},"displayUrl":{"minLength":1,"maxLength":2048,"pattern":"^https?://","type":"string"}}}},"summary":{"type":"string"}}},{"type":"object","required":["status","questions"],"properties":{"status":{"type":"string","enum":["needs_input"]},"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}},{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["failed"]},"reason":{"type":"string"}}}]}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.failed"]},"payload":{"type":"object","required":["runId","failureReason"],"properties":{"runId":{"format":"uuid","type":"string"},"failureReason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.cancelled"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["input.requested"]},"payload":{"type":"object","required":["questions"],"properties":{"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.progress"]},"payload":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"tool":{"type":"string"}}}}}]}}},"meta":{"type":"object","required":["task"],"properties":{"task":{"type":"object","required":["id","status","currentRunId"],"properties":{"id":{"format":"uuid","type":"string"},"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"currentRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]}}},"startedRun":{"type":"object","required":["launchRunId","temporalWorkflowId"],"properties":{"launchRunId":{"format":"uuid","type":"string"},"temporalWorkflowId":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/tasks/{id}/inputs":{"post":{"tags":["Tasks"],"description":"Sends a single input to a task. If the task is idle, this starts a new run; if a run is already in progress, the input is queued for the next run.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"minLength":1,"type":"string"},"structured":{"type":"object","additionalProperties":{}},"inResponseTo":{"format":"uuid","type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data","meta"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task-event"]},"attributes":{"anyOf":[{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.created"]},"payload":{"type":"object","required":["definition","inputs"],"properties":{"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["user_input.received"]},"payload":{"type":"object","properties":{"text":{"type":"string"},"structured":{"type":"object","additionalProperties":{}},"inResponseTo":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.created"]},"payload":{"type":"object","required":["runId","consumedInputEventIds"],"properties":{"runId":{"format":"uuid","type":"string"},"consumedInputEventIds":{"type":"array","items":{"format":"uuid","type":"string"}},"resumeOfRunId":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.completed"]},"payload":{"type":"object","required":["runId","output"],"properties":{"runId":{"format":"uuid","type":"string"},"output":{"anyOf":[{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["completed"]},"links":{"type":"array","items":{"type":"object","required":["type","value"],"properties":{"type":{"minLength":1,"type":"string"},"value":{"minLength":1,"type":"string"},"number":{"type":"number"},"displayLabel":{"minLength":1,"maxLength":256,"type":"string"},"displayTitle":{"minLength":1,"maxLength":1024,"type":"string"},"displayUrl":{"minLength":1,"maxLength":2048,"pattern":"^https?://","type":"string"}}}},"summary":{"type":"string"}}},{"type":"object","required":["status","questions"],"properties":{"status":{"type":"string","enum":["needs_input"]},"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}},{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["failed"]},"reason":{"type":"string"}}}]}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.failed"]},"payload":{"type":"object","required":["runId","failureReason"],"properties":{"runId":{"format":"uuid","type":"string"},"failureReason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.cancelled"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["input.requested"]},"payload":{"type":"object","required":["questions"],"properties":{"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.progress"]},"payload":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"tool":{"type":"string"}}}}}]}}},"meta":{"type":"object","required":["task"],"properties":{"task":{"type":"object","required":["id","status","currentRunId"],"properties":{"id":{"format":"uuid","type":"string"},"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"currentRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]}}},"startedRun":{"type":"object","required":["launchRunId","temporalWorkflowId"],"properties":{"launchRunId":{"format":"uuid","type":"string"},"temporalWorkflowId":{"type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/tasks/{id}/runs":{"get":{"tags":["Tasks"],"description":"List a task's `launch_run`s newest-first, each with status, failureReason, extracted links, the `run.created`/`run.completed` event ids, and its `resumeOfLaunchRunId` lineage.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["launch-run"]},"attributes":{"type":"object","required":["status","failureReason","runCreatedEventId","runCompletedEventId","resumeOfLaunchRunId","createdAt"],"properties":{"status":{"type":"string"},"failureReason":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"links":{"type":"array","items":{"type":"object","required":["type","value","eventId"],"properties":{"type":{"type":"string"},"value":{"type":"string"},"eventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"displayLabel":{"type":"string"},"displayTitle":{"type":"string"},"displayUrl":{"type":"string"}}}},"summary":{"type":"string"},"runCreatedEventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"runCompletedEventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"resumeOfLaunchRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/tasks/{id}/cancel":{"post":{"tags":["Tasks"],"description":"Cancel a task: stops the current run (if any) and sets the task status to `cancelled`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"maxLength":1024,"type":"string"}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task"]},"attributes":{"type":"object","required":["status","definition","inputs","currentRunId","links","createdBy","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]},{"type":"string","enum":["completed"]}]},"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}},"currentRunId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"links":{"type":"array","items":{"type":"object","required":["type","value","eventId"],"properties":{"type":{"type":"string"},"value":{"type":"string"},"eventId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"displayLabel":{"type":"string"},"displayTitle":{"type":"string"},"displayUrl":{"type":"string"}}}},"createdBy":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/task-events":{"get":{"tags":["Tasks"],"description":"Workspace-wide task-event feed. Same item shape as `GET /tasks/{id}/events`. Filterable by event type(s), taskId, or a `since` timestamp.","parameters":[{"schema":{"minLength":1,"type":"string"},"in":"query","name":"workspaceName","required":true},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"in":"query","name":"type","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"taskId","required":false},{"schema":{"format":"date-time","type":"string"},"in":"query","name":"since","required":false,"description":"Inclusive lower bound on createdAt (createdAt >= since). RFC 3339 timestamp. Fractional seconds up to microsecond precision are preserved."},{"schema":{"minimum":1,"maximum":200,"type":"integer"},"in":"query","name":"page[size]","required":false},{"schema":{"type":"string"},"in":"query","name":"page[after]","required":false},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["task-event"]},"attributes":{"anyOf":[{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.created"]},"payload":{"type":"object","required":["definition","inputs"],"properties":{"definition":{"type":"object","required":["skillRef","repoUrl","agent"],"properties":{"skillRef":{"minLength":1,"type":"string"},"repoUrl":{"minLength":1,"type":"string"},"baseBranch":{"minLength":1,"type":"string"},"agent":{"minLength":1,"type":"string"},"model":{"minLength":1,"type":"string"},"environmentId":{"format":"uuid","type":"string"},"environmentName":{"minLength":1,"type":"string"},"snapshotFamily":{"anyOf":[{"type":"string","enum":["base"]},{"type":"string","enum":["dev"]}]}}},"inputs":{"type":"object","additionalProperties":{}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["user_input.received"]},"payload":{"type":"object","properties":{"text":{"type":"string"},"structured":{"type":"object","additionalProperties":{}},"inResponseTo":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.created"]},"payload":{"type":"object","required":["runId","consumedInputEventIds"],"properties":{"runId":{"format":"uuid","type":"string"},"consumedInputEventIds":{"type":"array","items":{"format":"uuid","type":"string"}},"resumeOfRunId":{"format":"uuid","type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.completed"]},"payload":{"type":"object","required":["runId","output"],"properties":{"runId":{"format":"uuid","type":"string"},"output":{"anyOf":[{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["completed"]},"links":{"type":"array","items":{"type":"object","required":["type","value"],"properties":{"type":{"minLength":1,"type":"string"},"value":{"minLength":1,"type":"string"},"number":{"type":"number"},"displayLabel":{"minLength":1,"maxLength":256,"type":"string"},"displayTitle":{"minLength":1,"maxLength":1024,"type":"string"},"displayUrl":{"minLength":1,"maxLength":2048,"pattern":"^https?://","type":"string"}}}},"summary":{"type":"string"}}},{"type":"object","required":["status","questions"],"properties":{"status":{"type":"string","enum":["needs_input"]},"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}},{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["failed"]},"reason":{"type":"string"}}}]}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.failed"]},"payload":{"type":"object","required":["runId","failureReason"],"properties":{"runId":{"format":"uuid","type":"string"},"failureReason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["task.cancelled"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["input.requested"]},"payload":{"type":"object","required":["questions"],"properties":{"questions":{"type":"array","items":{"type":"object","required":["id","prompt"],"properties":{"id":{"minLength":1,"type":"string"},"prompt":{"minLength":1,"type":"string"},"options":{"type":"array","items":{"type":"string"}},"default":{"type":"string"}}}}}}}},{"type":"object","required":["taskId","runId","actor","createdAt","type","payload"],"properties":{"taskId":{"format":"uuid","type":"string"},"runId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"actor":{"type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"type":"string","enum":["trigger"]},{"type":"string","enum":["agent"]},{"type":"string","enum":["human"]},{"type":"string","enum":["system"]}]},"id":{"type":"string"},"name":{"type":"string"}}},"createdAt":{"format":"date-time","type":"string"},"type":{"type":"string","enum":["run.progress"]},"payload":{"type":"object","required":["message"],"properties":{"message":{"type":"string"},"tool":{"type":"string"}}}}}]}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/sandbox-lease":{"get":{"tags":["Capacity"],"description":"Deprecated — replaced by GET /capacity-lease. Lists active sandbox leases for safe rollback.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","meta","data"],"properties":{"links":{"type":"object","required":["self","next","prev"],"properties":{"self":{"format":"uri","type":"string"},"next":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"prev":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string"},"type":{"type":"string","enum":["sandbox-lease"]},"attributes":{"type":"object","required":["recipeName","sandboxId","createdAt","claimedAt"],"properties":{"recipeName":{"type":"string"},"sandboxId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"claimedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}},"delete":{"tags":["Capacity"],"description":"Deprecated — replaced by DELETE /capacity-lease. Truncates all active sandbox leases.","parameters":[{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"type":"string","enum":["truncated"]},"type":{"type":"string","enum":["count"]},"attributes":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/sandbox-lease/running/{workflowId}/{activityId}/stop":{"post":{"tags":["Capacity"],"description":"Deprecated — replaced by POST /capacity-lease/:leaseId/stop. Stops the sandbox attached to a running lease.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workflowId","required":true},{"schema":{"type":"string"},"in":"path","name":"activityId","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"204":{"description":"Default Response"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}},"/experimental/repos/{orgName}/{repoName}/commits":{"get":{"tags":["Repos"],"description":"Lists commits on a repository's default branch via the workspace's SCM integration. Supports keyword/author/date filtering.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"query","name":"workspaceId","required":true},{"schema":{"minimum":1,"maximum":100,"default":10,"type":"number"},"in":"query","name":"count","required":false},{"schema":{"type":"string"},"in":"query","name":"since","required":false},{"schema":{"type":"string"},"in":"query","name":"until","required":false},{"schema":{"type":"string"},"in":"query","name":"keyword","required":false},{"schema":{"type":"string"},"in":"query","name":"author","required":false},{"schema":{"type":"string"},"in":"path","name":"orgName","required":true},{"schema":{"type":"string"},"in":"path","name":"repoName","required":true},{"schema":{"type":"string"},"example":"Bearer <token>","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["links","data","meta"],"properties":{"links":{"type":"object","required":["self"],"properties":{"self":{"format":"uri","type":"string"}}},"data":{"type":"array","items":{"type":"object","required":["hash","shortHash","message","author","date"],"properties":{"hash":{"type":"string"},"shortHash":{"type":"string"},"message":{"type":"string"},"author":{"type":"string"},"date":{"format":"date-time","type":"string"}}}},"meta":{"type":"object","required":["count"],"properties":{"count":{"type":"number"}}}}}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"description":"Unauthorized","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Unauthorized"]},"status":{"type":"number","enum":[401]},"message":{"type":"string"}}}}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"description":"Forbidden","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Forbidden"]},"status":{"type":"number","enum":[403]},"message":{"type":"string"}}}}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"description":"Not Found","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Not Found"]},"status":{"type":"number","enum":[404]},"message":{"type":"string"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"properties":{"error":{"type":"object","required":["title","status","message"],"properties":{"title":{"type":"string","enum":["Internal Server Error"]},"status":{"type":"number","enum":[500]},"message":{"type":"string"}}}}}}}}}}}},"servers":[{"url":"https://api.tessl.io"}],"tags":[{"name":"Tiles","description":"Tile catalog, versions, and metadata."},{"name":"Skills","description":"Skill discovery, reviews, and security checks."},{"name":"Workspaces","description":"Workspaces and workspace membership."},{"name":"Orgs","description":"Organizations, members, and invitations."},{"name":"Users","description":"User accounts and identity."},{"name":"Projects","description":"Workspace projects."},{"name":"Integrations","description":"Third-party integrations (GitHub, GitLab, etc)."},{"name":"API Keys","description":"Workspace and organization API keys."},{"name":"Admin Keys","description":"Admin-scoped API keys for support tooling."},{"name":"Evals","description":"Eval runs, scenarios, and solution scoring."},{"name":"Generation","description":"Eval scenario generation runs."},{"name":"Workflows","description":"Background workflow executions and repository workflow configs."},{"name":"Search","description":"Search across tiles, skills, and repos."},{"name":"Badges","description":"Workspace badge generation."},{"name":"Repos","description":"Source-control repository helpers."},{"name":"Webhooks","description":"Inbound webhooks from GitHub, GitLab, Snyk, and WorkOS."},{"name":"Capacity","description":"Sandbox and capacity-lease scheduling."},{"name":"Agent Logs","description":"Agent and hosted-execution log uploads."},{"name":"CLI","description":"Endpoints used by the Tessl CLI."}]}