{"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/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"},"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"},"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/llm/keys":{"post":{"tags":["LLM"],"description":"Issues a LiteLLM API key scoped to the requested models. The key may only call the listed model names (calls to anything else are rejected) and the real underlying models stay hidden behind aliases. 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"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer ","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"}}}}}}}}}}},"/v1/llm/available":{"get":{"tags":["LLM"],"description":"Lists the model names the authenticated caller may scope a LiteLLM key to via `POST /v1/llm/keys` — the same actor-scoped catalogue that endpoint validates against. Tessl-only models are included only for Tessl members.","parameters":[{"schema":{"type":"string"},"example":"Bearer ","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"],"properties":{"models":{"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"},"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"},"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"},"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 ","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"}}}}}}}}}},"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"}}}}}}}}}}}}}}},"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 ","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"}}}}}}}}}},"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 ","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 ","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"}}}}}}}}}},"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","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":{"anyOf":[{"anyOf":[{"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"}}}}}}}}}},"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","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":{"anyOf":[{"anyOf":[{"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"}]}}},{"type":"object","required":["source"],"properties":{"source":{"type":"string","enum":["github"]}}}]}}}}},{"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 ","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 ","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 ","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"],"properties":{"skill":{"type":"string"},"total":{"type":"integer"},"weekly":{"type":"array","items":{"type":"object","required":["week","count"],"properties":{"week":{"type":"string"},"count":{"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","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":{"anyOf":[{"anyOf":[{"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"},"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 ","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 ","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":[{"type":"object","additionalProperties":{}},{"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"}}},{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending"]}}}]}},"activation":{"type":"object","required":["activatedSkills"],"properties":{"activatedSkills":{"type":"array","items":{"type":"string"}}}}}}}}}},"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"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"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"],"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","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":{"anyOf":[{"anyOf":[{"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","code","title","reasoning","issueDescription"],"properties":{"severity":{"anyOf":[{"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"}]}}}},"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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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.","parameters":[{"schema":{"type":"string"},"example":"Bearer ","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","featureFlags","email","emailVerified","profilePictureUrl","defaultOrgId","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"}]},"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"}]}}}}}}}}}},"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 ","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 ","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 ","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 ","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 ","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":{"format":"uuid","type":"string"},"in":"path","name":"userId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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","role","defaultWorkspaceId","joinedAt","entitlements"],"properties":{"name":{"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 ","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/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 ","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","blockPublicTilePublish","plan","entitlements","trialEndsAt","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"blockPublicTilePublish":{"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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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 ","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}/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 ","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 ","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 ","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 by setting cancel_at_period_end on its Stripe subscription. Team stays active until the period ends; the plan flips to free on the customer.subscription.deleted webhook.","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 ","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 ","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","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"}]},"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 ","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}/credits/usage":{"get":{"tags":["Billing"],"description":"Paginated, filterable log of the org's billing_event usage rows (one row per idempotency key), 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":"uuid","type":"string"},"in":"path","name":"orgId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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"],"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"}}}}}}}},"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 ","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"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"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":"Updates a workspace: rename, archive, restore, or update 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 ","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 ","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 ","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 ","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 ","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 ","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":["add-registry-key"]},{"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":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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 ","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 ","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}/skill-inventories":{"get":{"tags":["SkillInventory"],"description":"Lists skill inventories claimed by the workspace, ordered by scan recency.","parameters":[{"schema":{"default":"-scannedAt","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["scannedAt"]},{"type":"string","enum":["-scannedAt"]}]}},{"anyOf":[{"type":"string","enum":["scannedAt"]},{"type":"string","enum":["-scannedAt"]}]}]},"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":["pending"]},{"type":"string","enum":["complete"]},{"type":"string","enum":["failed"]}]},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"type":"string"},"example":"Bearer ","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"]},"attributes":{"type":"object","required":["githubOrgName","provider","scannedAt","scanCount","totalSkills","totalRepos","analysisStatus","privateIndexingOptedInAt","findingsBreakdown"],"properties":{"githubOrgName":{"type":"string"},"provider":{"type":"string"},"scannedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"scanCount":{"type":"number"},"totalSkills":{"type":"number"},"totalRepos":{"type":"number"},"analysisStatus":{"anyOf":[{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["complete"]},{"type":"string","enum":["failed"]}]},{"type":"null"}]},"privateIndexingOptedInAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"findingsBreakdown":{"type":"object","required":["critical","high","medium","low"],"properties":{"critical":{"type":"number"},"high":{"type":"number"},"medium":{"type":"number"},"low":{"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"}}}}}}}}}},"post":{"tags":["SkillInventory"],"description":"Creates (or returns) the workspace's skill inventory for a connected SCM provider, deriving the org-equivalent from the workspace's integration. This is the backend-driven bootstrap for the read-only scan model: after connecting a provider, create the inventory here, opt it into private indexing, then start a scan. Returns 422 (scm_not_connected) when the workspace has no integration for the requested provider. `created` is false when the inventory already existed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["provider"],"properties":{"provider":{"anyOf":[{"type":"string","enum":["github"]},{"type":"string","enum":["gitlab"]},{"type":"string","enum":["bitbucket"]}]}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":["githubOrgName","provider","created"],"properties":{"githubOrgName":{"type":"string"},"provider":{"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"}}}}}}}},"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}":{"get":{"tags":["SkillInventory"],"description":"Returns the authenticated header row for a workspace-scoped skill inventory.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["id","githubOrgName","provider","workspaceId","totalSkills","totalRepos","totalUniqueSkills","scannedAt","scanCount","analysisStatus","analysisError","categoryBreakdown","topContributors","agentsDistribution","crossScanDelta","findingsBreakdown","skillSeverityBreakdown","privateIndexingOptedInAt","privateIndexingStatus","privateIndexingStartedAt","privateIndexingCompletedAt","privateIndexingRegisteredCount","privateIndexingSkippedCount","privateIndexingFailedCount","privateIndexingErrorMessage","autoScanEnabled","nextScheduledScanAt"],"properties":{"id":{"type":"string"},"githubOrgName":{"type":"string"},"provider":{"type":"string"},"workspaceId":{"format":"uuid","type":"string"},"totalSkills":{"type":"number"},"totalRepos":{"type":"number"},"totalUniqueSkills":{"anyOf":[{"type":"number"},{"type":"null"}]},"scannedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"scanCount":{"type":"number"},"analysisStatus":{"anyOf":[{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["complete"]},{"type":"string","enum":["failed"]}]},{"type":"null"}]},"analysisError":{"anyOf":[{"type":"string"},{"type":"null"}]},"categoryBreakdown":{"type":"object","required":["firstParty","thirdParty","unknown"],"properties":{"firstParty":{"type":"number"},"thirdParty":{"type":"number"},"unknown":{"type":"number"}}},"topContributors":{"type":"array","items":{"type":"object","required":["email","count"],"properties":{"email":{"type":"string"},"count":{"type":"number"}}}},"agentsDistribution":{"type":"array","items":{"type":"object","required":["agent","count"],"properties":{"agent":{"type":"string"},"count":{"type":"number"}}}},"crossScanDelta":{"type":"object","required":["newFindingsCount","resolvedFindingsCount"],"properties":{"newFindingsCount":{"type":"number"},"resolvedFindingsCount":{"type":"number"}}},"findingsBreakdown":{"type":"object","required":["critical","high","medium","low"],"properties":{"critical":{"type":"number"},"high":{"type":"number"},"medium":{"type":"number"},"low":{"type":"number"}}},"skillSeverityBreakdown":{"type":"object","required":["critical","high","medium","low","clean"],"properties":{"critical":{"type":"number"},"high":{"type":"number"},"medium":{"type":"number"},"low":{"type":"number"},"clean":{"type":"number"}}},"privateIndexingOptedInAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"privateIndexingStatus":{"anyOf":[{"anyOf":[{"type":"string","enum":["indexing"]},{"type":"string","enum":["complete"]},{"type":"string","enum":["failed"]}]},{"type":"null"}]},"privateIndexingStartedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"privateIndexingCompletedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"privateIndexingRegisteredCount":{"type":"number"},"privateIndexingSkippedCount":{"type":"number"},"privateIndexingFailedCount":{"type":"number"},"privateIndexingErrorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"autoScanEnabled":{"type":"boolean"},"nextScheduledScanAt":{"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"}}}}}}}}}},"delete":{"tags":["SkillInventory"],"description":"Deletes a workspace-scoped skill inventory. Requires the `manage_integrations` permission (workspace manager or owner). The delete is a soft delete: the inventory and all its scans become inaccessible, but the org can be re-scanned later. Idempotent — deleting an already-deleted or unknown inventory returns 404.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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}/skill-inventories/{id}/github-app-status":{"get":{"tags":["SkillInventory"],"description":"Reports whether the workspace's GitHub App installation is present, healthy, and covers the repos of the inventory's org. Preflight check for the private-indexing opt-in.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-github-app-status"]},"attributes":{"type":"object","required":["installed","accountMatches","healthy","repositorySelection","coverage"],"properties":{"installed":{"type":"boolean"},"accountMatches":{"type":"boolean"},"healthy":{"type":"boolean"},"error":{"type":"string"},"repositorySelection":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["selected"]},{"type":"null"}]},"coverage":{"type":"object","required":["coveredRepoCount","totalRepoCount","missingRepos"],"properties":{"coveredRepoCount":{"type":"number"},"totalRepoCount":{"type":"number"},"missingRepos":{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/import-status":{"get":{"tags":["SkillInventory"],"description":"Live import progress for a skill inventory’s most recent scan. Reports the current `phase` (`scanning` → `analysing` → `complete`, or `failed`) plus `reposScanned` climbing toward `reposTotal` and the running `skillsFound`. Before the scan has created its row the endpoint reports a zeroed `scanning` state.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["inventoryId","phase","reposScanned","reposTotal","skillsFound","scanIndex","scannedAt"],"properties":{"inventoryId":{"format":"uuid","type":"string"},"phase":{"anyOf":[{"type":"string","enum":["scanning"]},{"type":"string","enum":["analysing"]},{"type":"string","enum":["complete"]},{"type":"string","enum":["failed"]}]},"reposScanned":{"type":"number"},"reposTotal":{"type":"number"},"skillsFound":{"type":"number"},"scanIndex":{"anyOf":[{"type":"number"},{"type":"null"}]},"scannedAt":{"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/workspaces/{workspaceNameOrID}/skill-inventories/source-preview":{"get":{"tags":["SkillInventory"],"description":"Provider-agnostic, workspace-level preview of a connected SCM source, before any skill inventory exists. Given a `provider` (github, gitlab, or bitbucket), returns whether that provider is connected for the workspace, the connected account/org/group/workspace, and how many repositories the connection can currently see. `repositorySelection` is GitHub-only and is null for other providers.","parameters":[{"schema":{"anyOf":[{"type":"string","enum":["github"]},{"type":"string","enum":["gitlab"]},{"type":"string","enum":["bitbucket"]},{"type":"string","enum":["mockhub"]}]},"in":"query","name":"provider","required":true},{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-source"]},"attributes":{"type":"object","required":["provider","connected","account","repositorySelection","repoCount"],"properties":{"provider":{"anyOf":[{"type":"string","enum":["github"]},{"type":"string","enum":["gitlab"]},{"type":"string","enum":["bitbucket"]},{"type":"string","enum":["mockhub"]}]},"connected":{"type":"boolean"},"account":{"anyOf":[{"type":"object","required":["login","type"],"properties":{"login":{"type":"string"},"type":{"anyOf":[{"type":"string","enum":["organization"]},{"type":"string","enum":["user"]},{"type":"null"}]}}},{"type":"null"}]},"repositorySelection":{"anyOf":[{"type":"string","enum":["all"]},{"type":"string","enum":["selected"]},{"type":"null"}]},"repoCount":{"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/{workspaceNameOrID}/skill-inventories/source-repos":{"get":{"tags":["SkillInventory"],"description":"Lists repositories the workspace’s connected SCM source can see, for the create-flow repo picker. Given a `provider` (github, gitlab, bitbucket, or the dev-only mockhub) and an optional `q`, runs a provider-side name search when `q` is present (so a huge org need not be enumerated to find a repo) or lists the first page of the account otherwise, returning the bare repo `name` (the scan filter key), the `owner/repo` `fullName`, and whether the repo is archived. Results are capped; `hasMore` signals the caller to narrow with `q`. 404s when the provider is not connected for the workspace or the onboarding feature flag is off.","parameters":[{"schema":{"anyOf":[{"type":"string","enum":["github"]},{"type":"string","enum":["gitlab"]},{"type":"string","enum":["bitbucket"]},{"type":"string","enum":["mockhub"]}]},"in":"query","name":"provider","required":true},{"schema":{"type":"string"},"in":"query","name":"q","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-source-repo"]},"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"}}}}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"description":"Internal Server Error","type":"object","required":["error"],"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}/scans":{"get":{"tags":["SkillInventory"],"description":"Lists all Scans for a workspace-scoped skill inventory, newest first.","parameters":[{"schema":{"default":"-scanIndex","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["scanIndex"]},{"type":"string","enum":["-scanIndex"]}]}},{"anyOf":[{"type":"string","enum":["scanIndex"]},{"type":"string","enum":["-scanIndex"]}]}]},"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":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-scan"]},"attributes":{"type":"object","required":["scanIndex","scannedAt","analysisStatus","countsNew","countsSeen","countsDeparted","findingsAdded","findingsResolved"],"properties":{"scanIndex":{"type":"number"},"scannedAt":{"format":"date-time","type":"string"},"analysisStatus":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["complete"]},{"type":"string","enum":["failed"]}]},"countsNew":{"type":"number"},"countsSeen":{"type":"number"},"countsDeparted":{"type":"number"},"findingsAdded":{"type":"number"},"findingsResolved":{"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/{workspaceNameOrID}/skill-inventories/{id}/scans/{scanIndex}":{"get":{"tags":["SkillInventory"],"description":"Returns diff summary + Findings added/resolved for one Scan of a workspace-scoped skill inventory.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"scanIndex","required":true},{"schema":{"type":"string"},"example":"Bearer ","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["id","scanIndex","scannedAt","analysisStatus","countsNew","countsSeen","countsDeparted","previousScanIndex","findingsAddedInScan","findingsResolvedByScan"],"properties":{"id":{"format":"uuid","type":"string"},"scanIndex":{"type":"number"},"scannedAt":{"format":"date-time","type":"string"},"analysisStatus":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["complete"]},{"type":"string","enum":["failed"]}]},"countsNew":{"type":"number"},"countsSeen":{"type":"number"},"countsDeparted":{"type":"number"},"previousScanIndex":{"anyOf":[{"type":"number"},{"type":"null"}]},"findingsAddedInScan":{"type":"array","items":{"type":"object","required":["id","archetype","priority","title","description","firstSeenScanId","lastSeenScanId"],"properties":{"id":{"format":"uuid","type":"string"},"archetype":{"type":"string"},"priority":{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]},"title":{"type":"string"},"description":{"type":"string"},"firstSeenScanId":{"format":"uuid","type":"string"},"lastSeenScanId":{"format":"uuid","type":"string"}}}},"findingsResolvedByScan":{"type":"array","items":{"type":"object","required":["id","archetype","priority","title","description","firstSeenScanId","lastSeenScanId"],"properties":{"id":{"format":"uuid","type":"string"},"archetype":{"type":"string"},"priority":{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]},"title":{"type":"string"},"description":{"type":"string"},"firstSeenScanId":{"format":"uuid","type":"string"},"lastSeenScanId":{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/scans/{scanIndex}/indexing-results":{"get":{"tags":["SkillInventory"],"description":"Returns the per-skill first-party indexing results recorded for one Scan of a workspace-scoped skill inventory: each source SKILL.md that was processed during private indexing, with its repo/path, the outcome (indexed/skipped/failed), the reason when it wasn't indexed, and when it was indexed. Newest first.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"in":"path","name":"scanIndex","required":true},{"schema":{"type":"string"},"example":"Bearer ","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"],"properties":{"self":{"format":"uri","type":"string"}}},"meta":{"type":"object","required":["count","scanId","scanIndex"],"properties":{"count":{"type":"number"},"scanId":{"format":"uuid","type":"string"},"scanIndex":{"type":"number"}}},"data":{"type":"array","items":{"type":"object","required":["id","type","attributes"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill-inventory-indexing-result"]},"attributes":{"type":"object","required":["skillInstanceId","logicalSkillId","repoFullName","path","outcome","reason","indexedAt"],"properties":{"skillInstanceId":{"format":"uuid","type":"string"},"logicalSkillId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]},"repoFullName":{"type":"string"},"path":{"type":"string"},"outcome":{"anyOf":[{"type":"string","enum":["indexed"]},{"type":"string","enum":["skipped"]},{"type":"string","enum":["failed"]}]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"indexedAt":{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/catalog":{"get":{"tags":["SkillInventory"],"description":"Catalog lens — paginated list of current LogicalSkills for a workspace-scoped skill inventory.","parameters":[{"schema":{"default":"name","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]},{"type":"string","enum":["repo"]},{"type":"string","enum":["-repo"]},{"type":"string","enum":["lastModified"]},{"type":"string","enum":["-lastModified"]},{"type":"string","enum":["bodyBytes"]},{"type":"string","enum":["-bodyBytes"]}]}},{"anyOf":[{"type":"string","enum":["name"]},{"type":"string","enum":["-name"]},{"type":"string","enum":["repo"]},{"type":"string","enum":["-repo"]},{"type":"string","enum":["lastModified"]},{"type":"string","enum":["-lastModified"]},{"type":"string","enum":["bodyBytes"]},{"type":"string","enum":["-bodyBytes"]}]}]},"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[category]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[category][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[category][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[category][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[category][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[category][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[category][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[category][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceType]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceType][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceType][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceType][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceType][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceType][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceType][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceType][like]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[agent]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[agent][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[agent][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[agent][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[agent][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[agent][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[agent][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[agent][like]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[inTestFixtures]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[inTestFixtures][eq]","required":false},{"schema":{"type":"boolean"},"in":"query","name":"filter[inTestFixtures][ne]","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-catalog-entry"]},"attributes":{"type":"object","required":["scm","canonicalRepo","canonicalName","version","description","instanceCount","repoCount","category","sourceType","agents","inTestFixtures","lastModifiedAt","bodyBytes"],"properties":{"scm":{"type":"string"},"canonicalRepo":{"type":"string"},"canonicalName":{"type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"instanceCount":{"type":"number"},"repoCount":{"type":"number"},"category":{"anyOf":[{"type":"string","enum":["first-party"]},{"type":"string","enum":["third-party"]},{"type":"string","enum":["unknown"]}]},"sourceType":{"anyOf":[{"type":"string","enum":["tile.json"]},{"type":"string","enum":["plugin.json"]},{"type":"string","enum":["claude-marketplace"]},{"type":"string","enum":["tessl.json-dependency"]},{"type":"string","enum":["intra-org-canonical"]},{"type":"string","enum":["intra-org-copy"]},{"type":"string","enum":["registry-match"]},{"type":"string","enum":["none"]}]},"agents":{"type":"array","items":{"type":"string"}},"inTestFixtures":{"type":"boolean"},"lastModifiedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"bodyBytes":{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/by-repo":{"get":{"tags":["SkillInventory"],"description":"By-repo lens — paginated current InventoryRepos with nested LogicalSkill summaries.","parameters":[{"schema":{"default":"fullName","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["fullName"]},{"type":"string","enum":["-fullName"]},{"type":"string","enum":["pushedAt"]},{"type":"string","enum":["-pushedAt"]}]}},{"anyOf":[{"type":"string","enum":["fullName"]},{"type":"string","enum":["-fullName"]},{"type":"string","enum":["pushedAt"]},{"type":"string","enum":["-pushedAt"]}]}]},"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":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-repo-group"]},"attributes":{"type":"object","required":["fullName","name","url","description","visibility","language","defaultBranch","pushedAt","logicalSkills","findingsCount","worstPriority"],"properties":{"fullName":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"type":"string"},"language":{"anyOf":[{"type":"string"},{"type":"null"}]},"defaultBranch":{"type":"string"},"pushedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"logicalSkills":{"type":"array","items":{"type":"object","required":["id","scm","canonicalRepo","canonicalName","version","description","instanceCount"],"properties":{"id":{"format":"uuid","type":"string"},"scm":{"type":"string"},"canonicalRepo":{"type":"string"},"canonicalName":{"type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"instanceCount":{"type":"number"}}}},"findingsCount":{"type":"number"},"worstPriority":{"anyOf":[{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]},{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/by-skill":{"get":{"tags":["SkillInventory"],"description":"By-skill lens — paginated version-blind GlobalSkillId groups with their SkillInstances and the manifests that reference them.","parameters":[{"schema":{"default":"canonicalName","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["canonicalName"]},{"type":"string","enum":["-canonicalName"]},{"type":"string","enum":["canonicalRepo"]},{"type":"string","enum":["-canonicalRepo"]}]}},{"anyOf":[{"type":"string","enum":["canonicalName"]},{"type":"string","enum":["-canonicalName"]},{"type":"string","enum":["canonicalRepo"]},{"type":"string","enum":["-canonicalRepo"]}]}]},"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":{"minimum":1,"maximum":10000,"type":"integer"},"in":"query","name":"page[number]","required":false},{"schema":{"type":"string"},"in":"query","name":"q","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["first-party"]},{"type":"string","enum":["third-party"]},{"type":"string","enum":["unknown"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["first-party"]},{"type":"string","enum":["third-party"]},{"type":"string","enum":["unknown"]}]}}]},"in":"query","name":"type","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":"security","required":false},{"schema":{"anyOf":[{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]},{"type":"string","enum":["clean"]}]},{"type":"array","items":{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]},{"type":"string","enum":["clean"]}]}}]},"in":"query","name":"severity","required":false},{"schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"in":"query","name":"repo","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-skill-group"]},"attributes":{"type":"object","required":["scm","canonicalRepo","canonicalName","description","category","instanceCount","repoCount","skillInstances","manifests","findingsCount","worstPriority","registryScores","registryTesslUrl","firstSeenAt","licence","tags","committers","securityReview"],"properties":{"scm":{"type":"string"},"canonicalRepo":{"type":"string"},"canonicalName":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string","enum":["first-party"]},{"type":"string","enum":["third-party"]},{"type":"string","enum":["unknown"]}]},"instanceCount":{"type":"number"},"repoCount":{"type":"number"},"skillInstances":{"type":"array","items":{"type":"object","required":["id","repoId","repoFullName","kind","path","name","scm","canonicalRepo","canonicalName","version"],"properties":{"id":{"format":"uuid","type":"string"},"repoId":{"format":"uuid","type":"string"},"repoFullName":{"type":"string"},"kind":{"anyOf":[{"type":"string","enum":["source"]},{"type":"string","enum":["dependency"]}]},"path":{"type":"string"},"name":{"type":"string"},"scm":{"type":"string"},"canonicalRepo":{"type":"string"},"canonicalName":{"type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"manifests":{"type":"array","items":{"type":"object","required":["id","repoId","repoFullName","path","type"],"properties":{"id":{"format":"uuid","type":"string"},"repoId":{"format":"uuid","type":"string"},"repoFullName":{"type":"string"},"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"]}]}}}},"findingsCount":{"type":"number"},"worstPriority":{"anyOf":[{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]},{"type":"null"}]},"registryScores":{"anyOf":[{"type":"object","required":["version","aggregate","quality","impact","security","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":{"anyOf":[{"anyOf":[{"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":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"registryTesslUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"firstSeenAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"licence":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"committers":{"type":"object","required":["total","items"],"properties":{"total":{"type":"number"},"items":{"type":"array","items":{"type":"object","required":["username","avatarUrl"],"properties":{"username":{"type":"string"},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}}}},"securityReview":{"anyOf":[{"type":"object","required":["status","riskLevel"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"riskLevel":{"anyOf":[{"anyOf":[{"type":"string","enum":["LOW"]},{"type":"string","enum":["MEDIUM"]},{"type":"string","enum":["HIGH"]},{"type":"string","enum":["CRITICAL"]}]},{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/committers":{"get":{"tags":["SkillInventory"],"description":"Full committer roster for the inventory — every username touching a current SkillInstance, with skill / repo / finding counts.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-committer"]},"attributes":{"type":"object","required":["username","avatarUrl","skillCount","repoCount","findingsCount","worstPriority"],"properties":{"username":{"type":"string"},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"skillCount":{"type":"number"},"repoCount":{"type":"number"},"findingsCount":{"type":"number"},"worstPriority":{"anyOf":[{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]},{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/findings":{"get":{"tags":["SkillInventory"],"description":"Lists Findings for an inventory across every archetype. Default status=active limits to Findings whose last_seen_scan_id matches the inventory’s latest scan.","parameters":[{"schema":{"default":"-priority","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["priority"]},{"type":"string","enum":["-priority"]},{"type":"string","enum":["firstSeenScanIndex"]},{"type":"string","enum":["-firstSeenScanIndex"]}]}},{"anyOf":[{"type":"string","enum":["priority"]},{"type":"string","enum":["-priority"]},{"type":"string","enum":["firstSeenScanIndex"]},{"type":"string","enum":["-firstSeenScanIndex"]}]}]},"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":[{"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":["unmanaged"]},{"type":"string","enum":["skill-overload"]}]},{"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":["unmanaged"]},{"type":"string","enum":["skill-overload"]}]}}]},"in":"query","name":"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":"priority","required":false},{"schema":{"default":"active","anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["resolved"]},{"type":"string","enum":["all"]}]},"in":"query","name":"status","required":false},{"schema":{"format":"uuid","type":"string"},"in":"query","name":"skill","required":false},{"schema":{"type":"string"},"in":"query","name":"repoFullName","required":false},{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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"]},"attributes":{"type":"object","required":["archetype","priority","title","description","status","firstSeenScanIndex","lastSeenScanIndex","gated","logicalSkill","skillInstance","clusterMembers","instances"],"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":["unmanaged"]},{"type":"string","enum":["skill-overload"]}]},"priority":{"anyOf":[{"type":"string","enum":["critical"]},{"type":"string","enum":["high"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["low"]}]},"title":{"type":"string"},"description":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["active"]},{"type":"string","enum":["resolved"]}]},"firstSeenScanIndex":{"type":"number"},"lastSeenScanIndex":{"type":"number"},"gated":{"type":"boolean"},"logicalSkill":{"anyOf":[{"type":"object","required":["id","name","scm","canonicalRepo","canonicalName","category","bodyExcerpt","body","frontmatter","instanceCount","registryWorkspaceName","registrySkillName","registryTesslUrl"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"scm":{"type":"string"},"canonicalRepo":{"type":"string"},"canonicalName":{"type":"string"},"category":{"anyOf":[{"type":"string","enum":["first-party"]},{"type":"string","enum":["third-party"]},{"type":"string","enum":["unknown"]}]},"bodyExcerpt":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"frontmatter":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"instanceCount":{"type":"number"},"registryWorkspaceName":{"anyOf":[{"type":"string"},{"type":"null"}]},"registrySkillName":{"anyOf":[{"type":"string"},{"type":"null"}]},"registryTesslUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"skillInstance":{"anyOf":[{"type":"object","required":["id","name","path","party","frontmatterError","body","frontmatter","agents","lastModified","repoFullName","repoDefaultBranch","repoUrl"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"path":{"type":"string"},"party":{"anyOf":[{"type":"string","enum":["first-party"]},{"type":"string","enum":["third-party"]},{"type":"string","enum":["unknown"]}]},"frontmatterError":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"frontmatter":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"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"},"repoDefaultBranch":{"type":"string"},"repoUrl":{"type":"string"}}},{"type":"null"}]},"clusterMembers":{"type":"array","items":{"type":"object","required":["id","name","scm","canonicalRepo","canonicalName","category","bodyExcerpt","body","frontmatter","instanceCount","registryWorkspaceName","registrySkillName","registryTesslUrl"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"scm":{"type":"string"},"canonicalRepo":{"type":"string"},"canonicalName":{"type":"string"},"category":{"anyOf":[{"type":"string","enum":["first-party"]},{"type":"string","enum":["third-party"]},{"type":"string","enum":["unknown"]}]},"bodyExcerpt":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"frontmatter":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"instanceCount":{"type":"number"},"registryWorkspaceName":{"anyOf":[{"type":"string"},{"type":"null"}]},"registrySkillName":{"anyOf":[{"type":"string"},{"type":"null"}]},"registryTesslUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}}}},"instances":{"type":"array","items":{"type":"object","required":["id","name","path","party","frontmatterError","agents","lastModified","repoFullName","repoUrl","repoDefaultBranch"],"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"path":{"type":"string"},"party":{"anyOf":[{"type":"string","enum":["first-party"]},{"type":"string","enum":["third-party"]},{"type":"string","enum":["unknown"]}]},"frontmatterError":{"anyOf":[{"type":"string"},{"type":"null"}]},"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"}}}}}}}}}}}}}},"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}/automatic-scanning/opt-in":{"post":{"tags":["SkillInventory"],"description":"One-time opt-in to automatic scanning for a skill inventory. Once opted in, the inventory is covered by the daily scheduled re-scan sweep. This is independent of the private-indexing opt-in: a swept scan only indexes the inventory's skills when it has also opted into private indexing. Returns 409 (already_opted_in) when the inventory has already opted in.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":["automaticScanningOptedInAt"],"properties":{"automaticScanningOptedInAt":{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/private-indexing/opt-in":{"post":{"tags":["SkillInventory"],"description":"One-time opt-in to private skill indexing for a skill inventory. Guarded by the inventory's SCM connection readiness check. Returns 422 when the connection is not ready — the error message is the machine-readable, provider-namespaced reason (e.g. github_app_not_installed, github_app_account_mismatch, github_app_unhealthy for GitHub; bitbucket_not_connected, bitbucket_reconnect_required, bitbucket_workspace_mismatch for Bitbucket; gitlab_not_connected, gitlab_scope_mismatch for GitLab) — and 409 (already_opted_in) when the inventory has already opted in. On success it asynchronously starts the private skill indexing workflow for the latest scan (if any).","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":["privateIndexingOptedInAt"],"properties":{"privateIndexingOptedInAt":{"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"}}}}}}}},"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/private-indexing/reindex":{"post":{"tags":["SkillInventory"],"description":"Re-triggers private skill indexing for the latest scan of a workspace-scoped skill inventory. Only valid once the inventory has opted in to private indexing (409 not_opted_in otherwise) and when a scan exists to index (409 no_scan_to_reindex otherwise). The trigger is idempotent per scan: if a run for the latest scan is already in flight it returns status 'already_running' rather than starting a second one.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":["scanId","workflowId","status"],"properties":{"scanId":{"format":"uuid","type":"string"},"workflowId":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["started"]},{"type":"string","enum":["already_running"]}]}}}}}}}}}},"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"}}}}}}}},"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"}}}}}}}},"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/private-indexing/unapproved-skills":{"get":{"tags":["SkillInventory"],"description":"Paginated list of the inventory's pending first-party logical skills still awaiting an approval decision, scoped to the latest scan. Each row carries the skill's name, description and footprint (repo/instance counts). Sortable by canonical name or repo.","parameters":[{"schema":{"default":"canonicalName","anyOf":[{"type":"array","items":{"anyOf":[{"type":"string","enum":["canonicalName"]},{"type":"string","enum":["-canonicalName"]},{"type":"string","enum":["canonicalRepo"]},{"type":"string","enum":["-canonicalRepo"]}]}},{"anyOf":[{"type":"string","enum":["canonicalName"]},{"type":"string","enum":["-canonicalName"]},{"type":"string","enum":["canonicalRepo"]},{"type":"string","enum":["-canonicalRepo"]}]}]},"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":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-unapproved-skill"]},"attributes":{"type":"object","required":["name","canonicalName","canonicalRepo","description","repoCount","instanceCount"],"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"canonicalName":{"type":"string"},"canonicalRepo":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"repoCount":{"type":"number"},"instanceCount":{"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/{workspaceNameOrID}/skill-inventories/{id}/private-indexing/approve-skills":{"post":{"tags":["SkillInventory"],"description":"Approves a selection of the inventory's pending first-party logical skills, assigning each to a target workspace, and triggers private indexing of the latest scan so the newly approved skills are indexed. Each item's target workspace must be one the actor may assign skills to (edit permission) and must belong to the same org as the inventory owner; a 404 is returned for one that is not editable and a 400 (workspace_cross_org) for one in another org. Duplicate logicalSkillId entries are rejected (400 duplicate_skills). Indexing is only triggered once the inventory has opted into private indexing — approvals are still recorded otherwise (attributes.indexing = \"skipped\"). Approvals are durable once committed: if starting the indexing workflow fails the request still succeeds and attributes.indexing reports \"unavailable\" or \"failed\" so the client can retry indexing without re-approving.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"object","required":["logicalSkillId","workspaceId"],"properties":{"logicalSkillId":{"format":"uuid","type":"string"},"workspaceId":{"format":"uuid","type":"string"}}}}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":["approvedCount","indexing"],"properties":{"approvedCount":{"type":"number"},"indexing":{"anyOf":[{"type":"string","enum":["started"]},{"type":"string","enum":["already_running"]},{"type":"string","enum":["no_scan"]},{"type":"string","enum":["skipped"]},{"type":"string","enum":["unavailable"]},{"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"}}}}}}}}}}},"/v1/workspaces/{workspaceNameOrID}/skill-inventories/{id}/private-indexing/preferences":{"get":{"tags":["SkillInventory"],"description":"Reads the inventory's indexing preferences: whether newly discovered first-party skills are auto-approved, and the default workspace they are assigned to when they are.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-indexing-preferences"]},"attributes":{"type":"object","required":["autoApproveNewSkills","defaultTargetWorkspaceId"],"properties":{"autoApproveNewSkills":{"type":"boolean"},"defaultTargetWorkspaceId":{"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"}}}}}}}}}},"put":{"tags":["SkillInventory"],"description":"Updates the inventory's indexing preferences. Only the supplied fields are written, so `autoApproveNewSkills` and `defaultTargetWorkspaceId` can be changed independently. Setting a non-null `defaultTargetWorkspaceId` requires edit permission on that workspace (404 otherwise) — newly auto-approved skills are assigned into it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"autoApproveNewSkills":{"type":"boolean"},"defaultTargetWorkspaceId":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}]}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-indexing-preferences"]},"attributes":{"type":"object","required":["autoApproveNewSkills","defaultTargetWorkspaceId"],"properties":{"autoApproveNewSkills":{"type":"boolean"},"defaultTargetWorkspaceId":{"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/workspaces/{workspaceNameOrID}/skill-inventories/{id}/ignored-repos":{"get":{"tags":["SkillInventory"],"description":"Returns the list of ignored repos for a skill inventory.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-ignored-repo"]},"attributes":{"type":"object","required":["fullName"],"properties":{"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"}}}}}}}}}},"post":{"tags":["SkillInventory"],"description":"Ignores repos from a skill inventory, deleting their scanned data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["fullNames"],"properties":{"fullNames":{"minItems":1,"maxItems":100,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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"}}}}}}}}}},"delete":{"tags":["SkillInventory"],"description":"Un-ignores repos from a skill inventory.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["fullNames"],"properties":{"fullNames":{"minItems":1,"maxItems":100,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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}/skill-inventories/{id}/rescan":{"post":{"tags":["SkillInventory"],"description":"Starts an on-demand re-scan of a skill inventory (the \"scan now\" action). Requires publisher rights on the workspace and that the inventory has opted into automatic scanning. Returns 409 (not_opted_in) when the inventory has not opted in, and 409 (indexing_in_flight, analysis_in_flight, or rescan_in_flight) when a scan or index is already running for the inventory — the operation is idempotent, so a duplicate trigger never stacks a second scan. The route only starts the workflow; the scan, persist, and follow-up indexing run inside it.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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"}}}}}}}}}}},"/v1/workspaces/{workspaceNameOrID}/skill-inventories/import":{"post":{"tags":["SkillInventory"],"description":"Provider-agnostic web-onboarding import: creates (or resolves) the workspace's skill inventory for the given SCM provider — deriving the org-equivalent from the connected integration — and kicks its first scan. Supports GitHub, GitLab, Bitbucket, and the dev-only MockHub; the scan itself is already provider-aware via the inventory's stored provider. Returns 400 when the workspace has no connected integration for the provider, 409 when a scan or analysis is already in flight, 503 when the workflow engine could not accept the scan, and 404 when the onboarding feature flag is off. Returns the inventory id and the dispatched scan index so the UI can navigate to the progress screen. The route only starts the workflow; the scan, persist, and analysis run inside it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["provider"],"properties":{"provider":{"anyOf":[{"type":"string","enum":["github"]},{"type":"string","enum":["gitlab"]},{"type":"string","enum":["bitbucket"]},{"type":"string","enum":["mockhub"]}]},"repoNames":{"minItems":1,"maxItems":100,"type":"array","items":{"minLength":1,"type":"string"}}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceNameOrID","required":true},{"schema":{"type":"string"},"example":"Bearer ","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["inventoryId","scanIndex"],"properties":{"inventoryId":{"format":"uuid","type":"string"},"scanIndex":{"type":"number"}}}}}},"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"}}}}}}}},"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/curated-lists/{slug}":{"get":{"tags":["Curated Lists"],"parameters":[{"schema":{"minLength":1,"maxLength":100,"type":"string"},"in":"path","name":"slug","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":{"anyOf":[{"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","describes","featured","isPrivate","createdAt","updatedAt","score","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"}]}}}},"score":{"anyOf":[{"type":"integer"},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","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":{"anyOf":[{"anyOf":[{"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"}}}}}}}}},"meta":{"type":"object","additionalProperties":{"anyOf":[{"type":"number"},{"type":"boolean"},{"type":"string"}]}}}},{"type":"object","required":["id","type","attributes","meta"],"properties":{"id":{"format":"uuid","type":"string"},"type":{"type":"string","enum":["skill"]},"attributes":{"type":"object","required":["name","description","sourceUrl","path","featured","createdAt","updatedAt","score","scores","validationPassed"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"sourceUrl":{"anyOf":[{"type":"string","enum":[""]},{"format":"uri","minLength":1,"type":"string"}]},"path":{"type":"string"},"featured":{"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"}}}},"score":{"anyOf":[{"type":"integer"},{"type":"null"}]},"scores":{"type":"object","required":["version","aggregate","quality","impact","security","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":{"anyOf":[{"anyOf":[{"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"}]}}},"validationPassed":{"anyOf":[{"type":"boolean"},{"type":"null"}]}}},"meta":{"type":"object","additionalProperties":{"anyOf":[{"type":"number"},{"type":"boolean"},{"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 SCM, or tessl-registry without owner/repo) 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","name","description"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"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","gone"],"properties":{"liveOccurrenceCount":{"type":"integer"},"firstSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"gone":{"type":"boolean"}}},"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","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","name","description"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"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","gone"],"properties":{"liveOccurrenceCount":{"type":"integer"},"firstSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"gone":{"type":"boolean"}}},"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}":{"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","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","name","description"],"properties":{"versionId":{"format":"uuid","type":"string"},"fingerprintAlgo":{"type":"string"},"fingerprint":{"type":"string"},"bodyFingerprint":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"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","gone"],"properties":{"liveOccurrenceCount":{"type":"integer"},"firstSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"gone":{"type":"boolean"}}},"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/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 ","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"}}}}},"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":[{"type":"object","additionalProperties":{}},{"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"}}},{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending"]}}}]}},"activation":{"type":"object","required":["activatedSkills"],"properties":{"activatedSkills":{"type":"array","items":{"type":"string"}}}}}}}}}},"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 ","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 Temporal workflow 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 ","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 ","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 ","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.","parameters":[{"schema":{"type":"string"},"example":"Bearer ","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","default"],"properties":{"agents":{"type":"array","items":{"type":"object","required":["name","models"],"properties":{"name":{"type":"string"},"models":{"type":"array","items":{"type":"string"}}}}},"default":{"type":"object","required":["agent","model"],"properties":{"agent":{"type":"string"},"model":{"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/repo-results":{"get":{"tags":["Evals"],"description":"Removed — always returns 410. Use GET /eval-runs/:id instead.","parameters":[{"schema":{"type":"string"},"example":"Bearer ","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 ","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 ","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 ","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 ","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`); fetch `/download` for the full content.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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"},"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 ","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 ","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 combined environment: a LiteLLM API key, the LLM gateway base URL, and telemetry credentials.","parameters":[{"schema":{"type":"string"},"example":"Bearer ","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/llm-key":{"get":{"tags":["CLI"],"description":"Issues a LiteLLM API key for direct-to-LLM traffic. The key is unrestricted, unscoped, and valid for 30 days.","parameters":[{"schema":{"type":"string"},"example":"Bearer ","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}/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 ","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 ","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 ","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","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":{"anyOf":[{"anyOf":[{"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","featured","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"},"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":["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","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":{"anyOf":[{"anyOf":[{"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":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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","secretId"],"properties":{"scopeType":{"type":"string","enum":["group"]},"host":{"type":"string"},"groupPath":{"type":"string"},"secretId":{"type":"string"}}},{"type":"object","required":["scopeType","host","projectPath","secretId"],"properties":{"scopeType":{"type":"string","enum":["project"]},"host":{"type":"string"},"projectPath":{"type":"string"},"secretId":{"type":"string"}}}]},"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":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"in":"path","name":"integrationId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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 the connectionData on a Linear integration. `targetRepo` and `taskDelegation` are independently editable; pass `null` to clear either. Writing `taskDelegation` requires the `linear-task-mirroring` feature flag.","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 ","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 ","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":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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 ","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. 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":{"repositories":{"minItems":1,"type":"array","items":{"minLength":1,"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 ","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 Sync `github-app` 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 ","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 ","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":{"type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":{"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":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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 ","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 ","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 ","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 ","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 ","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 ","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}/analytics":{"get":{"tags":["Workspaces"],"description":"Returns workspace-scoped analytics: total publishes and installs in the last 30 days, plus a week-on-week delta. Shape will evolve while this lives under /experimental.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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-analytics"]},"attributes":{"type":"object","required":["window","publishes","installs"],"properties":{"window":{"type":"object","required":["days"],"properties":{"days":{"type":"integer"}}},"publishes":{"type":"object","required":["total","weekDelta","byTile","recent"],"properties":{"total":{"type":"integer"},"weekDelta":{"type":"object","required":["current","previous"],"properties":{"current":{"type":"integer"},"previous":{"type":"integer"}}},"byTile":{"type":"array","items":{"type":"object","required":["tileName","count"],"properties":{"tileName":{"type":"string"},"count":{"type":"integer"}}}},"recent":{"type":"array","items":{"type":"object","required":["tileName","version","user","createdAt"],"properties":{"tileName":{"type":"string"},"version":{"type":"string"},"user":{"anyOf":[{"type":"object","required":["name","email"],"properties":{"name":{"type":"string"},"email":{"type":"string"}}},{"type":"null"}]},"createdAt":{"format":"date-time","type":"string"}}}}}},"installs":{"anyOf":[{"type":"object","required":["total","weekDelta","byTile","recent"],"properties":{"total":{"type":"integer"},"weekDelta":{"type":"object","required":["current","previous"],"properties":{"current":{"type":"integer"},"previous":{"type":"integer"}}},"byTile":{"type":"array","items":{"type":"object","required":["tileName","count"],"properties":{"tileName":{"type":"string"},"count":{"type":"integer"}}}},"recent":{"type":"array","items":{"type":"object","required":["tileName","version","user","timestamp"],"properties":{"tileName":{"type":"string"},"version":{"anyOf":[{"type":"string"},{"type":"null"}]},"user":{"anyOf":[{"type":"object","required":["name","email"],"properties":{"name":{"type":"string"},"email":{"type":"string"}}},{"type":"null"}]},"timestamp":{"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"}}}}}}}}}}},"/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 ","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 ","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 ","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 ","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 ","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 ","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 (Temporal-backed compat shim)","tags":["Workspaces"],"description":"Backwards-compatible polling endpoint for CLI builds released before the workflow DB table was retired. Resolves status from the Temporal describe API; the path param is a Temporal workflow ID, not a UUID. Deprecated — new clients should poll the workflow-backed 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 ","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 ","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","obfuscatedValue","lastUsedAt","createdBy","expiryDate","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"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 ","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 ","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}/registry-keys":{"get":{"tags":["Workspaces"],"description":"Lists registry keys (npm/maven/pypi) configured for a workspace.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":["registry-key"]},"attributes":{"type":"object","required":["name","type","createdBy","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"type":{"anyOf":[{"type":"string","enum":["npm"]},{"type":"string","enum":["maven"]},{"type":"string","enum":["pypi"]}]},"createdBy":{"format":"uuid","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":["Workspaces"],"description":"Adds a registry key (npm/maven/pypi) to a workspace.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","type","value"],"properties":{"name":{"type":"string"},"type":{"anyOf":[{"type":"string","enum":["npm"]},{"type":"string","enum":["maven"]},{"type":"string","enum":["pypi"]}]},"value":{"type":"string"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":["registry-key"]},"attributes":{"type":"object","required":["name","type","createdBy","createdAt","updatedAt"],"properties":{"name":{"type":"string"},"type":{"anyOf":[{"type":"string","enum":["npm"]},{"type":"string","enum":["maven"]},{"type":"string","enum":["pypi"]}]},"createdBy":{"format":"uuid","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}/registry-keys/{registryKeyId}":{"delete":{"tags":["Workspaces"],"description":"Deletes a registry key from a workspace.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"in":"path","name":"registryKeyId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"example":"Bearer ","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 ","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":"Lists standalone skills with search and source-URL filters.","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]","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":"string"},"in":"query","name":"filter[sourceUrl]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl][eq]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl][ne]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl][gt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl][gte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl][lt]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl][lte]","required":false},{"schema":{"type":"string"},"in":"query","name":"filter[sourceUrl][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[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."}],"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","sourceRef","path"],"properties":{"sourceUrl":{"format":"uri","type":"string"},"sourceRef":{"minLength":1,"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 a skill-index eval workflow 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 ","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":"Lists repositories owned by an SCM owner that contain indexed skills.","parameters":[{"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":{"type":"string"},"in":"path","name":"provider","required":true},{"schema":{"type":"string"},"in":"path","name":"owner","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":["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":"Lists indexed skills in a specific repository.","parameters":[{"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":{"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}],"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","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":{"anyOf":[{"anyOf":[{"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":"Fetches a skill by provider/owner/repo/name, including reviews and security findings.","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}],"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","skillMdBody","createdAt","updatedAt","tileFullName","reviewResults","reviewScore","scores","securityStatus","securityRiskLevel","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"},"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","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"],"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","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":{"anyOf":[{"anyOf":[{"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":{"anyOf":[{"anyOf":[{"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","code","title","reasoning","issueDescription"],"properties":{"severity":{"anyOf":[{"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"}]}}}},"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":"Returns the eval suite (latest run + scenarios) for a skill identified by provider/owner/repo/name.","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}],"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":[{"type":"object","additionalProperties":{}},{"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"}}},{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending"]}}}]}},"activation":{"type":"object","required":["activatedSkills"],"properties":{"activatedSkills":{"type":"array","items":{"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"}]},"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":{"type":"string"},"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":{}}}}}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer ","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 ","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"],"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"}}}}}},"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 ","in":"header","name":"Authorization","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["review","validation"],"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"],"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"},"normalizedScore":{"type":"number"}}},"contentJudge":{"type":"object","required":["success"],"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"},"normalizedScore":{"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 the review workflow.","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 ","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 ","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 ","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 ","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 the security-review workflow.","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 ","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 ","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","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":{"anyOf":[{"anyOf":[{"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","findings"],"properties":{"verdict":{"anyOf":[{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]}]},"overallSeverity":{"anyOf":[{"anyOf":[{"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","code","title","reasoning","issueDescription"],"properties":{"severity":{"anyOf":[{"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"}]}}}}}},{"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/reviews":{"get":{"tags":["Reviews"],"description":"Lists review runs from both the quality and security tables, 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 ","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"}}}}}}}},{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","overallSeverity","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":{"anyOf":[{"anyOf":[{"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","findings"],"properties":{"verdict":{"anyOf":[{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]}]},"overallSeverity":{"anyOf":[{"anyOf":[{"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","code","title","reasoning","issueDescription"],"properties":{"severity":{"anyOf":[{"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"}]}}}}}},{"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/reviews/{id}":{"get":{"tags":["Reviews"],"description":"Gets a review run by ID, resolving its kind across the quality and security tables.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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"}}}}}}}},{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","overallSeverity","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":{"anyOf":[{"anyOf":[{"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","findings"],"properties":{"verdict":{"anyOf":[{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]}]},"overallSeverity":{"anyOf":[{"anyOf":[{"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","code","title","reasoning","issueDescription"],"properties":{"severity":{"anyOf":[{"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"}]}}}}}},{"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/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 ","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"}}}}}}}},{"type":"object","required":["kind","status","workflowId","workspaceId","createdBy","overallSeverity","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":{"anyOf":[{"anyOf":[{"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","findings"],"properties":{"verdict":{"anyOf":[{"type":"string","enum":["pass"]},{"type":"string","enum":["fail"]}]},"overallSeverity":{"anyOf":[{"anyOf":[{"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","code","title","reasoning","issueDescription"],"properties":{"severity":{"anyOf":[{"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"}]}}}}}},{"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/fix-runs":{"post":{"tags":["Fix Runs"],"description":"Creates a new fix run and starts the iterative improve→review workflow.","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":100,"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 ","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 ","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: cancels its Temporal workflow so in-flight sandbox 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 ","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 ","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 the CloudLaunch workflow against 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"},"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. Mutually exclusive with `encryptedEnvUpload`.","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"},"label":{"maxLength":256,"type":"string"},"metadata":{"type":"object","additionalProperties":{}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer ","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"]}]},"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"]}]},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"example":"Bearer ","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","hasResult"],"properties":{"status":{"anyOf":[{"type":"string","enum":["pending"]},{"type":"string","enum":["completed"]},{"type":"string","enum":["failed"]}]},"config":{"type":"object","required":["skillRef","repoUrl","agent","model"],"properties":{"skillRef":{"type":"string"},"repoUrl":{"type":"string"},"agent":{"type":"string"},"model":{"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"},"failureReason":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"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 that reruns the CloudLaunch recipe 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 ","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"]}]},"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}":{"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 ","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"],"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"}]},"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"]}]}}},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"type":"object","additionalProperties":{}},"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"}}}}}},"failureReason":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"string"},"failedTaskNames":{"type":"array","items":{"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}/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 ","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":true,"type":"object","properties":{"description":{"type":"string"},"envVariableNames":{"type":"array","items":{"type":"string"}}}}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer ","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","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"}}}},{"type":"null"}]},"keyNames":{"type":"array","items":{"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"}}}}}}}}}},"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 ","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","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"}}}},{"type":"null"}]},"keyNames":{"type":"array","items":{"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/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 ","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","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"}}}},{"type":"null"}]},"keyNames":{"type":"array","items":{"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"}}}}}}}}}},"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":true,"type":"object","properties":{"description":{"type":"string"},"envVariableNames":{"type":"array","items":{"type":"string"}}}}}}}}},"parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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","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"}}}},{"type":"null"}]},"keyNames":{"type":"array","items":{"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":["Environments"],"description":"Deletes an environment by ID.","parameters":[{"schema":{"format":"uuid","type":"string"},"in":"path","name":"id","required":true},{"schema":{"type":"string"},"example":"Bearer ","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 ","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 ","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 ","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"}}},"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":{"type":"object","required":["text"],"properties":{"text":{"minLength":1,"type":"string"}}},"startImmediately":{"type":"boolean"}}}}}},"parameters":[{"schema":{"type":"string"},"example":"Bearer ","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"]}]},"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"}}},"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":["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"]}]},"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"}}},"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"]}]},"in":"query","name":"filter[status]","required":false},{"schema":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]}]},"in":"query","name":"filter[status][eq]","required":false},{"schema":{"type":"string"},"example":"Bearer ","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"]}]},"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"}}},"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 ","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","currentRun","pendingInputCount","links","latestEvents","workspaceName","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]}]},"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"}}},"inputs":{"type":"object","additionalProperties":{}},"currentRun":{"anyOf":[{"type":"object","required":["id","status"],"properties":{"id":{"format":"uuid","type":"string"},"status":{"type":"string"},"progress":{"type":"object","additionalProperties":{}}}},{"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"}}},"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"}}}}}},{"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 ","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","currentRun","pendingInputCount","links","latestEvents","workspaceName","createdAt","updatedAt"],"properties":{"status":{"anyOf":[{"type":"string","enum":["running"]},{"type":"string","enum":["waiting_for_input"]},{"type":"string","enum":["cancelled"]}]},"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"}}},"inputs":{"type":"object","additionalProperties":{}},"currentRun":{"anyOf":[{"type":"object","required":["id","status"],"properties":{"id":{"format":"uuid","type":"string"},"status":{"type":"string"},"progress":{"type":"object","additionalProperties":{}}}},{"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"}}},"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"}}}}}},{"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 ","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"}}},"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"}}}}}},{"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 ","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"}}},"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"}}}}}},{"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"]}]},"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":"Thin sugar over POST /tasks/{id}/events that fires exactly one `user_input.received`.","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 ","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"}}},"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"}}}}}},{"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"]}]},"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 ","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"}}}},"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: terminates the current run's Temporal workflow (if any), emits `task.cancelled`, and sets 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 ","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"]}]},"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"}}},"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},{"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 ","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"}}},"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"}}}}}},{"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 ","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 ","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 ","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 ","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":"Curated Lists","description":"Curated tile lists and items."},{"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."}]}