{"components":{"parameters":{"ClientPortal":{"description":"The agency Workspace ID for a signed-in client's portal requests. A verified user session and portal membership are required; API keys cannot authenticate portal access. This header does not grant agency administration access.","in":"header","name":"X-Client-Portal","required":false,"schema":{"type":"string"}},"OrganizationId":{"description":"The workspace (organization) to act in. Omitted, the session's active organization is used.","in":"header","name":"X-Organization-Id","required":false,"schema":{"type":"string"},"example":"YOUR_WORKSPACE_ID"}},"schemas":{"ActivatePack":{"properties":{"packName":{"maxLength":100,"minLength":1,"type":"string"}},"required":["packName"],"type":"object"},"ActivityEvent":{"properties":{"actorId":{"type":["string","null"]},"actorType":{"enum":["system","user","agent"],"type":"string"},"entityId":{"type":"string"},"entityType":{"enum":["cycle","task","project","agent_run","approval"],"type":"string"},"eventType":{"type":"string"},"id":{"type":"string"},"organizationId":{"type":"string"},"payload":{},"spanId":{"type":["string","null"]},"timestamp":{"type":"string"},"traceId":{"type":["string","null"]}},"required":["id","organizationId","entityType","entityId","eventType","payload","actorType","actorId","traceId","spanId","timestamp"],"type":"object"},"ActivitySummary":{"properties":{"actors":{"items":{"properties":{"actorId":{"type":["string","null"]},"actorType":{"enum":["system","user","agent"],"type":"string"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["actorType","actorId","count"],"type":"object"},"type":"array"},"daily":{"items":{"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"date":{"type":"string"}},"required":["date","count"],"type":"object"},"type":"array"},"eventTypes":{"items":{"properties":{"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"eventType":{"type":"string"}},"required":["eventType","count"],"type":"object"},"type":"array"},"period":{"properties":{"days":{"anyOf":[{"const":7,"type":"number"},{"const":30,"type":"number"},{"const":90,"type":"number"},{"const":365,"type":"number"}]},"from":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"to":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"}},"required":["days","from","to"],"type":"object"},"total":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["period","total","daily","actors","eventTypes"],"type":"object"},"AddGrowthIndexLeads":{"additionalProperties":false,"properties":{"domains":{"default":[],"items":{"maxLength":253,"type":"string"},"maxItems":500,"type":"array"},"personIds":{"default":[],"items":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"maxItems":500,"type":"array"}},"type":"object"},"AddGrowthSuppressions":{"additionalProperties":false,"properties":{"entries":{"items":{"maxLength":320,"type":"string"},"maxItems":5000,"minItems":1,"type":"array"}},"required":["entries"],"type":"object"},"AddTaskComment":{"properties":{"body":{"maxLength":10000,"minLength":1,"type":"string"},"messageId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["body"],"type":"object"},"AdjustBillable":{"additionalProperties":false,"properties":{"description":{"maxLength":500,"minLength":1,"type":"string"},"note":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}]},"quantity":{"type":"number"},"unit":{"maxLength":50,"minLength":1,"type":"string"},"unitPriceMicros":{"format":"int64","maximum":1000000000000,"minimum":0,"type":"integer"}},"required":["unit","quantity","unitPriceMicros","description"],"type":"object"},"AgencyBillingProfileCleared":{"properties":{"ok":{"const":true,"type":"boolean"}},"required":["ok"],"type":"object"},"AgencyBillingProfileState":{"properties":{"branded":{"type":"boolean"},"profile":{"anyOf":[{"properties":{"address":{"type":"string"},"brandColor":{"type":["string","null"]},"contactEmail":{"type":["string","null"]},"createdAt":{"type":"string"},"defaultPaymentTerms":{"type":["string","null"]},"invoiceFooter":{"type":["string","null"]},"legalName":{"type":"string"},"logoMediaType":{"type":["string","null"]},"organizationId":{"type":"string"},"taxId":{"type":["string","null"]},"updatedAt":{"type":"string"},"updatedBy":{"type":"string"}},"required":["organizationId","legalName","address","taxId","contactEmail","logoMediaType","brandColor","defaultPaymentTerms","invoiceFooter","updatedBy","updatedAt","createdAt"],"type":"object"},{"type":"null"}]}},"required":["profile","branded"],"type":"object"},"AgencyBillingReport":{"properties":{"billing":{"properties":{"averageDaysToPayment":{"type":["number","null"]},"collected":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"drafts":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"issued":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"outstanding":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"overdue":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"overdueAging":{"properties":{"days1To30":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"days31To60":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"days61To90":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"days91Plus":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"}},"required":["days1To30","days31To60","days61To90","days91Plus"],"type":"object"},"unbilled":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"}},"required":["issued","collected","outstanding","overdue","drafts","unbilled","overdueAging","averageDaysToPayment"],"type":"object"},"generatedAt":{"type":"string"},"period":{"properties":{"days":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to","days"],"type":"object"}},"required":["generatedAt","period","billing"],"type":"object"},"AgencyOverviewReport":{"properties":{"attention":{"items":{"properties":{"actionPath":{"type":"string"},"attentionItem":{"properties":{"cycleId":{"type":["string","null"]},"id":{"type":["string","null"]},"kind":{"enum":["approval","plan","budget","resume","setup","vault","public_link_requested","merge"],"type":"string"},"name":{"type":["string","null"]},"reason":{"anyOf":[{"enum":["credit","limit","cap"],"type":"string"},{"type":"null"}]}},"required":["kind","id","cycleId","reason","name"],"type":"object"},"createdAt":{"type":"string"},"customerId":{"type":"string"},"detail":{"type":"string"},"id":{"type":"string"},"invoiceId":{"type":"string"},"kind":{"enum":["approval","budget","delivery","deployment","invoice","stale","assignment"],"type":"string"},"projectId":{"type":"string"},"severity":{"enum":["critical","warning","info"],"type":"string"},"title":{"type":"string"}},"required":["id","kind","severity","title","detail","createdAt"],"type":"object"},"type":"array"},"billing":{"properties":{"averageDaysToPayment":{"type":["number","null"]},"collected":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"drafts":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"issued":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"outstanding":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"overdue":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"overdueAging":{"properties":{"days1To30":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"days31To60":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"days61To90":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"days91Plus":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"}},"required":["days1To30","days31To60","days61To90","days91Plus"],"type":"object"},"unbilled":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"}},"required":["issued","collected","outstanding","overdue","drafts","unbilled","overdueAging","averageDaysToPayment"],"type":"object"},"customers":{"items":{"properties":{"activeProjectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"atRiskProjectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"billed":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"id":{"type":"string"},"lastActivityAt":{"type":["string","null"]},"name":{"type":"string"},"outstanding":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"overdue":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"pendingClientDecisions":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"projectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"status":{"enum":["active","archived"],"type":"string"}},"required":["id","name","status","projectCount","activeProjectCount","atRiskProjectCount","pendingClientDecisions","lastActivityAt","billed","outstanding","overdue"],"type":"object"},"type":"array"},"generatedAt":{"type":"string"},"period":{"properties":{"days":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to","days"],"type":"object"},"projects":{"items":{"properties":{"activeWork":{"type":"boolean"},"agents":{"properties":{"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"failed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"running":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["running","failed","costMicros"],"type":"object"},"approvals":{"properties":{"oldestPendingAt":{"type":["string","null"]},"pending":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"waitingOnClient":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["pending","waitingOnClient","oldestPendingAt"],"type":"object"},"attention":{"items":{"properties":{"cycleId":{"type":["string","null"]},"id":{"type":["string","null"]},"kind":{"enum":["approval","plan","budget","resume","setup","vault","public_link_requested","merge"],"type":"string"},"name":{"type":["string","null"]},"reason":{"anyOf":[{"enum":["credit","limit","cap"],"type":"string"},{"type":"null"}]}},"required":["kind","id","cycleId","reason","name"],"type":"object"},"type":"array"},"clientAccountId":{"type":["string","null"]},"clientName":{"type":["string","null"]},"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycles":{"properties":{"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"failed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"total":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["total","completed","failed"],"type":"object"},"deployments":{"properties":{"failed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"ready":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["failed","ready"],"type":"object"},"health":{"properties":{"reasons":{"items":{"properties":{"ageDays":{"type":"number"},"code":{"enum":["failed-cycles","failed-tasks","failed-deployments","blocked-tasks","failed-agent-runs","budget-exhausted","budget-near","approval-overdue","pending-approvals","stale-activity"],"type":"string"},"count":{"type":"number"},"ratio":{"type":"number"},"severity":{"enum":["critical","warning"],"type":"string"}},"required":["code","severity"],"type":"object"},"type":"array"},"status":{"enum":["healthy","attention","at-risk"],"type":"string"}},"required":["status","reasons"],"type":"object"},"id":{"type":"string"},"lastActivityAt":{"type":["string","null"]},"name":{"type":"string"},"tasks":{"properties":{"active":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"blocked":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"failed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"total":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["total","active","blocked","failed","completed"],"type":"object"}},"required":["id","name","clientAccountId","clientName","health","cycles","tasks","agents","approvals","deployments","costCapMicros","lastActivityAt","activeWork","attention"],"type":"object"},"type":"array"},"scope":{"const":"organization","type":"string"},"summary":{"properties":{"activeProjectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"customerCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"customersWithActiveWork":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"pendingDecisions":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"projectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"projectsNeedingAttention":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["customerCount","customersWithActiveWork","projectCount","activeProjectCount","projectsNeedingAttention","pendingDecisions"],"type":"object"},"usage":{"properties":{"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"runs":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"tokensIn":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"tokensOut":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["costMicros","runs","tokensIn","tokensOut"],"type":"object"}},"required":["scope","generatedAt","period","summary","attention","customers","projects","billing","usage"],"type":"object"},"AgencyProjectsReport":{"properties":{"generatedAt":{"type":"string"},"period":{"properties":{"days":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to","days"],"type":"object"},"projects":{"items":{"properties":{"activeWork":{"type":"boolean"},"agents":{"properties":{"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"failed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"running":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["running","failed","costMicros"],"type":"object"},"approvals":{"properties":{"oldestPendingAt":{"type":["string","null"]},"pending":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"waitingOnClient":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["pending","waitingOnClient","oldestPendingAt"],"type":"object"},"attention":{"items":{"properties":{"cycleId":{"type":["string","null"]},"id":{"type":["string","null"]},"kind":{"enum":["approval","plan","budget","resume","setup","vault","public_link_requested","merge"],"type":"string"},"name":{"type":["string","null"]},"reason":{"anyOf":[{"enum":["credit","limit","cap"],"type":"string"},{"type":"null"}]}},"required":["kind","id","cycleId","reason","name"],"type":"object"},"type":"array"},"clientAccountId":{"type":["string","null"]},"clientName":{"type":["string","null"]},"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycles":{"properties":{"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"failed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"total":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["total","completed","failed"],"type":"object"},"deployments":{"properties":{"failed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"ready":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["failed","ready"],"type":"object"},"health":{"properties":{"reasons":{"items":{"properties":{"ageDays":{"type":"number"},"code":{"enum":["failed-cycles","failed-tasks","failed-deployments","blocked-tasks","failed-agent-runs","budget-exhausted","budget-near","approval-overdue","pending-approvals","stale-activity"],"type":"string"},"count":{"type":"number"},"ratio":{"type":"number"},"severity":{"enum":["critical","warning"],"type":"string"}},"required":["code","severity"],"type":"object"},"type":"array"},"status":{"enum":["healthy","attention","at-risk"],"type":"string"}},"required":["status","reasons"],"type":"object"},"id":{"type":"string"},"lastActivityAt":{"type":["string","null"]},"name":{"type":"string"},"tasks":{"properties":{"active":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"blocked":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"failed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"total":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["total","active","blocked","failed","completed"],"type":"object"}},"required":["id","name","clientAccountId","clientName","health","cycles","tasks","agents","approvals","deployments","costCapMicros","lastActivityAt","activeWork","attention"],"type":"object"},"type":"array"}},"required":["generatedAt","period","projects"],"type":"object"},"Agent":{"properties":{"avatarImageKey":{"type":["string","null"]},"avatarKey":{"type":["string","null"]},"avatarUrl":{"type":["string","null"]},"coder":{"anyOf":[{"enum":["claude-code","openai-agents","codex","aider","opencode","goose","qwen-code","pi","hlix"],"type":"string"},{"type":"null"}]},"contextOverlay":{},"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"description":{"type":["string","null"]},"duty":{"enum":["build","triage"],"type":"string"},"id":{"type":"string"},"instructions":{"type":["string","null"]},"isActive":{"type":"boolean"},"modelOverride":{"type":["string","null"]},"name":{"type":"string"},"organizationId":{"type":"string"},"preRunHooks":{},"projectId":{"type":["string","null"]},"reviewSet":{"enum":["default","full","docs","security","lint"],"type":"string"},"runtimeVersion":{"type":["string","null"]},"toolConfig":{},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","name","description","coder","runtimeVersion","reviewSet","duty","contextOverlay","toolConfig","preRunHooks","modelOverride","instructions","avatarUrl","avatarKey","avatarImageKey","createdByUserId","isActive","createdAt","updatedAt"],"type":"object"},"AgentAvatarImage":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"AgentRun":{"properties":{"accountingSource":{"anyOf":[{"enum":["proxy","driver"],"type":"string"},{"type":"null"}]},"agentKind":{"enum":["plan","build","review","project_manager"],"type":"string"},"billedTo":{"anyOf":[{"enum":["workspace_key","hlix"],"type":"string"},{"type":"null"}]},"billingMarkupBps":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"billingProjectKind":{"type":["string","null"]},"coderAccountId":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"credentialKind":{"anyOf":[{"enum":["api_key","subscription"],"type":"string"},{"type":"null"}]},"cycleId":{"type":["string","null"]},"cycleRunId":{"type":["string","null"]},"fundingMode":{"anyOf":[{"enum":["managed","api_key","subscription"],"type":"string"},{"type":"null"}]},"id":{"type":"string"},"inputSnapshot":{"type":["string","null"]},"iteration":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"model":{"type":"string"},"organizationId":{"type":"string"},"outputSnapshot":{"type":["string","null"]},"parentRunId":{"type":["string","null"]},"projectId":{"type":["string","null"]},"promptKey":{"type":["string","null"]},"spanId":{"type":["string","null"]},"startedAt":{"type":"string"},"status":{"enum":["running","completed","failed"],"type":"string"},"taskId":{"type":["string","null"]},"tokensIn":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"tokensOut":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"traceId":{"type":["string","null"]},"usageCompleteness":{"anyOf":[{"enum":["unknown","partial","complete"],"type":"string"},{"type":"null"}]},"usageSequence":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]}},"required":["id","organizationId","taskId","projectId","billingProjectKind","billingMarkupBps","cycleId","agentKind","model","status","tokensIn","tokensOut","costMicros","inputSnapshot","outputSnapshot","parentRunId","promptKey","iteration","traceId","spanId","cycleRunId","billedTo","fundingMode","coderAccountId","credentialKind","accountingSource","usageCompleteness","usageSequence","startedAt","completedAt"],"type":"object"},"AgentRunSnapshot":{"properties":{"agentKind":{"enum":["plan","build","review","project_manager"],"type":"string"},"completedAt":{"type":["string","null"]},"id":{"type":"string"},"inputSnapshot":{"type":["string","null"]},"model":{"type":"string"},"outputSnapshot":{"type":["string","null"]},"parentRunId":{"type":["string","null"]},"promptKey":{"type":["string","null"]},"startedAt":{"type":"string"},"status":{"enum":["running","completed","failed"],"type":"string"},"taskId":{"type":["string","null"]}},"required":["id","taskId","agentKind","promptKey","model","status","inputSnapshot","outputSnapshot","parentRunId","startedAt","completedAt"],"type":"object"},"AgentRunSummary":{"properties":{"accountingSource":{"anyOf":[{"enum":["proxy","driver"],"type":"string"},{"type":"null"}]},"agentKind":{"enum":["plan","build","review","project_manager"],"type":"string"},"billedTo":{"anyOf":[{"enum":["workspace_key","hlix"],"type":"string"},{"type":"null"}]},"coderAccountId":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"credentialKind":{"anyOf":[{"enum":["api_key","subscription"],"type":"string"},{"type":"null"}]},"fundingMode":{"anyOf":[{"enum":["managed","api_key","subscription"],"type":"string"},{"type":"null"}]},"id":{"type":"string"},"model":{"type":"string"},"promptKey":{"type":["string","null"]},"startedAt":{"type":"string"},"status":{"enum":["running","completed","failed"],"type":"string"},"taskId":{"type":["string","null"]},"tokensIn":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"tokensOut":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"usageCompleteness":{"anyOf":[{"enum":["unknown","partial","complete"],"type":"string"},{"type":"null"}]}},"required":["id","taskId","agentKind","promptKey","model","status","tokensIn","tokensOut","costMicros","billedTo","fundingMode","coderAccountId","credentialKind","accountingSource","usageCompleteness","startedAt","completedAt"],"type":"object"},"AgentUsageRollup":{"properties":{"byPromptKey":{"items":{"properties":{"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"count":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"incompleteUsageRuns":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"promptKey":{"type":["string","null"]},"tokensIn":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokensOut":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["count","tokensIn","tokensOut","costMicros","promptKey"],"type":"object"},"type":"array"},"byRole":{"items":{"properties":{"agentKind":{"enum":["plan","build","review","project_manager"],"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"count":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"incompleteUsageRuns":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"tokensIn":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokensOut":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["count","tokensIn","tokensOut","costMicros","agentKind"],"type":"object"},"type":"array"},"charts":{"properties":{"byModel":{"items":{"properties":{"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"model":{"type":"string"}},"required":["model","costMicros"],"type":"object"},"type":"array"},"daily":{"items":{"properties":{"creditsMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"date":{"type":"string"},"hasReportedTokens":{"type":"boolean"},"incompleteUsageRuns":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokens":{"type":"number"}},"required":["date","tokens","creditsMicros","incompleteUsageRuns","hasReportedTokens"],"type":"object"},"type":"array"},"firstRunAt":{"type":["string","null"]},"hasReportedTokens":{"type":"boolean"},"taskTokens":{"type":"number"},"tasksExecuted":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["daily","byModel","firstRunAt","hasReportedTokens","tasksExecuted","taskTokens"],"type":"object"},"totals":{"properties":{"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"count":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"incompleteUsageRuns":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"tokensIn":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokensOut":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["count","tokensIn","tokensOut","costMicros"],"type":"object"}},"required":["totals","byRole","byPromptKey"],"type":"object"},"AiBatchAccepted":{"properties":{"job":{"properties":{"completedCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"correlationId":{"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"endpoint":{"type":"string"},"error":{"type":["string","null"]},"failedCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"finalizedAt":{"type":["string","null"]},"id":{"type":"string"},"idempotencyKey":{"type":"string"},"kind":{"type":"string"},"model":{"type":"string"},"organizationId":{"type":"string"},"providerBatchId":{"type":["string","null"]},"requestCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sensitiveDataApproved":{"type":"boolean"},"status":{"enum":["pending","submitted","in_progress","completed","failed","canceled"],"type":"string"},"submittedAt":{"type":["string","null"]},"usage":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"required":["id","organizationId","kind","endpoint","model","providerBatchId","status","requestCount","completedCount","failedCount","usage","costMicros","sensitiveDataApproved","idempotencyKey","correlationId","error","createdAt","submittedAt","finalizedAt"],"type":"object"}},"required":["job"],"type":"object"},"AiBatchPoll":{"properties":{"job":{"properties":{"completedCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"correlationId":{"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"endpoint":{"type":"string"},"error":{"type":["string","null"]},"failedCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"finalizedAt":{"type":["string","null"]},"id":{"type":"string"},"idempotencyKey":{"type":"string"},"kind":{"type":"string"},"model":{"type":"string"},"organizationId":{"type":"string"},"providerBatchId":{"type":["string","null"]},"requestCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sensitiveDataApproved":{"type":"boolean"},"status":{"enum":["pending","submitted","in_progress","completed","failed","canceled"],"type":"string"},"submittedAt":{"type":["string","null"]},"usage":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"required":["id","organizationId","kind","endpoint","model","providerBatchId","status","requestCount","completedCount","failedCount","usage","costMicros","sensitiveDataApproved","idempotencyKey","correlationId","error","createdAt","submittedAt","finalizedAt"],"type":"object"},"polled":{"type":"boolean"}},"required":["job","polled"],"type":"object"},"AiBatchRead":{"properties":{"items":{"items":{"properties":{"correlationId":{"type":"string"},"createdAt":{"type":"string"},"customId":{"type":"string"},"error":{"type":["string","null"]},"id":{"type":"string"},"jobId":{"type":"string"},"organizationId":{"type":"string"},"resultKey":{"type":["string","null"]},"retryClass":{"enum":["none","retryable","permanent"],"type":"string"},"status":{"enum":["pending","succeeded","failed"],"type":"string"},"usage":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"required":["id","jobId","organizationId","customId","status","retryClass","resultKey","usage","error","correlationId","createdAt"],"type":"object"},"type":"array"},"job":{"properties":{"completedCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"correlationId":{"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"endpoint":{"type":"string"},"error":{"type":["string","null"]},"failedCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"finalizedAt":{"type":["string","null"]},"id":{"type":"string"},"idempotencyKey":{"type":"string"},"kind":{"type":"string"},"model":{"type":"string"},"organizationId":{"type":"string"},"providerBatchId":{"type":["string","null"]},"requestCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sensitiveDataApproved":{"type":"boolean"},"status":{"enum":["pending","submitted","in_progress","completed","failed","canceled"],"type":"string"},"submittedAt":{"type":["string","null"]},"usage":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"required":["id","organizationId","kind","endpoint","model","providerBatchId","status","requestCount","completedCount","failedCount","usage","costMicros","sensitiveDataApproved","idempotencyKey","correlationId","error","createdAt","submittedAt","finalizedAt"],"type":"object"},"nextCursor":{"type":["string","null"]}},"required":["job","items","nextCursor"],"type":"object"},"AiCapabilityDisabled":{"properties":{"code":{"const":"ai_capability_disabled","type":"string"},"error":{"type":"string"}},"required":["error","code"],"type":"object"},"AiDocument":{"properties":{"correlationId":{"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"critical":{"type":"boolean"},"error":{"type":["string","null"]},"extractedAt":{"type":["string","null"]},"extractedChars":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"extractedKey":{"type":["string","null"]},"id":{"type":"string"},"model":{"type":["string","null"]},"organizationId":{"type":"string"},"pageCount":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"parserEngine":{"type":"string"},"parserHash":{"type":["string","null"]},"parserVersion":{"type":["string","null"]},"projectId":{"type":["string","null"]},"quality":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]},"sourceHash":{"type":"string"},"sourceKey":{"type":["string","null"]},"sourceKind":{"enum":["url","artifact"],"type":"string"},"sourceRef":{"type":"string"},"status":{"enum":["pending","succeeded","failed","review_required"],"type":"string"},"validation":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"required":["id","organizationId","projectId","sourceKind","sourceRef","sourceKey","sourceHash","parserEngine","parserVersion","parserHash","pageCount","extractedKey","extractedChars","status","quality","validation","critical","model","costMicros","correlationId","createdAt","extractedAt","error"],"type":"object"},"AiDocumentParsed":{"properties":{"document":{"properties":{"correlationId":{"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"critical":{"type":"boolean"},"error":{"type":["string","null"]},"extractedAt":{"type":["string","null"]},"extractedChars":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"extractedKey":{"type":["string","null"]},"id":{"type":"string"},"model":{"type":["string","null"]},"organizationId":{"type":"string"},"pageCount":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"parserEngine":{"type":"string"},"parserHash":{"type":["string","null"]},"parserVersion":{"type":["string","null"]},"projectId":{"type":["string","null"]},"quality":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]},"sourceHash":{"type":"string"},"sourceKey":{"type":["string","null"]},"sourceKind":{"enum":["url","artifact"],"type":"string"},"sourceRef":{"type":"string"},"status":{"enum":["pending","succeeded","failed","review_required"],"type":"string"},"validation":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"required":["id","organizationId","projectId","sourceKind","sourceRef","sourceKey","sourceHash","parserEngine","parserVersion","parserHash","pageCount","extractedKey","extractedChars","status","quality","validation","critical","model","costMicros","correlationId","createdAt","extractedAt","error"],"type":"object"},"extractedUrl":{"type":["string","null"]},"reused":{"type":"boolean"}},"required":["document","extractedUrl","reused"],"type":"object"},"AiDocumentRead":{"properties":{"document":{"properties":{"correlationId":{"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"critical":{"type":"boolean"},"error":{"type":["string","null"]},"extractedAt":{"type":["string","null"]},"extractedChars":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"extractedKey":{"type":["string","null"]},"id":{"type":"string"},"model":{"type":["string","null"]},"organizationId":{"type":"string"},"pageCount":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"parserEngine":{"type":"string"},"parserHash":{"type":["string","null"]},"parserVersion":{"type":["string","null"]},"projectId":{"type":["string","null"]},"quality":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]},"sourceHash":{"type":"string"},"sourceKey":{"type":["string","null"]},"sourceKind":{"enum":["url","artifact"],"type":"string"},"sourceRef":{"type":"string"},"status":{"enum":["pending","succeeded","failed","review_required"],"type":"string"},"validation":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"required":["id","organizationId","projectId","sourceKind","sourceRef","sourceKey","sourceHash","parserEngine","parserVersion","parserHash","pageCount","extractedKey","extractedChars","status","quality","validation","critical","model","costMicros","correlationId","createdAt","extractedAt","error"],"type":"object"},"extractedUrl":{"type":["string","null"]}},"required":["document","extractedUrl"],"type":"object"},"AiGeneratedImages":{"properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"correlationId":{"type":"string"},"keys":{"items":{"type":"string"},"type":"array"},"model":{"type":"string"},"provider":{"type":"string"},"urls":{"items":{"type":"string"},"type":"array"},"usage":{"properties":{"cachedTokens":{"type":"number"},"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"serverToolCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"serverToolRequests":{"type":"number"}},"required":["inputTokens","outputTokens"],"type":"object"}},"required":["keys","urls","contentTypes","usage","model","correlationId"],"type":"object"},"AiInputRefused":{"properties":{"code":{"const":"ai_input_refused","type":"string"},"error":{"type":"string"}},"required":["error","code"],"type":"object"},"AiMediaJobAccepted":{"properties":{"job":{"properties":{"completedAt":{"type":["string","null"]},"correlationId":{"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"error":{"type":["string","null"]},"id":{"type":"string"},"idempotencyKey":{"type":"string"},"kind":{"enum":["video"],"type":"string"},"model":{"type":"string"},"organizationId":{"type":"string"},"outputKey":{"type":["string","null"]},"params":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"projectId":{"type":["string","null"]},"promptHash":{"type":"string"},"promptPolicyVersion":{"type":"string"},"provider":{"type":["string","null"]},"providerJobId":{"type":["string","null"]},"reviewState":{"enum":["unreviewed","approved","rejected"],"type":"string"},"status":{"enum":["pending","submitted","in_progress","completed","failed"],"type":"string"},"submittedAt":{"type":["string","null"]}},"required":["id","organizationId","projectId","kind","status","providerJobId","model","provider","promptHash","promptPolicyVersion","params","outputKey","costMicros","reviewState","idempotencyKey","correlationId","error","createdAt","submittedAt","completedAt"],"type":"object"}},"required":["job"],"type":"object"},"AiMediaJobRead":{"properties":{"job":{"properties":{"completedAt":{"type":["string","null"]},"correlationId":{"type":"string"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"error":{"type":["string","null"]},"id":{"type":"string"},"idempotencyKey":{"type":"string"},"kind":{"enum":["video"],"type":"string"},"model":{"type":"string"},"organizationId":{"type":"string"},"outputKey":{"type":["string","null"]},"params":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"projectId":{"type":["string","null"]},"promptHash":{"type":"string"},"promptPolicyVersion":{"type":"string"},"provider":{"type":["string","null"]},"providerJobId":{"type":["string","null"]},"reviewState":{"enum":["unreviewed","approved","rejected"],"type":"string"},"status":{"enum":["pending","submitted","in_progress","completed","failed"],"type":"string"},"submittedAt":{"type":["string","null"]}},"required":["id","organizationId","projectId","kind","status","providerJobId","model","provider","promptHash","promptPolicyVersion","params","outputKey","costMicros","reviewState","idempotencyKey","correlationId","error","createdAt","submittedAt","completedAt"],"type":"object"},"outputUrl":{"type":["string","null"]}},"required":["job","outputUrl"],"type":"object"},"AiSpeech":{"properties":{"contentType":{"type":"string"},"correlationId":{"type":"string"},"key":{"type":"string"},"model":{"type":"string"},"provider":{"type":"string"},"url":{"type":"string"},"usage":{"properties":{"cachedTokens":{"type":"number"},"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"serverToolCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"serverToolRequests":{"type":"number"}},"required":["inputTokens","outputTokens"],"type":"object"}},"required":["key","url","contentType","model","correlationId"],"type":"object"},"AiTextResult":{"properties":{"correlationId":{"type":"string"},"model":{"type":"string"},"provider":{"type":"string"},"text":{"type":"string"},"usage":{"properties":{"cachedTokens":{"type":"number"},"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"serverToolCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"serverToolRequests":{"type":"number"}},"required":["inputTokens","outputTokens"],"type":"object"}},"required":["text","usage","model","correlationId"],"type":"object"},"AiUpstreamFailed":{"properties":{"code":{"const":"ai_upstream_failed","type":"string"},"error":{"type":"string"}},"required":["error","code"],"type":"object"},"AlertRoute":{"properties":{"enabled":{"type":"boolean"},"health":{"enum":["ok","needs_reconnect","channel_missing"],"type":"string"},"kinds":{"items":{"enum":["reply.interested","delivery.unknown","request.pending","secrets.vault_unreachable","work.started","work.delivered","project.ready_for_approval","project.finished"],"type":"string"},"type":"array"},"lastError":{"type":["string","null"]},"lastErrorAt":{"type":["string","null"]},"provider":{"enum":["slack","telegram"],"type":"string"},"slackChannelId":{"type":["string","null"]},"slackChannelName":{"type":["string","null"]},"slackChannelPrivate":{"type":"boolean"},"slackTeamId":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}},"required":["provider","slackTeamId","slackChannelId","slackChannelName","slackChannelPrivate","kinds","enabled","health","lastError","lastErrorAt","updatedAt"],"type":"object"},"AlertRouteRemoved":{"properties":{"removed":{"type":"boolean"}},"required":["removed"],"type":"object"},"AlertSettings":{"properties":{"slack":{"properties":{"route":{"anyOf":[{"properties":{"enabled":{"type":"boolean"},"health":{"enum":["ok","needs_reconnect","channel_missing"],"type":"string"},"kinds":{"items":{"enum":["reply.interested","delivery.unknown","request.pending","secrets.vault_unreachable","work.started","work.delivered","project.ready_for_approval","project.finished"],"type":"string"},"type":"array"},"lastError":{"type":["string","null"]},"lastErrorAt":{"type":["string","null"]},"provider":{"enum":["slack","telegram"],"type":"string"},"slackChannelId":{"type":["string","null"]},"slackChannelName":{"type":["string","null"]},"slackChannelPrivate":{"type":"boolean"},"slackTeamId":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}},"required":["provider","slackTeamId","slackChannelId","slackChannelName","slackChannelPrivate","kinds","enabled","health","lastError","lastErrorAt","updatedAt"],"type":"object"},{"type":"null"}]},"workspaces":{"items":{"properties":{"missingScopes":{"items":{"type":"string"},"type":"array"},"teamId":{"type":"string"},"teamName":{"type":"string"}},"required":["teamId","teamName","missingScopes"],"type":"object"},"type":"array"}},"required":["workspaces","route"],"type":"object"},"telegram":{"properties":{"chats":{"items":{"properties":{"chatId":{"type":"string"},"name":{"type":"string"}},"required":["chatId","name"],"type":"object"},"type":"array"},"route":{"anyOf":[{"properties":{"enabled":{"type":"boolean"},"health":{"enum":["ok","needs_reconnect","channel_missing"],"type":"string"},"kinds":{"items":{"enum":["reply.interested","delivery.unknown","request.pending","secrets.vault_unreachable","work.started","work.delivered","project.ready_for_approval","project.finished"],"type":"string"},"type":"array"},"lastError":{"type":["string","null"]},"lastErrorAt":{"type":["string","null"]},"provider":{"enum":["slack","telegram"],"type":"string"},"slackChannelId":{"type":["string","null"]},"slackChannelName":{"type":["string","null"]},"slackChannelPrivate":{"type":"boolean"},"slackTeamId":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}},"required":["provider","slackTeamId","slackChannelId","slackChannelName","slackChannelPrivate","kinds","enabled","health","lastError","lastErrorAt","updatedAt"],"type":"object"},{"type":"null"}]}},"required":["chats","route"],"type":"object"}},"required":["slack","telegram"],"type":"object"},"AlertTestResult":{"properties":{"delivered":{"type":"boolean"},"error":{"type":["string","null"]},"route":{"anyOf":[{"properties":{"enabled":{"type":"boolean"},"health":{"enum":["ok","needs_reconnect","channel_missing"],"type":"string"},"kinds":{"items":{"enum":["reply.interested","delivery.unknown","request.pending","secrets.vault_unreachable","work.started","work.delivered","project.ready_for_approval","project.finished"],"type":"string"},"type":"array"},"lastError":{"type":["string","null"]},"lastErrorAt":{"type":["string","null"]},"provider":{"enum":["slack","telegram"],"type":"string"},"slackChannelId":{"type":["string","null"]},"slackChannelName":{"type":["string","null"]},"slackChannelPrivate":{"type":"boolean"},"slackTeamId":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}},"required":["provider","slackTeamId","slackChannelId","slackChannelName","slackChannelPrivate","kinds","enabled","health","lastError","lastErrorAt","updatedAt"],"type":"object"},{"type":"null"}]}},"required":["delivered","error","route"],"type":"object"},"AnalyzeMedia":{"properties":{"kind":{"enum":["image","video"],"type":"string"},"projectId":{"minLength":1,"type":"string"},"question":{"maxLength":4000,"minLength":1,"type":"string"},"source":{"anyOf":[{"properties":{"url":{"format":"uri","type":"string"}},"required":["url"],"type":"object"},{"properties":{"artifactKey":{"maxLength":512,"minLength":1,"type":"string"}},"required":["artifactKey"],"type":"object"}]}},"required":["kind","question","source"],"type":"object"},"AnthropicError":{"additionalProperties":{},"properties":{"error":{"properties":{"message":{"type":"string"},"type":{"type":"string"}},"required":["type","message"],"type":"object"},"type":{"const":"error","type":"string"}},"required":["type","error"],"type":"object"},"AnthropicMessage":{"additionalProperties":{},"properties":{"content":{"items":{},"type":"array"},"id":{"type":"string"},"model":{"type":"string"},"type":{"const":"message","type":"string"}},"required":["id","type","model","content"],"type":"object"},"AnthropicMessages":{"additionalProperties":{},"properties":{"messages":{"items":{},"minItems":1,"type":"array"},"model":{"description":"A model ID from the models endpoint, or `default` to use the workspace coder model. `hlix/default` and an omitted model field have the same effect.","maxLength":200,"minLength":1,"type":"string"},"stream":{"type":"boolean"}},"required":["messages"],"type":"object"},"ApiError":{"additionalProperties":{},"properties":{"error":{"type":"string"}},"required":["error"],"type":"object"},"ApplicationArchitecture":{"properties":{"coverage":{"properties":{"omittedFiles":{"type":"number"},"scannedFiles":{"type":"number"},"truncated":{"type":"boolean"},"unresolvedImports":{"type":"number"}},"required":["scannedFiles","omittedFiles","unresolvedImports","truncated"],"type":"object"},"cycle":{"anyOf":[{"properties":{"checks":{"properties":{"failed":{"type":["number","null"]},"passed":{"type":["number","null"]},"summaryKey":{"type":["string","null"]},"unverified":{"type":["number","null"]}},"required":["passed","failed","unverified","summaryKey"],"type":"object"},"id":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["id","title","status","checks"],"type":"object"},{"type":"null"}]},"edges":{"items":{"properties":{"evidence":{"items":{"properties":{"path":{"type":"string"},"specifier":{"type":"string"}},"required":["path","specifier"],"type":"object"},"type":"array"},"id":{"type":"string"},"kind":{"enum":["import","dependency"],"type":"string"},"source":{"type":"string"},"target":{"type":"string"}},"required":["id","source","target","kind","evidence"],"type":"object"},"type":"array"},"nodes":{"items":{"properties":{"changedFiles":{"items":{"type":"string"},"type":"array"},"files":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"impact":{"enum":["changed","dependent","none"],"type":"string"},"kind":{"enum":["module","package","dependency"],"type":"string"},"label":{"type":"string"},"path":{"type":"string"},"repoKey":{"type":"string"}},"required":["id","repoKey","path","label","kind","files","changedFiles","impact"],"type":"object"},"type":"array"},"observedAt":{"type":"string"},"repositories":{"items":{"properties":{"label":{"type":"string"},"reason":{"enum":["source_unavailable","unsupported_source","analysis_limited","unresolved_imports","invalid_source","changes_unavailable","checks_unavailable"],"type":"string"},"ref":{"type":["string","null"]},"repoKey":{"type":"string"},"sha":{"type":["string","null"]},"status":{"enum":["available","partial","unavailable"],"type":"string"}},"required":["repoKey","label","ref","sha","status"],"type":"object"},"type":"array"},"status":{"enum":["available","partial","unavailable"],"type":"string"},"warnings":{"items":{"enum":["source_unavailable","unsupported_source","analysis_limited","unresolved_imports","invalid_source","changes_unavailable","checks_unavailable"],"type":"string"},"type":"array"}},"required":["status","observedAt","repositories","nodes","edges","cycle","coverage","warnings"],"type":"object"},"Approval":{"properties":{"approvalType":{"enum":["plan_approval","code_review","conflict_resolution","budget_exceeded","requirement_clarification","deployment_approval","cycle_approval","tool_permission"],"type":"string"},"blocking":{"type":"boolean"},"context":{},"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"deadline":{"type":["string","null"]},"decidedAt":{"type":["string","null"]},"decidedBy":{"type":["string","null"]},"decision":{"type":["string","null"]},"description":{"type":"string"},"id":{"type":"string"},"organizationId":{"type":"string"},"requiredActor":{"enum":["system","user","admin","client"],"type":"string"},"resultingAction":{},"status":{"enum":["pending","approved","denied","expired","cancelled"],"type":"string"},"taskId":{"type":["string","null"]},"title":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","cycleId","taskId","approvalType","blocking","requiredActor","title","description","context","status","decision","decidedBy","decidedAt","deadline","resultingAction","createdAt","updatedAt"],"type":"object"},"ApprovalListItem":{"properties":{"approvalType":{"enum":["plan_approval","code_review","conflict_resolution","budget_exceeded","requirement_clarification","deployment_approval","cycle_approval","tool_permission"],"type":"string"},"blocking":{"type":"boolean"},"context":{},"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"deadline":{"type":["string","null"]},"decidedAt":{"type":["string","null"]},"decidedBy":{"type":["string","null"]},"decision":{"type":["string","null"]},"description":{"type":"string"},"id":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":["string","null"]},"projectName":{"type":["string","null"]},"requiredActor":{"enum":["system","user","admin","client"],"type":"string"},"resultingAction":{},"status":{"enum":["pending","approved","denied","expired","cancelled"],"type":"string"},"taskId":{"type":["string","null"]},"title":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","cycleId","taskId","approvalType","blocking","requiredActor","title","description","context","status","decision","decidedBy","decidedAt","deadline","resultingAction","createdAt","updatedAt","projectId","projectName"],"type":"object"},"ApproveClientRequest":{"additionalProperties":false,"properties":{"hash":{"pattern":"^[a-f0-9]{64}$","type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["revision","hash"],"type":"object"},"ApproveGrowthMessage":{"additionalProperties":false,"properties":{"body":{"maxLength":5000,"minLength":1,"type":"string"},"subject":{"maxLength":200,"minLength":1,"type":"string"}},"type":"object"},"AskClientQuestion":{"additionalProperties":false,"properties":{"cycleId":{"minLength":1,"type":"string"},"question":{"maxLength":5000,"minLength":1,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["cycleId","title","question"],"type":"object"},"Assign":{"properties":{"userId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]}},"required":["userId"],"type":"object"},"AttachGithubRepository":{"additionalProperties":false,"properties":{"githubRepository":{"maxLength":301,"pattern":"^[\\w.-]+\\/[\\w.-]+$","type":"string"}},"required":["githubRepository"],"type":"object"},"AttachProjectRepo":{"additionalProperties":false,"properties":{"cloneUrl":{"format":"uri","type":"string"},"defaultBranch":{"maxLength":200,"minLength":1,"type":"string"},"githubInstallationId":{"type":["string","null"]},"githubRepoId":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"label":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}]},"name":{"maxLength":200,"minLength":1,"type":"string"},"owner":{"maxLength":100,"minLength":1,"type":"string"},"provider":{"const":"github","type":"string"}},"required":["owner","name","cloneUrl"],"type":"object"},"AttentionSummary":{"properties":{"countsByKind":{"properties":{"alerts.broken":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"delivery.unknown":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"mention.unread":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"reply.interested":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"request.pending":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"review.unresolved":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"secrets.vault_unreachable":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"type":"object"},"items":{"items":{"properties":{"cycleId":{"type":["string","null"]},"detail":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["request.pending","review.unresolved","mention.unread","reply.interested","delivery.unknown","alerts.broken","secrets.vault_unreachable"],"type":"string"},"leadId":{"type":"string"},"occurredAt":{"type":"string"},"projectId":{"type":["string","null"]},"projectName":{"type":["string","null"]},"source":{"properties":{"id":{"type":"string"},"kind":{"enum":["approval","review_comment","message_mention","gtm_message","alert_route","secrets_config"],"type":"string"}},"required":["kind","id"],"type":"object"},"subject":{"type":["string","null"]},"taskId":{"type":["string","null"]},"taskName":{"type":["string","null"]},"title":{"type":"string"},"vault":{"properties":{"expiresAt":{"type":["string","null"]},"savedAt":{"type":["string","null"]}},"required":["savedAt","expiresAt"],"type":"object"}},"required":["id","kind","projectId","projectName","cycleId","taskId","taskName","subject","title","detail","occurredAt","source"],"type":"object"},"type":"array"},"total":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"truncated":{"type":"boolean"}},"required":["items","total","countsByKind","truncated"],"type":"object"},"AuditChainVerification":{"properties":{"checked":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"firstBadId":{"type":["string","null"]},"ok":{"type":"boolean"},"total":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["ok","checked","total","firstBadId"],"type":"object"},"AuditEntryDetail":{"properties":{"correlated":{"properties":{"agentRuns":{"items":{"properties":{"accountingSource":{"anyOf":[{"enum":["proxy","driver"],"type":"string"},{"type":"null"}]},"agentKind":{"enum":["plan","build","review","project_manager"],"type":"string"},"billedTo":{"anyOf":[{"enum":["workspace_key","hlix"],"type":"string"},{"type":"null"}]},"billingMarkupBps":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"billingProjectKind":{"type":["string","null"]},"coderAccountId":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"credentialKind":{"anyOf":[{"enum":["api_key","subscription"],"type":"string"},{"type":"null"}]},"cycleId":{"type":["string","null"]},"cycleRunId":{"type":["string","null"]},"fundingMode":{"anyOf":[{"enum":["managed","api_key","subscription"],"type":"string"},{"type":"null"}]},"id":{"type":"string"},"inputSnapshot":{"type":["string","null"]},"iteration":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"model":{"type":"string"},"organizationId":{"type":"string"},"outputSnapshot":{"type":["string","null"]},"parentRunId":{"type":["string","null"]},"projectId":{"type":["string","null"]},"promptKey":{"type":["string","null"]},"spanId":{"type":["string","null"]},"startedAt":{"type":"string"},"status":{"enum":["running","completed","failed"],"type":"string"},"taskId":{"type":["string","null"]},"tokensIn":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"tokensOut":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"traceId":{"type":["string","null"]},"usageCompleteness":{"anyOf":[{"enum":["unknown","partial","complete"],"type":"string"},{"type":"null"}]},"usageSequence":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]}},"required":["id","organizationId","taskId","projectId","billingProjectKind","billingMarkupBps","cycleId","agentKind","model","status","tokensIn","tokensOut","costMicros","inputSnapshot","outputSnapshot","parentRunId","promptKey","iteration","traceId","spanId","cycleRunId","billedTo","fundingMode","coderAccountId","credentialKind","accountingSource","usageCompleteness","usageSequence","startedAt","completedAt"],"type":"object"},"type":"array"},"events":{"items":{"properties":{"actorId":{"type":["string","null"]},"actorType":{"enum":["system","user","agent"],"type":"string"},"entityId":{"type":"string"},"entityType":{"enum":["cycle","task","project","agent_run","approval"],"type":"string"},"eventType":{"type":"string"},"id":{"type":"string"},"organizationId":{"type":"string"},"payload":{},"spanId":{"type":["string","null"]},"timestamp":{"type":"string"},"traceId":{"type":["string","null"]}},"required":["id","organizationId","entityType","entityId","eventType","payload","actorType","actorId","traceId","spanId","timestamp"],"type":"object"},"type":"array"}},"required":["events","agentRuns"],"type":"object"},"entry":{"properties":{"action":{"type":"string"},"actorId":{"type":["string","null"]},"actorLabel":{"type":["string","null"]},"actorType":{"enum":["user","api_key","agent","system"],"type":"string"},"agentId":{"type":["string","null"]},"attributedUserId":{"type":["string","null"]},"category":{"enum":["create","read","update","delete","execute","auth","export"],"type":"string"},"changes":{},"id":{"type":"string"},"ipAddress":{"type":["string","null"]},"metadata":{},"occurredAt":{"type":"string"},"onBehalfOfId":{"type":["string","null"]},"organizationId":{"type":"string"},"outcome":{"enum":["success","failure","denied"],"type":"string"},"parentResourceId":{"type":["string","null"]},"parentResourceType":{"type":["string","null"]},"prevHash":{"type":["string","null"]},"reason":{"type":["string","null"]},"recordedAt":{"type":"string"},"requestId":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"resourceLabel":{"type":["string","null"]},"resourceType":{"type":"string"},"rowHash":{"type":["string","null"]},"severity":{"enum":["info","notice","warning","critical"],"type":"string"},"source":{"enum":["web","api","cli","telegram","linear","github","webhook","internal","system"],"type":"string"},"spanId":{"type":["string","null"]},"traceId":{"type":["string","null"]},"userAgent":{"type":["string","null"]}},"required":["id","organizationId","actorType","actorId","actorLabel","onBehalfOfId","action","category","resourceType","resourceId","resourceLabel","parentResourceType","parentResourceId","changes","metadata","source","ipAddress","userAgent","requestId","traceId","spanId","outcome","severity","reason","agentId","attributedUserId","prevHash","rowHash","occurredAt","recordedAt"],"type":"object"}},"required":["entry","correlated"],"type":"object"},"AuditPage":{"properties":{"items":{"items":{"properties":{"action":{"type":"string"},"actorId":{"type":["string","null"]},"actorLabel":{"type":["string","null"]},"actorType":{"enum":["user","api_key","agent","system"],"type":"string"},"agentId":{"type":["string","null"]},"attributedUserId":{"type":["string","null"]},"category":{"enum":["create","read","update","delete","execute","auth","export"],"type":"string"},"changes":{},"id":{"type":"string"},"ipAddress":{"type":["string","null"]},"metadata":{},"occurredAt":{"type":"string"},"onBehalfOfId":{"type":["string","null"]},"organizationId":{"type":"string"},"outcome":{"enum":["success","failure","denied"],"type":"string"},"parentResourceId":{"type":["string","null"]},"parentResourceType":{"type":["string","null"]},"prevHash":{"type":["string","null"]},"reason":{"type":["string","null"]},"recordedAt":{"type":"string"},"requestId":{"type":["string","null"]},"resourceId":{"type":["string","null"]},"resourceLabel":{"type":["string","null"]},"resourceType":{"type":"string"},"rowHash":{"type":["string","null"]},"severity":{"enum":["info","notice","warning","critical"],"type":"string"},"source":{"enum":["web","api","cli","telegram","linear","github","webhook","internal","system"],"type":"string"},"spanId":{"type":["string","null"]},"traceId":{"type":["string","null"]},"userAgent":{"type":["string","null"]}},"required":["id","organizationId","actorType","actorId","actorLabel","onBehalfOfId","action","category","resourceType","resourceId","resourceLabel","parentResourceType","parentResourceId","changes","metadata","source","ipAddress","userAgent","requestId","traceId","spanId","outcome","severity","reason","agentId","attributedUserId","prevHash","rowHash","occurredAt","recordedAt"],"type":"object"},"type":"array"},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"type":"object"},"AvailablePack":{"properties":{"agentSlugs":{"items":{"type":"string"},"type":"array"},"alwaysOn":{"type":"boolean"},"category":{"type":"string"},"description":{"type":"string"},"isActive":{"type":"boolean"},"keywords":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projectPackId":{"type":["string","null"]},"skillSlugs":{"items":{"type":"string"},"type":"array"},"source":{"const":"repo","type":"string"},"system":{"type":"boolean"},"version":{"type":"string"}},"required":["name","version","description","keywords","category","skillSlugs","agentSlugs","isActive","projectPackId"],"type":"object"},"BillingCheckout":{"additionalProperties":false,"properties":{"plan":{"enum":["free","pro","business","scale"],"type":"string"},"successUrl":{"format":"uri","type":"string"}},"required":["plan"],"type":"object"},"BillingCheckoutSession":{"properties":{"checkoutId":{"type":"string"},"url":{"type":"string"}},"required":["url","checkoutId"],"type":"object"},"BillingPortalSession":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"BonusActions":{"properties":{"actions":{"items":{"properties":{"claimed":{"type":"boolean"},"key":{"enum":["x","linkedin","youtube","instagram","github"],"type":"string"}},"required":["key","claimed"],"type":"object"},"type":"array"},"perActionMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["perActionMicros","actions"],"type":"object"},"BonusClaim":{"properties":{"action":{"enum":["x","linkedin","youtube","instagram","github"],"type":"string"},"creditMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["action","creditMicros"],"type":"object"},"BranchCycleOpened":{"properties":{"baseRef":{"type":"string"},"branch":{"type":"string"},"id":{"type":"string"},"status":{"type":"string"}},"required":["id","branch","status","baseRef"],"type":"object"},"BuildDesign":{"properties":{"revisionId":{"minLength":1,"type":"string"}},"required":["revisionId"],"type":"object"},"CanvasAgentOps":{"additionalProperties":false,"properties":{"ops":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"element":{"additionalProperties":false,"properties":{"boxType":{"enum":["service","page","component","datastore","integration","actor"],"type":"string"},"color":{"enum":["default","yellow","green","blue","purple","red"],"type":"string"},"context":{"type":"boolean"},"from":{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},"h":{"maximum":100000,"minimum":1,"type":"number"},"heads":{"enum":["end","start","both","none"],"type":"string"},"id":{"pattern":"^[\\w-]{1,64}$","type":"string"},"kind":{"enum":["frame","sticky","text","shape","arrow","box","widget"],"type":"string"},"origin":{"const":"hlix","type":"string"},"parentId":{"anyOf":[{"pattern":"^[\\w-]{1,64}$","type":"string"},{"type":"null"}]},"route":{"enum":["straight","elbow","curve"],"type":"string"},"shape":{"enum":["rect","ellipse","diamond"],"type":"string"},"template":{"pattern":"^[\\w:-]{1,80}$","type":"string"},"text":{"maxLength":10000,"type":"string"},"to":{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},"w":{"maximum":100000,"minimum":1,"type":"number"},"widget":{"enum":["architecture","prototypes","delivery"],"type":"string"},"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"},"z":{"type":"number"}},"required":["id","kind","x","y","w","h","z"],"type":"object"},"op":{"const":"create","type":"string"}},"required":["op","element"],"type":"object"},{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"},"op":{"const":"update","type":"string"},"set":{"additionalProperties":false,"properties":{"boxType":{"anyOf":[{"enum":["service","page","component","datastore","integration","actor"],"type":"string"},{"type":"null"}]},"color":{"anyOf":[{"enum":["default","yellow","green","blue","purple","red"],"type":"string"},{"type":"null"}]},"context":{"type":["boolean","null"]},"from":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},{"type":"null"}]},"h":{"anyOf":[{"maximum":100000,"minimum":1,"type":"number"},{"type":"null"}]},"heads":{"anyOf":[{"enum":["end","start","both","none"],"type":"string"},{"type":"null"}]},"origin":{"anyOf":[{"const":"hlix","type":"string"},{"type":"null"}]},"parentId":{"anyOf":[{"anyOf":[{"pattern":"^[\\w-]{1,64}$","type":"string"},{"type":"null"}]},{"type":"null"}]},"route":{"anyOf":[{"enum":["straight","elbow","curve"],"type":"string"},{"type":"null"}]},"shape":{"anyOf":[{"enum":["rect","ellipse","diamond"],"type":"string"},{"type":"null"}]},"template":{"anyOf":[{"pattern":"^[\\w:-]{1,80}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"to":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},{"type":"null"}]},"w":{"anyOf":[{"maximum":100000,"minimum":1,"type":"number"},{"type":"null"}]},"widget":{"anyOf":[{"enum":["architecture","prototypes","delivery"],"type":"string"},{"type":"null"}]},"x":{"anyOf":[{"maximum":10000000,"minimum":-10000000,"type":"number"},{"type":"null"}]},"y":{"anyOf":[{"maximum":10000000,"minimum":-10000000,"type":"number"},{"type":"null"}]},"z":{"type":["number","null"]}},"type":"object"}},"required":["op","id","set"],"type":"object"},{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"},"op":{"const":"delete","type":"string"}},"required":["op","id"],"type":"object"}]},"maxItems":500,"minItems":1,"type":"array"},"reason":{"maxLength":300,"type":"string"}},"required":["ops"],"type":"object"},"CanvasAgentUndo":{"properties":{"revision":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"undone":{"type":"boolean"}},"required":["undone","revision"],"type":"object"},"CanvasAgentView":{"properties":{"contextRevision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"elements":{"items":{"additionalProperties":false,"properties":{"boxType":{"enum":["service","page","component","datastore","integration","actor"],"type":"string"},"color":{"enum":["default","yellow","green","blue","purple","red"],"type":"string"},"context":{"type":"boolean"},"from":{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},"h":{"maximum":100000,"minimum":1,"type":"number"},"heads":{"enum":["end","start","both","none"],"type":"string"},"id":{"pattern":"^[\\w-]{1,64}$","type":"string"},"kind":{"enum":["frame","sticky","text","shape","arrow","box","widget"],"type":"string"},"origin":{"const":"hlix","type":"string"},"parentId":{"anyOf":[{"pattern":"^[\\w-]{1,64}$","type":"string"},{"type":"null"}]},"route":{"enum":["straight","elbow","curve"],"type":"string"},"shape":{"enum":["rect","ellipse","diamond"],"type":"string"},"template":{"pattern":"^[\\w:-]{1,80}$","type":"string"},"text":{"maxLength":10000,"type":"string"},"to":{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},"w":{"maximum":100000,"minimum":1,"type":"number"},"widget":{"enum":["architecture","prototypes","delivery"],"type":"string"},"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"},"z":{"type":"number"}},"required":["id","kind","x","y","w","h","z"],"type":"object"},"type":"array"},"occupied":{"items":{"properties":{"h":{"type":"number"},"w":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y","w","h"],"type":"object"},"type":"array"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["revision","contextRevision","elements","occupied"],"type":"object"},"CanvasAgentWrite":{"properties":{"applied":{"type":"boolean"},"approvalId":{"type":["string","null"]},"contextChanged":{"type":"boolean"},"contextRevision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"ops":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"element":{"additionalProperties":false,"properties":{"boxType":{"enum":["service","page","component","datastore","integration","actor"],"type":"string"},"color":{"enum":["default","yellow","green","blue","purple","red"],"type":"string"},"context":{"type":"boolean"},"from":{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},"h":{"maximum":100000,"minimum":1,"type":"number"},"heads":{"enum":["end","start","both","none"],"type":"string"},"id":{"pattern":"^[\\w-]{1,64}$","type":"string"},"kind":{"enum":["frame","sticky","text","shape","arrow","box","widget"],"type":"string"},"origin":{"const":"hlix","type":"string"},"parentId":{"anyOf":[{"pattern":"^[\\w-]{1,64}$","type":"string"},{"type":"null"}]},"route":{"enum":["straight","elbow","curve"],"type":"string"},"shape":{"enum":["rect","ellipse","diamond"],"type":"string"},"template":{"pattern":"^[\\w:-]{1,80}$","type":"string"},"text":{"maxLength":10000,"type":"string"},"to":{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},"w":{"maximum":100000,"minimum":1,"type":"number"},"widget":{"enum":["architecture","prototypes","delivery"],"type":"string"},"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"},"z":{"type":"number"}},"required":["id","kind","x","y","w","h","z"],"type":"object"},"op":{"const":"create","type":"string"}},"required":["op","element"],"type":"object"},{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"},"op":{"const":"update","type":"string"},"set":{"additionalProperties":false,"properties":{"boxType":{"anyOf":[{"enum":["service","page","component","datastore","integration","actor"],"type":"string"},{"type":"null"}]},"color":{"anyOf":[{"enum":["default","yellow","green","blue","purple","red"],"type":"string"},{"type":"null"}]},"context":{"type":["boolean","null"]},"from":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},{"type":"null"}]},"h":{"anyOf":[{"maximum":100000,"minimum":1,"type":"number"},{"type":"null"}]},"heads":{"anyOf":[{"enum":["end","start","both","none"],"type":"string"},{"type":"null"}]},"origin":{"anyOf":[{"const":"hlix","type":"string"},{"type":"null"}]},"parentId":{"anyOf":[{"anyOf":[{"pattern":"^[\\w-]{1,64}$","type":"string"},{"type":"null"}]},{"type":"null"}]},"route":{"anyOf":[{"enum":["straight","elbow","curve"],"type":"string"},{"type":"null"}]},"shape":{"anyOf":[{"enum":["rect","ellipse","diamond"],"type":"string"},{"type":"null"}]},"template":{"anyOf":[{"pattern":"^[\\w:-]{1,80}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"to":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"}},"required":["id"],"type":"object"},{"additionalProperties":false,"properties":{"x":{"maximum":10000000,"minimum":-10000000,"type":"number"},"y":{"maximum":10000000,"minimum":-10000000,"type":"number"}},"required":["x","y"],"type":"object"}]},{"type":"null"}]},"w":{"anyOf":[{"maximum":100000,"minimum":1,"type":"number"},{"type":"null"}]},"widget":{"anyOf":[{"enum":["architecture","prototypes","delivery"],"type":"string"},{"type":"null"}]},"x":{"anyOf":[{"maximum":10000000,"minimum":-10000000,"type":"number"},{"type":"null"}]},"y":{"anyOf":[{"maximum":10000000,"minimum":-10000000,"type":"number"},{"type":"null"}]},"z":{"type":["number","null"]}},"type":"object"}},"required":["op","id","set"],"type":"object"},{"additionalProperties":false,"properties":{"id":{"pattern":"^[\\w-]{1,64}$","type":"string"},"op":{"const":"delete","type":"string"}},"required":["op","id"],"type":"object"}]},"type":"array"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["applied","approvalId","revision","contextRevision","contextChanged","ops"],"type":"object"},"ChangeFilePatch":{"properties":{"binary":{"type":"boolean"},"patch":{"type":["string","null"]},"patchTruncated":{"type":"boolean"},"path":{"type":"string"},"repoKey":{"type":"string"}},"required":["repoKey","path","patch","patchTruncated","binary"],"type":"object"},"ChatAttachment":{"properties":{"artifactKey":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"transcript":{"type":"string"}},"required":["artifactKey","mimeType","name","size"],"type":"object"},"ChatCompletion":{"additionalProperties":{},"properties":{"choices":{"items":{},"type":"array"},"id":{"type":"string"},"model":{"type":"string"}},"required":["id","model","choices"],"type":"object"},"ChatCompletions":{"additionalProperties":{},"properties":{"messages":{"items":{},"minItems":1,"type":"array"},"model":{"description":"A model ID from the models endpoint, or `default` to use the workspace coder model. `hlix/default` and an omitted model field have the same effect.","maxLength":200,"minLength":1,"type":"string"},"stream":{"type":"boolean"},"stream_options":{"additionalProperties":{},"properties":{"include_usage":{"type":"boolean"}},"type":"object"}},"required":["messages"],"type":"object"},"ChatDirectoryResponse":{"properties":{"items":{"items":{"properties":{"agentId":{"type":["string","null"]},"chatId":{"type":"string"},"chatKey":{"type":["string","null"]},"contextName":{"type":["string","null"]},"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"id":{"type":"string"},"model":{"type":["string","null"]},"projectId":{"type":["string","null"]},"projectName":{"type":["string","null"]},"taskId":{"type":["string","null"]},"title":{"type":["string","null"]},"updatedAt":{"type":"string"},"visibility":{"enum":["shared","private"],"type":"string"}},"required":["id","title","createdAt","updatedAt","projectId","projectName","agentId","cycleId","taskId","contextName","model","chatKey","visibility"],"type":"object"},"type":"array"},"page":{"type":"number"},"pageSize":{"type":"number"},"projects":{"items":{"description":"An accessible project in the chat directory.","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"total":{"type":"number"}},"required":["items","total","page","pageSize","projects"],"type":"object"},"ChatUrgent":{"additionalProperties":false,"properties":{"content":{"maxLength":20000,"minLength":1,"type":"string"},"projectId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["projectId","content"],"type":"object"},"ChatUrgentResponse":{"properties":{"stopped":{"items":{"properties":{"cycleId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"title":{"type":"string"}},"required":["cycleId","title"],"type":"object"},"type":"array"}},"required":["stopped"],"type":"object"},"ClassifyGrowthMessage":{"additionalProperties":false,"properties":{"classification":{"anyOf":[{"enum":["interested","later","no","unsubscribe","out_of_office","other"],"type":"string"},{"type":"null"}]}},"required":["classification"],"type":"object"},"ClientAccount":{"properties":{"billingEmail":{"type":["string","null"]},"branding":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"createdAt":{"type":"string"},"currency":{"type":["string","null"]},"displayName":{"type":"string"},"id":{"type":"string"},"legalName":{"type":["string","null"]},"organizationId":{"type":"string"},"portalSlug":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","displayName","legalName","portalSlug","billingEmail","currency","branding","status","createdAt","updatedAt"],"type":"object"},"ClientActivityItem":{"properties":{"detail":{"type":["string","null"]},"id":{"type":"string"},"occurredAt":{"type":"string"},"projectId":{"type":"string"},"source":{"properties":{"id":{"type":"string"},"kind":{"enum":["deliverable","approval","deployment"],"type":"string"}},"required":["kind","id"],"type":"object"},"title":{"type":"string"},"type":{"enum":["deliverable.published","revision.requested","deliverable.approved","deployment.published","invoice.issued"],"type":"string"}},"required":["id","type","projectId","title","detail","occurredAt","source"],"type":"object"},"ClientBillable":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"clientAccountId":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"currency":{"type":"string"},"description":{"type":"string"},"entryType":{"enum":["charge","adjustment","void"],"type":"string"},"id":{"type":"string"},"occurredAt":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":["string","null"]},"quantity":{"type":"string"},"rateSnapshot":{"anyOf":[{"properties":{"basis":{"const":"agreed_rate","type":"string"},"capturedAt":{"type":"string"},"note":{"type":["string","null"]}},"required":["basis","capturedAt","note"],"type":"object"},{"properties":{"basis":{"const":"model_pricing","type":"string"},"capturedAt":{"type":"string"},"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"inputPricePerMTokensMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"markupBps":{"type":"number"},"modelIdentifier":{"type":"string"},"outputPricePerMTokensMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokensIn":{"type":"number"},"tokensOut":{"type":"number"}},"required":["basis","capturedAt","modelIdentifier","inputPricePerMTokensMicros","outputPricePerMTokensMicros","tokensIn","tokensOut","costMicros","markupBps"],"type":"object"}]},"replacesBillableId":{"type":["string","null"]},"source":{"enum":["outcome","agent_usage","manual"],"type":"string"},"sourceEntityId":{"type":["string","null"]},"sourceEntityType":{"type":["string","null"]},"sourceEvidence":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"taxClass":{"enum":["standard","reduced","zero","exempt","reverse_charge"],"type":"string"},"unit":{"type":"string"},"unitPriceMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["id","organizationId","clientAccountId","projectId","entryType","replacesBillableId","source","sourceEntityType","sourceEntityId","sourceEvidence","rateSnapshot","description","quantity","unit","unitPriceMicros","amountMicros","currency","taxClass","occurredAt","createdBy","createdAt"],"type":"object"},"ClientBillableView":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"clientAccountId":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"currency":{"type":"string"},"description":{"type":"string"},"entryType":{"enum":["charge","adjustment","void"],"type":"string"},"id":{"type":"string"},"netAmountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"occurredAt":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":["string","null"]},"quantity":{"type":"string"},"rateSnapshot":{"anyOf":[{"properties":{"basis":{"const":"agreed_rate","type":"string"},"capturedAt":{"type":"string"},"note":{"type":["string","null"]}},"required":["basis","capturedAt","note"],"type":"object"},{"properties":{"basis":{"const":"model_pricing","type":"string"},"capturedAt":{"type":"string"},"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"inputPricePerMTokensMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"markupBps":{"type":"number"},"modelIdentifier":{"type":"string"},"outputPricePerMTokensMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokensIn":{"type":"number"},"tokensOut":{"type":"number"}},"required":["basis","capturedAt","modelIdentifier","inputPricePerMTokensMicros","outputPricePerMTokensMicros","tokensIn","tokensOut","costMicros","markupBps"],"type":"object"}]},"replacesBillableId":{"type":["string","null"]},"source":{"enum":["outcome","agent_usage","manual"],"type":"string"},"sourceEntityId":{"type":["string","null"]},"sourceEntityType":{"type":["string","null"]},"sourceEvidence":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"taxClass":{"enum":["standard","reduced","zero","exempt","reverse_charge"],"type":"string"},"unit":{"type":"string"},"unitPriceMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"voidedByBillableId":{"type":["string","null"]}},"required":["id","organizationId","clientAccountId","projectId","entryType","replacesBillableId","source","sourceEntityType","sourceEntityId","sourceEvidence","rateSnapshot","description","quantity","unit","unitPriceMicros","amountMicros","currency","taxClass","occurredAt","createdBy","createdAt","voidedByBillableId","netAmountMicros"],"type":"object"},"ClientBillingReport":{"properties":{"generatedAt":{"type":"string"},"invoices":{"items":{"properties":{"currency":{"type":"string"},"dueAt":{"type":["string","null"]},"id":{"type":"string"},"invoiceNumber":{"type":["string","null"]},"issuedAt":{"type":["string","null"]},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"paidAt":{"type":["string","null"]},"state":{"enum":["paid","void","overdue","awaiting-payment"],"type":"string"},"totalMinorUnits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["id","invoiceNumber","state","currency","totalMinorUnits","minorUnitExponent","dueAt","issuedAt","paidAt"],"type":"object"},"type":"array"}},"required":["generatedAt","invoices"],"type":"object"},"ClientInvoice":{"properties":{"buyerAddress":{"type":["string","null"]},"buyerBillingEmail":{"type":["string","null"]},"buyerLegalName":{"type":["string","null"]},"clientAccountId":{"type":"string"},"collectorLegalName":{"type":["string","null"]},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"currency":{"type":"string"},"dueAt":{"type":["string","null"]},"id":{"type":"string"},"invoiceFooter":{"type":["string","null"]},"invoiceNumber":{"type":["string","null"]},"invoiceSequence":{"type":["number","null"]},"issuedAt":{"type":["string","null"]},"lines":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"billableId":{"type":"string"},"createdAt":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"invoiceId":{"type":"string"},"organizationId":{"type":"string"},"position":{"type":"number"},"quantity":{"type":"string"},"taxClass":{"enum":["standard","reduced","zero","exempt","reverse_charge"],"type":"string"},"taxMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"taxRateBps":{"type":"number"},"unit":{"type":"string"},"unitPriceMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["id","organizationId","invoiceId","billableId","description","quantity","unit","unitPriceMicros","amountMicros","taxClass","taxRateBps","taxMicros","position","createdAt"],"type":"object"},"type":"array"},"minorUnitExponent":{"type":"number"},"organizationId":{"type":"string"},"paidAt":{"type":["string","null"]},"paymentDescriptor":{"type":["string","null"]},"paymentProvider":{"type":["string","null"]},"paymentProviderReference":{"type":["string","null"]},"paymentTerms":{"type":["string","null"]},"replacesInvoiceId":{"type":["string","null"]},"sellerAddress":{"type":["string","null"]},"sellerBrandColor":{"type":["string","null"]},"sellerContactEmail":{"type":["string","null"]},"sellerLegalName":{"type":["string","null"]},"sellerLogoMediaType":{"type":["string","null"]},"sellerTaxId":{"type":["string","null"]},"status":{"enum":["draft","final","void","paid"],"type":"string"},"subtotalMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"taxMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"totalMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"totalMinorUnits":{"type":"number"},"voidReason":{"type":["string","null"]},"voidedAt":{"type":["string","null"]}},"required":["id","organizationId","clientAccountId","status","invoiceNumber","invoiceSequence","currency","replacesInvoiceId","paymentProvider","paymentProviderReference","sellerLegalName","sellerAddress","sellerTaxId","sellerContactEmail","sellerLogoMediaType","sellerBrandColor","invoiceFooter","collectorLegalName","paymentDescriptor","buyerLegalName","buyerAddress","buyerBillingEmail","paymentTerms","dueAt","subtotalMicros","taxMicros","totalMicros","minorUnitExponent","totalMinorUnits","issuedAt","paidAt","voidedAt","voidReason","createdBy","createdAt","lines"],"type":"object"},"ClientOverviewReport":{"properties":{"generatedAt":{"type":"string"},"invoices":{"items":{"properties":{"currency":{"type":"string"},"dueAt":{"type":["string","null"]},"id":{"type":"string"},"invoiceNumber":{"type":["string","null"]},"issuedAt":{"type":["string","null"]},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"paidAt":{"type":["string","null"]},"state":{"enum":["paid","void","overdue","awaiting-payment"],"type":"string"},"totalMinorUnits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["id","invoiceNumber","state","currency","totalMinorUnits","minorUnitExponent","dueAt","issuedAt","paidAt"],"type":"object"},"type":"array"},"projects":{"items":{"properties":{"awaitingYourDecision":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"lastActivityAt":{"type":["string","null"]},"name":{"type":"string"},"projectId":{"type":"string"},"publishedDeliverables":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["projectId","name","publishedDeliverables","awaitingYourDecision","lastActivityAt"],"type":"object"},"type":"array"},"recentActivity":{"items":{"properties":{"detail":{"type":["string","null"]},"id":{"type":"string"},"occurredAt":{"type":"string"},"projectId":{"type":"string"},"source":{"properties":{"id":{"type":"string"},"kind":{"enum":["deliverable","approval","deployment"],"type":"string"}},"required":["kind","id"],"type":"object"},"title":{"type":"string"},"type":{"enum":["deliverable.published","revision.requested","deliverable.approved","deployment.published","invoice.issued"],"type":"string"}},"required":["id","type","projectId","title","detail","occurredAt","source"],"type":"object"},"type":"array"},"scope":{"const":"client","type":"string"},"summary":{"properties":{"awaitingYourDecision":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"outstandingInvoices":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"overdueInvoices":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"projectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"publishedDeliverables":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["projectCount","publishedDeliverables","awaitingYourDecision","outstandingInvoices","overdueInvoices"],"type":"object"}},"required":["scope","generatedAt","summary","projects","recentActivity","invoices"],"type":"object"},"ClientPaymentLink":{"properties":{"checkoutUrl":{"type":"string"},"provider":{"type":"string"},"providerReference":{"type":"string"}},"required":["provider","providerReference","checkoutUrl"],"type":"object"},"ClientPortalOverview":{"properties":{"projects":{"items":{"properties":{"awaitingYourDecision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"lastActivityAt":{"type":["string","null"]},"name":{"type":"string"},"projectId":{"type":"string"},"publishedDeliverables":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["projectId","name","publishedDeliverables","awaitingYourDecision","lastActivityAt"],"type":"object"},"type":"array"},"recentActivity":{"items":{"properties":{"detail":{"type":["string","null"]},"id":{"type":"string"},"occurredAt":{"type":"string"},"projectId":{"type":"string"},"source":{"properties":{"id":{"type":"string"},"kind":{"enum":["deliverable","approval","deployment"],"type":"string"}},"required":["kind","id"],"type":"object"},"title":{"type":"string"},"type":{"enum":["deliverable.published","revision.requested","deliverable.approved","deployment.published","invoice.issued"],"type":"string"}},"required":["id","type","projectId","title","detail","occurredAt","source"],"type":"object"},"type":"array"}},"required":["projects","recentActivity"],"type":"object"},"ClientProjectsReport":{"properties":{"generatedAt":{"type":"string"},"projects":{"items":{"properties":{"awaitingYourDecision":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"lastActivityAt":{"type":["string","null"]},"name":{"type":"string"},"projectId":{"type":"string"},"publishedDeliverables":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["projectId","name","publishedDeliverables","awaitingYourDecision","lastActivityAt"],"type":"object"},"type":"array"}},"required":["generatedAt","projects"],"type":"object"},"ClientRequestDetail":{"properties":{"approvedRevision":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"attachments":{"items":{"properties":{"id":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"transcript":{"type":["string","null"]},"url":{"type":"string"}},"required":["id","name","mimeType","size","transcript","url"],"type":"object"},"type":"array"},"canApprove":{"type":"boolean"},"canRespond":{"type":"boolean"},"createdAt":{"type":"string"},"currentPlan":{"anyOf":[{"properties":{"attachmentIds":{"items":{"type":"string"},"type":"array"},"createdAt":{"type":"string"},"hash":{"type":"string"},"plan":{"additionalProperties":false,"properties":{"acceptanceCriteria":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"assumptions":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"scope":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"summary":{"maxLength":10000,"minLength":1,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","summary","scope","acceptanceCriteria","assumptions"],"type":"object"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["revision","hash","plan","attachmentIds","createdAt"],"type":"object"},{"type":"null"}]},"cycleId":{"type":["string","null"]},"id":{"type":"string"},"messages":{"items":{"properties":{"agentId":{"type":["string","null"]},"author":{"anyOf":[{"properties":{"image":{"type":["string","null"]},"name":{"type":["string","null"]},"role":{"type":["string","null"]},"userId":{"type":"string"}},"required":["userId","name","image","role"],"type":"object"},{"type":"null"}]},"content":{"type":"string"},"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"delivery":{"const":"queued","type":"string"},"id":{"type":"string"},"metadata":{"properties":{"agentId":{"type":["string","null"]},"requestId":{"type":["string","null"]},"runId":{"type":["string","null"]},"traceId":{"type":["string","null"]},"userId":{"type":["string","null"]}},"required":["requestId","traceId","runId","userId","agentId"],"type":"object"},"parts":{"items":{"oneOf":[{"properties":{"text":{"type":"string"},"type":{"const":"text","type":"string"}},"required":["type","text"],"type":"object"},{"properties":{"text":{"type":"string"},"type":{"const":"reasoning","type":"string"}},"required":["type","text"],"type":"object"},{"properties":{"producer":{"const":"roadmap-plan","type":"string"},"spec":{"additionalProperties":false,"properties":{"components":{"items":{"additionalProperties":{},"properties":{"component":{"enum":["Column","Row","Card","Heading","Text","Metric","Status","Progress","Link","Steps","Suggestions","Divider"],"type":"string"},"id":{"minLength":1,"type":"string"}},"required":["id","component"],"type":"object"},"maxItems":200,"minItems":1,"type":"array"},"data":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"surfaceId":{"maxLength":128,"minLength":1,"type":"string"}},"required":["surfaceId","components"],"type":"object"},"type":{"const":"presentation","type":"string"}},"required":["type","producer","spec"],"type":"object"},{"properties":{"error":{"type":"string"},"input":{},"output":{},"state":{"enum":["pending","done","error"],"type":"string"},"toolCallId":{"minLength":1,"type":"string"},"toolName":{"minLength":1,"type":"string"},"type":{"const":"tool","type":"string"}},"required":["type","toolCallId","toolName","state"],"type":"object"}]},"type":"array"},"replyTo":{"type":"string"},"role":{"type":"string"},"status":{"enum":["complete","error","aborted"],"type":"string"}},"required":["id","cycleId","agentId","role","content","metadata","author","createdAt"],"type":"object"},"type":"array"},"projectId":{"type":"string"},"requestId":{"type":["string","null"]},"requesterUserId":{"type":"string"},"status":{"enum":["clarifying","ready","triage","in_progress","completed","rejected","paused"],"type":"string"},"title":{"type":"string"},"turnPending":{"type":"boolean"},"updatedAt":{"type":"string"}},"required":["id","projectId","requesterUserId","title","status","canRespond","canApprove","turnPending","currentPlan","approvedRevision","requestId","cycleId","attachments","createdAt","updatedAt","messages"],"type":"object"},"ClientRequestList":{"properties":{"requests":{"items":{"properties":{"approvedRevision":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"attachments":{"items":{"properties":{"id":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"size":{"type":"number"},"transcript":{"type":["string","null"]},"url":{"type":"string"}},"required":["id","name","mimeType","size","transcript","url"],"type":"object"},"type":"array"},"canApprove":{"type":"boolean"},"canRespond":{"type":"boolean"},"createdAt":{"type":"string"},"currentPlan":{"anyOf":[{"properties":{"attachmentIds":{"items":{"type":"string"},"type":"array"},"createdAt":{"type":"string"},"hash":{"type":"string"},"plan":{"additionalProperties":false,"properties":{"acceptanceCriteria":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"assumptions":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"scope":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"summary":{"maxLength":10000,"minLength":1,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","summary","scope","acceptanceCriteria","assumptions"],"type":"object"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["revision","hash","plan","attachmentIds","createdAt"],"type":"object"},{"type":"null"}]},"cycleId":{"type":["string","null"]},"id":{"type":"string"},"projectId":{"type":"string"},"requestId":{"type":["string","null"]},"requesterUserId":{"type":"string"},"status":{"enum":["clarifying","ready","triage","in_progress","completed","rejected","paused"],"type":"string"},"title":{"type":"string"},"turnPending":{"type":"boolean"},"updatedAt":{"type":"string"}},"required":["id","projectId","requesterUserId","title","status","canRespond","canApprove","turnPending","currentPlan","approvedRevision","requestId","cycleId","attachments","createdAt","updatedAt"],"type":"object"},"type":"array"}},"required":["requests"],"type":"object"},"CoderAccount":{"properties":{"baseUrl":{"type":["string","null"]},"coder":{"enum":["claude-code","codex"],"type":"string"},"createdAt":{"type":"string"},"enabled":{"type":"boolean"},"expiresAt":{"type":["string","null"]},"hint":{"type":["string","null"]},"id":{"type":"string"},"inUse":{"type":"boolean"},"kind":{"enum":["subscription","api_key"],"type":"string"},"label":{"type":"string"},"lastUsedAt":{"type":["string","null"]},"limitedUntil":{"type":["string","null"]},"ownerUserId":{"type":["string","null"]},"shared":{"type":"boolean"},"status":{"enum":["active","needs_reconnect"],"type":"string"},"updatedAt":{"type":"string"},"usage":{"anyOf":[{"properties":{"capturedAt":{"type":"string"},"windows":{"items":{"properties":{"resetsAt":{"type":"string"},"usedPercent":{"type":"number"},"window":{"type":"string"}},"required":["window","usedPercent"],"type":"object"},"type":"array"}},"required":["windows","capturedAt"],"type":"object"},{"type":"null"}]}},"required":["id","coder","kind","label","hint","baseUrl","ownerUserId","shared","enabled","status","limitedUntil","expiresAt","lastUsedAt","inUse","usage","createdAt","updatedAt"],"type":"object"},"CoderAccountModelCatalog":{"properties":{"capturedAt":{"type":["string","null"]},"models":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":200,"minLength":1,"pattern":"^[\\w./:~@+-]+$","type":"string"},"name":{"maxLength":256,"minLength":1,"pattern":"^[^\\x00-\\x1f\\x7f]+$","type":"string"}},"required":["id","name"],"type":"object"},"maxItems":1000,"type":"array"},"source":{"anyOf":[{"enum":["native","api"],"type":"string"},{"type":"null"}]},"status":{"enum":["available","unknown","stale"],"type":"string"}},"required":["models","status","source","capturedAt"],"type":"object"},"CoderAccountProbe":{"properties":{"detail":{"type":"string"},"ok":{"type":"boolean"},"status":{"type":"number"}},"required":["ok","status"],"type":"object"},"CoderConnect":{"properties":{"expiresAt":{"type":"string"},"id":{"type":"string"},"interval":{"type":"number"},"method":{"enum":["device","code","callback"],"type":"string"},"url":{"type":"string"},"userCode":{"type":"string"}},"required":["id","url","expiresAt","interval","method"],"type":"object"},"CoderConnectResult":{"properties":{"accountId":{"type":"string"},"status":{"enum":["pending","connected"],"type":"string"}},"required":["status"],"type":"object"},"CommitEdits":{"properties":{"files":{"items":{"properties":{"content":{"type":["string","null"]},"path":{"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"headSha":{"pattern":"^[0-9a-f]{40}$","type":"string"},"message":{"maxLength":2000,"minLength":1,"type":"string"},"ref":{"minLength":1,"type":"string"},"repo":{"type":"string"}},"required":["ref","headSha","message","files"],"type":"object"},"CommitEditsResult":{"properties":{"sha":{"type":"string"}},"required":["sha"],"type":"object"},"CompareGrowthProviders":{"additionalProperties":false,"properties":{"operationKey":{"maxLength":200,"minLength":1,"type":"string"},"providers":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"maxLength":64,"minLength":1,"type":"string"},{"maxLength":64,"minLength":1,"type":"string"}],"type":"array"},"sampleSize":{"default":20,"maximum":25,"minimum":1,"type":"integer"}},"required":["operationKey","providers"],"type":"object"},"CompleteCoderConnect":{"additionalProperties":false,"properties":{"code":{"maxLength":4096,"minLength":1,"type":"string"}},"type":"object"},"ConnectGrowthMailbox":{"additionalProperties":false,"properties":{"loginHint":{"format":"email","maxLength":320,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"service":{"enum":["google","microsoft"],"type":"string"}},"required":["service"],"type":"object"},"ConversationApproval":{"additionalProperties":false,"properties":{"approved":{"type":"boolean"},"chatId":{"maxLength":512,"minLength":1,"type":"string"},"reason":{"maxLength":2000,"type":"string"}},"required":["chatId","approved"],"type":"object"},"ConversationApprovalResult":{"properties":{"accepted":{"type":"boolean"},"activeOperationId":{"type":"string"},"chat":{"type":"string"},"cursor":{"properties":{"gen":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"next":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["gen","next"],"type":"object"},"delivered":{"const":"chat","type":"string"},"operationId":{"type":"string"},"queued":{"type":"boolean"}},"required":["operationId"],"type":"object"},"ConversationChatCreate":{"additionalProperties":false,"properties":{"chatId":{"maxLength":512,"minLength":1,"type":"string"},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"private":{"type":"boolean"}},"required":["chatId","id"],"type":"object"},"ConversationChatCreated":{"properties":{"chatId":{"type":"string"},"private":{"const":true,"type":"boolean"}},"required":["chatId","private"],"type":"object"},"ConversationChats":{"properties":{"chats":{"items":{"properties":{"chatId":{"type":"string"},"createdAt":{"type":"string"},"model":{"type":["string","null"]},"private":{"type":"boolean"},"source":{"enum":["web","cli","mcp","telegram","slack","linear","system"],"type":"string"},"title":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["chatId","source","private","model","title","createdAt","updatedAt"],"type":"object"},"type":"array"}},"required":["chats"],"type":"object"},"ConversationConnect":{"additionalProperties":false,"properties":{"chatId":{"maxLength":512,"minLength":1,"type":"string"}},"required":["chatId"],"type":"object"},"ConversationConnection":{"properties":{"path":{"type":"string"},"token":{"type":"string"}},"required":["token","path"],"type":"object"},"ConversationMessages":{"properties":{"messages":{"items":{"properties":{"authorUserId":{"type":"string"},"createdAt":{"type":"number"},"failed":{"properties":{"operationId":{"type":"string"},"reason":{"type":"string"}},"required":["operationId","reason"],"type":"object"},"id":{"type":"string"},"isError":{"type":"boolean"},"presentation":{"properties":{"producer":{"type":"string"},"spec":{}},"required":["producer","spec"],"type":"object"},"role":{"enum":["user","assistant","tool"],"type":"string"},"text":{"type":"string"},"toolCallId":{"type":"string"},"toolCalls":{"items":{"properties":{"id":{"type":"string"},"input":{},"name":{"type":"string"}},"required":["id","name","input"],"type":"object"},"type":"array"},"toolName":{"type":"string"}},"required":["id","role","text"],"type":"object"},"type":"array"},"next":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]}},"required":["messages","next"],"type":"object"},"ConversationModel":{"additionalProperties":false,"properties":{"model":{"anyOf":[{"maxLength":256,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["model"],"type":"object"},"ConversationReceipt":{"properties":{"accepted":{"type":"boolean"},"activeOperationId":{"type":"string"},"chat":{"type":"string"},"cursor":{"properties":{"gen":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"next":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["gen","next"],"type":"object"},"delivered":{"const":"chat","type":"string"},"operationId":{"type":"string"},"queued":{"type":"boolean"}},"required":["operationId","chat","accepted","queued"],"type":"object"},"ConversationSend":{"additionalProperties":false,"properties":{"addressAgent":{"type":"boolean"},"attachments":{"items":{"additionalProperties":false,"properties":{"artifactKey":{"maxLength":512,"minLength":1,"type":"string"}},"required":["artifactKey"],"type":"object"},"maxItems":10,"type":"array"},"chatId":{"maxLength":512,"minLength":1,"type":"string"},"context":{"additionalProperties":false,"properties":{"cycle":{"maxLength":200,"minLength":1,"type":"string"},"file":{"maxLength":512,"minLength":1,"type":"string"},"line":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"selection":{"maxLength":4000,"minLength":1,"type":"string"},"tab":{"maxLength":40,"minLength":1,"type":"string"}},"type":"object"},"message":{"maxLength":100000,"minLength":1,"type":"string"},"messageId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"mode":{"enum":["wait","now","stop_first"],"type":"string"}},"required":["chatId","message"],"type":"object"},"ConversationStop":{"additionalProperties":false,"properties":{"chatId":{"maxLength":512,"minLength":1,"type":"string"}},"required":["chatId"],"type":"object"},"ConversationStopResponse":{"properties":{"ok":{"const":true,"type":"boolean"},"stopped":{"type":"boolean"}},"required":["ok","stopped"],"type":"object"},"CoreSettingsRow":{"properties":{"coder":{"anyOf":[{"enum":["claude-code","openai-agents","codex","aider","opencode","goose","qwen-code","pi","hlix"],"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"effort":{"anyOf":[{"enum":["low","medium","high"],"type":"string"},{"type":"null"}]},"funding":{"anyOf":[{"properties":{"accountId":{"type":["string","null"]},"mode":{"enum":["managed","api_key","subscription"],"type":"string"},"nativeModel":{"type":["string","null"]},"providerId":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["mode","accountId","nativeModel"],"type":"object"},{"type":"null"}]},"id":{"type":"string"},"maxParallelCycles":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"model":{"type":["string","null"]},"projectId":{"type":["string","null"]},"slot":{"enum":["project_manager","cycle"],"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","slot","coder","funding","model","effort","maxParallelCycles","createdAt","updatedAt"],"type":"object"},"CreateAgent":{"additionalProperties":false,"properties":{"avatarImageKey":{"anyOf":[{"maxLength":300,"minLength":1,"type":"string"},{"type":"null"}]},"avatarKey":{"anyOf":[{"enum":["nucleus","strand","codon","pheno","proof","telo","script","agent","spark","orbit","sprout","echo","pixel"],"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"coder":{"anyOf":[{"enum":["claude-code","codex","opencode","goose","qwen-code","pi","hlix"],"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"duty":{"enum":["build","triage"],"type":"string"},"instructions":{"anyOf":[{"maxLength":20000,"type":"string"},{"type":"null"}]},"modelOverride":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"projectId":{"type":["string","null"]},"reviewSet":{"enum":["default","full","docs","security","lint"],"type":"string"},"runtimeVersion":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}]}},"required":["name"],"type":"object"},"CreateBillable":{"oneOf":[{"additionalProperties":false,"properties":{"clientAccountId":{"minLength":1,"type":"string"},"currency":{"pattern":"^[A-Z]{3}$","type":"string"},"description":{"maxLength":500,"minLength":1,"type":"string"},"note":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}]},"occurredAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"projectId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"quantity":{"type":"number"},"source":{"const":"manual","type":"string"},"taxClass":{"enum":["standard","reduced","zero","exempt","reverse_charge"],"type":"string"},"unit":{"maxLength":50,"minLength":1,"type":"string"},"unitPriceMicros":{"format":"int64","maximum":1000000000000,"minimum":0,"type":"integer"}},"required":["source","clientAccountId","currency","description","unit","quantity","unitPriceMicros"],"type":"object"},{"additionalProperties":false,"properties":{"currency":{"pattern":"^[A-Z]{3}$","type":"string"},"cycleId":{"minLength":1,"type":"string"},"description":{"maxLength":500,"minLength":1,"type":"string"},"note":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}]},"quantity":{"type":"number"},"source":{"const":"outcome","type":"string"},"taxClass":{"enum":["standard","reduced","zero","exempt","reverse_charge"],"type":"string"},"unit":{"maxLength":50,"minLength":1,"type":"string"},"unitPriceMicros":{"format":"int64","maximum":1000000000000,"minimum":0,"type":"integer"}},"required":["source","cycleId","currency","description","unit","quantity","unitPriceMicros"],"type":"object"},{"additionalProperties":false,"properties":{"agentRunId":{"minLength":1,"type":"string"},"currency":{"const":"USD","type":"string"},"description":{"maxLength":500,"minLength":1,"type":"string"},"markupBps":{"default":0,"maximum":100000,"minimum":0,"type":"integer"},"source":{"const":"agent_usage","type":"string"},"taxClass":{"enum":["standard","reduced","zero","exempt","reverse_charge"],"type":"string"}},"required":["source","agentRunId","currency","description"],"type":"object"}]},"CreateClientAccount":{"additionalProperties":false,"properties":{"billingEmail":{"anyOf":[{"format":"email","maxLength":320,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},{"type":"null"}]},"branding":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"currency":{"anyOf":[{"pattern":"^[A-Z]{3}$","type":"string"},{"type":"null"}]},"displayName":{"maxLength":200,"minLength":1,"type":"string"},"legalName":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}]},"portalSlug":{"maxLength":100,"minLength":1,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","type":"string"},"status":{"enum":["prospect","active"],"type":"string"}},"required":["displayName","portalSlug"],"type":"object"},"CreateClientRequest":{"additionalProperties":false,"properties":{"projectId":{"maxLength":128,"minLength":1,"type":"string"},"title":{"maxLength":200,"type":"string"}},"required":["projectId"],"type":"object"},"CreateCoderAccount":{"additionalProperties":false,"properties":{"baseUrl":{"format":"uri","type":"string"},"coder":{"enum":["claude-code","codex"],"type":"string"},"credential":{"maxLength":20000,"minLength":1,"type":"string"},"kind":{"enum":["subscription","api_key"],"type":"string"},"label":{"maxLength":80,"minLength":1,"type":"string"},"shared":{"type":"boolean"}},"required":["coder","kind","label","credential"],"type":"object"},"CreateContact":{"additionalProperties":false,"properties":{"clientAccountId":{"minLength":1,"type":"string"},"email":{"format":"email","maxLength":320,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"linkedinUrl":{"format":"uri","maxLength":2048,"type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"},"sourceNote":{"maxLength":500,"minLength":1,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["clientAccountId","name"],"type":"object"},"CreateCustomSkill":{"properties":{"content":{"minLength":1,"type":"string"},"description":{"maxLength":1000,"minLength":1,"type":"string"},"enabled":{"type":"boolean"},"name":{"maxLength":200,"minLength":1,"type":"string"},"projectIds":{"items":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"maxItems":100,"type":"array"},"slug":{"maxLength":100,"minLength":1,"pattern":"^[a-z0-9-]+$","type":"string"}},"required":["slug","name","description","content"],"type":"object"},"CreateCycle":{"properties":{"attachments":{"items":{"properties":{"artifactKey":{"maxLength":512,"minLength":1,"type":"string"}},"required":["artifactKey"],"type":"object"},"maxItems":10,"type":"array"},"description":{"maxLength":10000,"minLength":1,"type":"string"},"projectId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"targetBranch":{"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["projectId","title","description"],"type":"object"},"CreateCycleTask":{"properties":{"dependsOn":{"items":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"type":"array"},"description":{"maxLength":5000,"minLength":1,"type":"string"},"doneWhen":{"maxLength":1000,"minLength":1,"pattern":"^[^\\r\\n]+$","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","description"],"type":"object"},"CreateDeal":{"additionalProperties":false,"properties":{"clientAccountId":{"minLength":1,"type":"string"},"currency":{"pattern":"^[A-Z]{3}$","type":"string"},"expectedCloseOn":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"nextStep":{"maxLength":500,"minLength":1,"type":"string"},"nextStepAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"ownerUserId":{"minLength":1,"type":"string"},"sourceKind":{"enum":["play","referral","inbound","manual"],"type":"string"},"sourcePlayId":{"minLength":1,"type":"string"},"stage":{"maxLength":100,"minLength":1,"type":"string"},"valueMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["clientAccountId","sourceKind"],"type":"object"},"CreateDeliverablePackage":{"additionalProperties":false,"properties":{"acceptanceCriteria":{"default":[],"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"clientStatus":{"default":"draft","enum":["draft","in_review","delivered","accepted"],"type":"string"},"cycleIds":{"default":[],"items":{"minLength":1,"type":"string"},"maxItems":100,"type":"array"},"dueDate":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}],"default":null},"evidenceSummary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"limitations":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"presentationSlides":{"default":[],"items":{"additionalProperties":false,"properties":{"body":{"maxLength":10000,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","body"],"type":"object"},"maxItems":50,"type":"array"},"previewDeploymentId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"default":null},"previewExpectedSha":{"anyOf":[{"pattern":"^[a-f0-9]{40}$","type":"string"},{"type":"null"}],"default":null},"projectId":{"minLength":1,"type":"string"},"summary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"title":{"maxLength":200,"minLength":1,"type":"string"},"videoUrl":{"anyOf":[{"format":"uri","maxLength":2000,"type":"string"},{"type":"null"}],"default":null}},"required":["title","projectId"],"type":"object"},"CreateDesign":{"properties":{"brief":{"maxLength":20000,"minLength":1,"type":"string"},"cycleId":{"minLength":1,"type":"string"},"idempotencyKey":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"intent":{"enum":["design_only","design_and_build"],"type":"string"},"sources":{"items":{"oneOf":[{"properties":{"kind":{"const":"file","type":"string"},"name":{"maxLength":255,"minLength":1,"type":"string"},"path":{"maxLength":500,"type":"string"}},"required":["kind","name","path"],"type":"object"},{"properties":{"kind":{"const":"link","type":"string"},"provider":{"maxLength":80,"minLength":1,"type":"string"},"url":{"maxLength":2000,"pattern":"^https?:\\/\\/","type":"string"}},"required":["kind","url","provider"],"type":"object"}]},"maxItems":10,"type":"array"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","intent"],"type":"object"},"CreateDesignComment":{"properties":{"body":{"maxLength":10000,"minLength":1,"type":"string"},"frameId":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"parentId":{"minLength":1,"type":"string"},"revisionId":{"minLength":1,"type":"string"},"x":{"maximum":1,"minimum":0,"type":"number"},"y":{"maximum":1,"minimum":0,"type":"number"}},"required":["revisionId","frameId","body"],"type":"object"},"CreateEnvironment":{"properties":{"config":{"properties":{"files":{"items":{"properties":{"content":{"type":"string"},"encoding":{"enum":["utf8","base64"],"type":"string"},"executable":{"type":"boolean"},"path":{"type":"string"}},"required":["path","content"],"type":"object"},"type":"array"},"managedPaths":{"items":{"type":"string"},"type":"array"},"mcpServers":{"items":{},"type":"array"},"skills":{"items":{"type":"string"},"type":"array"},"vars":{"additionalProperties":{"type":"string"},"default":{},"propertyNames":{"type":"string"},"type":"object"}},"type":"object"},"isActive":{"type":"boolean"},"label":{"maxLength":100,"minLength":1,"type":"string"}},"required":["label","config"],"type":"object"},"CreateGrowthPlay":{"additionalProperties":false,"properties":{"angle":{"maxLength":600,"minLength":1,"type":"string"},"autoSendReplies":{"type":"boolean"},"dailyBudgetMicros":{"format":"int64","maximum":1000000000,"minimum":0,"type":"integer"},"exampleClients":{"items":{"maxLength":120,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"},"firstEmail":{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"},"gdprAcknowledged":{"type":"boolean"},"keywords":{"items":{"maxLength":80,"minLength":1,"type":"string"},"maxItems":30,"type":"array"},"language":{"enum":["auto","en","de","fr"],"type":"string"},"name":{"maxLength":120,"minLength":1,"type":"string"},"negativeCriteria":{"items":{"maxLength":300,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"positiveCriteria":{"items":{"maxLength":300,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"reviewFirstN":{"maximum":1000,"minimum":0,"type":"integer"},"sendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"sequence":{"anyOf":[{"additionalProperties":false,"properties":{"followUpDays":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"maximum":60,"minimum":1,"type":"integer"},{"maximum":90,"minimum":2,"type":"integer"}],"type":"array"},"followUps":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"},{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"}],"type":"array"}},"required":["followUpDays","followUps"],"type":"object"},{"type":"null"}]},"status":{"enum":["draft","active","paused","stopped"],"type":"string"},"who":{"properties":{"companySizes":{"items":{"enum":["1-10","11-50","51-200","201-1000","1000+"],"type":"string"},"maxItems":5,"minItems":1,"type":"array"},"countries":{"items":{"maxLength":2,"minLength":2,"type":"string"},"maxItems":30,"minItems":1,"type":"array"},"industries":{"items":{"maxLength":80,"minLength":1,"type":"string"},"maxItems":10,"minItems":1,"type":"array"},"localSearch":{"additionalProperties":false,"properties":{"location":{"maxLength":120,"minLength":1,"type":"string"},"query":{"maxLength":120,"minLength":1,"type":"string"}},"required":["query","location"],"type":"object"},"roles":{"items":{"maxLength":80,"minLength":1,"type":"string"},"maxItems":10,"minItems":1,"type":"array"}},"required":["countries","industries","companySizes","roles"],"type":"object"},"whyNow":{"properties":{"reason":{"maxLength":300,"minLength":1,"type":"string"},"signal":{"enum":["hiring","funding","new_company","launch","news","tech_change","other"],"type":"string"}},"required":["signal","reason"],"type":"object"}},"required":["name","who"],"type":"object"},"CreateGrowthProject":{"additionalProperties":false,"properties":{"buyerDescription":{"maxLength":2000,"minLength":1,"type":"string"},"citeProjectIds":{"items":{"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"clientAccountId":{"minLength":1,"type":"string"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"},"name":{"maxLength":200,"minLength":1,"type":"string"},"website":{"maxLength":2048,"pattern":"^https?:\\/\\/","type":"string"}},"type":"object"},"CreateInitialProposalComment":{"additionalProperties":false,"properties":{"blockId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"body":{"maxLength":10000,"minLength":1,"type":"string"},"parentId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"revisionHash":{"pattern":"^[0-9a-f]{64}$","type":"string"},"revisionId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"selectedText":{"anyOf":[{"maxLength":4000,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["revisionId","revisionHash","blockId","selectedText","parentId","body"],"type":"object"},"CreateInvoiceDraft":{"additionalProperties":false,"properties":{"billableIds":{"items":{"minLength":1,"type":"string"},"maxItems":500,"minItems":1,"type":"array"},"buyerAddress":{"maxLength":500,"minLength":1,"type":"string"},"buyerBillingEmail":{"anyOf":[{"format":"email","maxLength":320,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},{"type":"null"}]},"buyerLegalName":{"maxLength":200,"minLength":1,"type":"string"},"dueAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"paymentTerms":{"maxLength":200,"minLength":1,"type":"string"},"replacesInvoiceId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"sellerAddress":{"maxLength":500,"minLength":1,"type":"string"},"sellerLegalName":{"maxLength":200,"minLength":1,"type":"string"},"taxRatesBps":{"additionalProperties":false,"default":{},"properties":{"reduced":{"maximum":10000,"minimum":0,"type":"integer"},"standard":{"maximum":10000,"minimum":0,"type":"integer"}},"type":"object"}},"required":["billableIds","buyerAddress","dueAt"],"type":"object"},"CreateMcpServer":{"properties":{"args":{"anyOf":[{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},{"type":"null"}]},"authentication":{"enum":["headers","oauth"],"type":"string"},"command":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"env":{"anyOf":[{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"maxLength":256,"minLength":1,"type":"string"},"type":"object"},{"type":"null"}]},"name":{"maxLength":100,"minLength":1,"type":"string"},"oauthClientId":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"oauthClientSecret":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"projectId":{"anyOf":[{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},{"type":"null"}]},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"anyOf":[{"anyOf":[{"format":"uri","maxLength":4000,"type":"string"},{"const":"","type":"string"}]},{"type":"null"}]}},"required":["name","transport"],"type":"object"},"CreateMemory":{"properties":{"category":{"enum":["convention","decision","lesson","preference","failure","heuristic"],"type":"string"},"confidence":{"maximum":1,"minimum":0,"type":"number"},"key":{"maxLength":200,"minLength":1,"type":"string"},"scope":{"enum":["org","project","cycle","task","agent"],"type":"string"},"scopeId":{"minLength":1,"type":"string"},"source":{"enum":["auto","user","interview","review"],"type":"string"},"status":{"enum":["tentative","approved","archived"],"type":"string"},"supersededReason":{"maxLength":2000,"type":"string"},"supersedesId":{"type":"string"},"value":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["scope","scopeId","category","key","value"],"type":"object"},"CreateNote":{"additionalProperties":false,"properties":{"clientAccountId":{"minLength":1,"type":"string"},"contactId":{"minLength":1,"type":"string"},"dealId":{"minLength":1,"type":"string"},"summary":{"maxLength":4000,"minLength":1,"type":"string"}},"required":["summary"],"type":"object"},"CreatePlugin":{"additionalProperties":false,"properties":{"inputs":{"additionalProperties":{"maxLength":16384,"type":"string"},"propertyNames":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"type":"object"},"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"},"projectIds":{"anyOf":[{"items":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"maxItems":1000,"type":"array"},{"type":"null"}]}},"required":["manifest","inputs","projectIds"],"type":"object"},"CreatePortalProject":{"additionalProperties":false,"properties":{"brief":{"maxLength":20000,"type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"CreateProject":{"additionalProperties":false,"properties":{"attachments":{"items":{"properties":{"artifactKey":{"maxLength":512,"minLength":1,"type":"string"}},"required":["artifactKey"],"type":"object"},"maxItems":10,"type":"array"},"brief":{"maxLength":5000,"minLength":1,"type":"string"},"claudeMd":{"type":"string"},"githubRepository":{"maxLength":301,"pattern":"^[\\w.-]+\\/[\\w.-]+$","type":"string"},"initialProposalRequired":{"description":"Hold the first build until a person approves the plan. Defaults to false: hlix starts by itself.","type":"boolean"},"name":{"maxLength":100,"minLength":1,"type":"string"},"repos":{"items":{"additionalProperties":false,"properties":{"cloneUrl":{"format":"uri","type":"string"},"defaultBranch":{"maxLength":200,"minLength":1,"type":"string"},"githubInstallationId":{"type":["string","null"]},"githubRepoId":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"label":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}]},"name":{"maxLength":200,"minLength":1,"type":"string"},"owner":{"maxLength":100,"minLength":1,"type":"string"},"provider":{"const":"github","type":"string"}},"required":["owner","name","cloneUrl"],"type":"object"},"maxItems":20,"type":"array"},"runtime":{"additionalProperties":false,"properties":{"agents":{"items":{"enum":["claude-code","codex","opencode","goose","qwen-code","pi"],"type":"string"},"maxItems":8,"type":"array"},"aptPackages":{"items":{"maxLength":200,"minLength":1,"type":"string"},"maxItems":64,"type":"array"},"deployment":{"oneOf":[{"properties":{"buildCommand":{"maxLength":10000,"minLength":1,"type":"string"},"kind":{"const":"static","type":"string"},"outDir":{"maxLength":2000,"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["repoId","kind","buildCommand","outDir"],"type":"object"},{"properties":{"kind":{"const":"server","type":"string"},"repoId":{"minLength":1,"type":"string"},"startCommand":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["repoId","kind","startCommand"],"type":"object"}]},"envOverrides":{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"type":"object"},"notes":{"items":{"maxLength":2000,"type":"string"},"maxItems":100,"type":"array"},"preview":{"properties":{"command":{"maxLength":10000,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":1024,"type":"integer"}},"required":["command","port"],"type":"object"},"services":{"items":{"properties":{"name":{"enum":["mysql","postgres","redis"],"type":"string"},"ready":{"maxLength":10000,"type":"string"},"start":{"maxLength":10000,"type":"string"},"stop":{"maxLength":10000,"type":"string"}},"required":["name"],"type":"object"},"maxItems":3,"type":"array"},"setup":{"maxLength":50000,"type":"string"},"toolchain":{"additionalProperties":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"number"},{"type":"boolean"}]},"properties":{"bun":{"type":["string","number"]},"node":{"type":["string","number"]},"playwright":{"type":"boolean"},"python":{"type":["string","number"]}},"type":"object"},"verifyCommand":{"maxLength":10000,"type":"string"}},"type":"object"},"stack":{"maxLength":200,"minLength":1,"type":"string"},"tier":{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"},"useWorkspaceBrand":{"type":"boolean"}},"type":"object"},"CreateReviewComment":{"properties":{"body":{"maxLength":10000,"minLength":1,"type":"string"},"headSha":{"pattern":"^[0-9a-f]{40}$","type":"string"},"lineEnd":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"lineStart":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"path":{"anyOf":[{"maxLength":1024,"minLength":1,"type":"string"},{"type":"null"}]},"selectedText":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"side":{"anyOf":[{"enum":["base","head"],"type":"string"},{"type":"null"}]},"visualContext":{"additionalProperties":false,"properties":{"pagePath":{"maxLength":2048,"minLength":1,"pattern":"^\\/(?!\\/)","type":"string"},"selector":{"maxLength":512,"minLength":1,"type":"string"},"viewport":{"additionalProperties":false,"properties":{"deviceScaleFactor":{"const":1,"type":"number"},"height":{"maximum":1200,"minimum":320,"type":"integer"},"width":{"maximum":1920,"minimum":320,"type":"integer"}},"required":["width","height","deviceScaleFactor"],"type":"object"}},"required":["pagePath","selector","viewport"],"type":"object"}},"required":["headSha","body"],"type":"object"},"CreateSecretsConfig":{"oneOf":[{"properties":{"config":{"properties":{"clientId":{"minLength":1,"type":"string"},"clientSecret":{"minLength":1,"type":"string"},"environment":{"minLength":1,"type":"string"},"projectId":{"minLength":1,"type":"string"},"recursive":{"type":"boolean"},"secretPath":{"maxLength":256,"type":"string"},"siteUrl":{"type":"string"}},"required":["clientId","clientSecret","projectId","environment"],"type":"object"},"envFilter":{"type":"string"},"label":{"maxLength":100,"minLength":1,"type":"string"},"provider":{"const":"infisical","type":"string"}},"required":["provider","label","config"],"type":"object"},{"properties":{"config":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"envFilter":{"type":"string"},"label":{"maxLength":100,"minLength":1,"type":"string"},"provider":{"const":"manual","type":"string"}},"required":["provider","label","config"],"type":"object"}]},"CreateTask":{"properties":{"description":{"maxLength":5000,"minLength":1,"type":"string"},"doneWhen":{"maxLength":1000,"minLength":1,"pattern":"^[^\\r\\n]+$","type":"string"},"projectId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"taskConfig":{"additionalProperties":false,"properties":{"agent":{"enum":["claude-code","codex","opencode","goose","qwen-code","pi","hlix"],"type":"string"},"funding":{"additionalProperties":false,"properties":{"accountId":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]},"mode":{"enum":["managed","api_key","subscription"],"type":"string"},"nativeModel":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]},"providerId":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["mode","accountId","nativeModel"],"type":"object"}},"type":"object"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["projectId","description"],"type":"object"},"CreditsState":{"properties":{"balance":{"anyOf":[{"properties":{"autoTasksLeft":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"leftCredits":{"type":"number"},"planCredits":{"type":"number"},"resetsAt":{"type":["string","null"]},"rolloverCredits":{"type":"number"},"usedCredits":{"type":"number"}},"required":["planCredits","rolloverCredits","usedCredits","leftCredits","autoTasksLeft","resetsAt"],"type":"object"},{"type":"null"}]},"billingMode":{"enum":["metered","tasks"],"type":"string"},"freeReworkRounds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"frontierMaxEffort":{"enum":["low","medium","high"],"type":"string"},"taskCredits":{"properties":{"auto":{"properties":{"complex":{"type":"number"},"medium":{"type":"number"},"simple":{"type":"number"}},"required":["simple","medium","complex"],"type":"object"},"frontier":{"type":"number"},"frontierMax":{"type":"number"},"ownSubscription":{"type":"number"}},"required":["auto","frontier","frontierMax","ownSubscription"],"type":"object"}},"required":["billingMode","taskCredits","freeReworkRounds","frontierMaxEffort","balance"],"type":"object"},"CrmActivity":{"properties":{"actorId":{"type":["string","null"]},"actorType":{"enum":["agent","user","system"],"type":"string"},"clientAccountId":{"type":["string","null"]},"contactId":{"type":["string","null"]},"createdAt":{"type":"string"},"dealId":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["email","meeting","note","stage_change","task","project","invoice"],"type":"string"},"occurredAt":{"type":"string"},"organizationId":{"type":"string"},"ref":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"summary":{"type":"string"}},"required":["id","organizationId","dealId","contactId","clientAccountId","kind","actorType","actorId","summary","ref","occurredAt","createdAt"],"type":"object"},"CrmBoard":{"properties":{"forecast":{"items":{"properties":{"closedMonth":{"type":"string"},"count":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"currency":{"type":["string","null"]},"expectedMonth":{"type":["string","null"]},"micros":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"stage":{"type":"string"}},"required":["stage","currency","expectedMonth","closedMonth","count","micros"],"type":"object"},"type":"array"},"funnel":{"properties":{"interested":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"meetings":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"proposals":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"reached":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"replied":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"since":{"type":"string"},"won":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["since","reached","replied","interested","meetings","proposals","won"],"type":"object"},"pipeline":{"properties":{"clientAccountId":{"type":["string","null"]},"createdAt":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"stageProbabilities":{"additionalProperties":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"propertyNames":{"type":"string"},"type":"object"},"stages":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"}},"required":["id","organizationId","clientAccountId","name","stages","stageProbabilities","createdAt","updatedAt"],"type":"object"},"stages":{"items":{"properties":{"count":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"deals":{"items":{"properties":{"clientAccount":{"anyOf":[{"description":"The deal's client account.","properties":{"displayName":{"type":"string"},"id":{"type":"string"},"status":{"type":"string"}},"required":["id","displayName","status"],"type":"object"},{"type":"null"}]},"clientAccountId":{"type":"string"},"closedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"currency":{"type":["string","null"]},"expectedCloseOn":{"type":["string","null"]},"id":{"type":"string"},"lastActivityAt":{"type":"string"},"lostReason":{"type":["string","null"]},"nextStep":{"type":["string","null"]},"nextStepAt":{"type":["string","null"]},"organizationId":{"type":"string"},"owner":{"anyOf":[{"description":"The deal's owner, a member of this workspace.","properties":{"id":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"}},"required":["id","name","image"],"type":"object"},{"type":"null"}]},"ownerUserId":{"type":["string","null"]},"pipelineId":{"type":"string"},"primaryContact":{"anyOf":[{"description":"The client account's first contact.","properties":{"id":{"type":"string"},"name":{"type":"string"},"title":{"type":["string","null"]}},"required":["id","name","title"],"type":"object"},{"type":"null"}]},"sourceKind":{"enum":["play","referral","inbound","manual"],"type":"string"},"sourcePlay":{"anyOf":[{"description":"The play that found the deal; null unless `sourceKind` is `play`.","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},{"type":"null"}]},"sourcePlayId":{"type":["string","null"]},"stage":{"type":"string"},"suggestion":{"anyOf":[{"description":"The deal's stored suggested next step; null when there is none.","properties":{"hasDraft":{"type":"boolean"},"source":{"enum":["agent","user"],"type":"string"},"step":{"type":"string"}},"required":["step","hasDraft","source"],"type":"object"},{"type":"null"}]},"updatedAt":{"type":"string"},"valueMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"wonAt":{"type":["string","null"]}},"required":["id","organizationId","pipelineId","clientAccountId","stage","valueMicros","currency","ownerUserId","sourceKind","sourcePlayId","nextStep","nextStepAt","expectedCloseOn","lostReason","wonAt","closedAt","createdAt","updatedAt","clientAccount","primaryContact","owner","sourcePlay","lastActivityAt","suggestion"],"type":"object"},"type":"array"},"name":{"type":"string"},"totals":{"additionalProperties":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"propertyNames":{"type":"string"},"type":"object"}},"required":["name","deals","count","totals"],"type":"object"},"type":"array"}},"required":["pipeline","stages","forecast","funnel"],"type":"object"},"CrmClientRecord":{"properties":{"account":{"properties":{"createdAt":{"type":"string"},"displayName":{"type":"string"},"id":{"type":"string"},"legalName":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","displayName","legalName","status","createdAt"],"type":"object"},"activities":{"items":{"properties":{"actorId":{"type":["string","null"]},"actorType":{"enum":["agent","user","system"],"type":"string"},"clientAccountId":{"type":["string","null"]},"contactId":{"type":["string","null"]},"createdAt":{"type":"string"},"dealId":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["email","meeting","note","stage_change","task","project","invoice"],"type":"string"},"occurredAt":{"type":"string"},"organizationId":{"type":"string"},"ref":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"summary":{"type":"string"}},"required":["id","organizationId","dealId","contactId","clientAccountId","kind","actorType","actorId","summary","ref","occurredAt","createdAt"],"type":"object"},"type":"array"},"contacts":{"items":{"properties":{"clientAccountId":{"type":"string"},"createdAt":{"type":"string"},"email":{"type":["string","null"]},"gtmPersonId":{"type":["string","null"]},"id":{"type":"string"},"linkedinUrl":{"type":["string","null"]},"name":{"type":"string"},"optedOut":{"type":"boolean"},"organizationId":{"type":"string"},"sourceNote":{"type":["string","null"]},"title":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","organizationId","clientAccountId","gtmPersonId","name","email","title","linkedinUrl","sourceNote","optedOut","createdAt","updatedAt"],"type":"object"},"type":"array"},"conversation":{"items":{"properties":{"campaign":{"description":"The campaign the thread belongs to.","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"contactId":{"type":"string"},"contactName":{"type":"string"},"leadId":{"type":"string"},"messages":{"items":{"properties":{"body":{"type":"string"},"classification":{"anyOf":[{"enum":["interested","later","no","unsubscribe","out_of_office","other"],"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"direction":{"enum":["out","in"],"type":"string"},"fromEmail":{"type":["string","null"]},"id":{"type":"string"},"sentAt":{"type":["string","null"]},"status":{"enum":["draft","scheduled","sending","sent","failed","canceled","received"],"type":"string"},"subject":{"type":["string","null"]}},"required":["id","direction","status","subject","body","classification","fromEmail","sentAt","createdAt"],"type":"object"},"type":"array"}},"required":["leadId","contactId","contactName","campaign","messages"],"type":"object"},"type":"array"},"deals":{"items":{"properties":{"clientAccountId":{"type":"string"},"closedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"currency":{"type":["string","null"]},"expectedCloseOn":{"type":["string","null"]},"id":{"type":"string"},"lostReason":{"type":["string","null"]},"nextStep":{"type":["string","null"]},"nextStepAt":{"type":["string","null"]},"organizationId":{"type":"string"},"ownerUserId":{"type":["string","null"]},"pipelineId":{"type":"string"},"sourceKind":{"enum":["play","referral","inbound","manual"],"type":"string"},"sourcePlayId":{"type":["string","null"]},"stage":{"type":"string"},"updatedAt":{"type":"string"},"valueMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"wonAt":{"type":["string","null"]}},"required":["id","organizationId","pipelineId","clientAccountId","stage","valueMicros","currency","ownerUserId","sourceKind","sourcePlayId","nextStep","nextStepAt","expectedCloseOn","lostReason","wonAt","closedAt","createdAt","updatedAt"],"type":"object"},"type":"array"},"invoices":{"properties":{"byStatus":{"additionalProperties":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"propertyNames":{"type":"string"},"type":"object"},"total":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["total","byStatus"],"type":"object"},"pipelineStages":{"items":{"type":"string"},"type":"array"},"projects":{"items":{"properties":{"archivedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["delivery","growth"],"type":"string"},"name":{"type":"string"}},"required":["id","name","kind","archivedAt","createdAt"],"type":"object"},"type":"array"},"suggestions":{"items":{"properties":{"basisAt":{"type":"string"},"createdAt":{"type":"string"},"dealId":{"type":"string"},"draftBody":{"type":["string","null"]},"draftSubject":{"type":["string","null"]},"editedByUserId":{"type":["string","null"]},"organizationId":{"type":"string"},"source":{"enum":["agent","user"],"type":"string"},"step":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["dealId","organizationId","step","draftSubject","draftBody","source","editedByUserId","basisAt","createdAt","updatedAt"],"type":"object"},"type":"array"}},"required":["account","deals","contacts","activities","projects","invoices","pipelineStages","suggestions","conversation"],"type":"object"},"CrmContact":{"properties":{"clientAccountId":{"type":"string"},"createdAt":{"type":"string"},"email":{"type":["string","null"]},"gtmPersonId":{"type":["string","null"]},"id":{"type":"string"},"linkedinUrl":{"type":["string","null"]},"name":{"type":"string"},"optedOut":{"type":"boolean"},"organizationId":{"type":"string"},"sourceNote":{"type":["string","null"]},"title":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","organizationId","clientAccountId","gtmPersonId","name","email","title","linkedinUrl","sourceNote","optedOut","createdAt","updatedAt"],"type":"object"},"CrmDeal":{"properties":{"clientAccountId":{"type":"string"},"closedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"currency":{"type":["string","null"]},"expectedCloseOn":{"type":["string","null"]},"id":{"type":"string"},"lostReason":{"type":["string","null"]},"nextStep":{"type":["string","null"]},"nextStepAt":{"type":["string","null"]},"organizationId":{"type":"string"},"ownerUserId":{"type":["string","null"]},"pipelineId":{"type":"string"},"sourceKind":{"enum":["play","referral","inbound","manual"],"type":"string"},"sourcePlayId":{"type":["string","null"]},"stage":{"type":"string"},"updatedAt":{"type":"string"},"valueMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"wonAt":{"type":["string","null"]}},"required":["id","organizationId","pipelineId","clientAccountId","stage","valueMicros","currency","ownerUserId","sourceKind","sourcePlayId","nextStep","nextStepAt","expectedCloseOn","lostReason","wonAt","closedAt","createdAt","updatedAt"],"type":"object"},"CrmDealSuggestion":{"properties":{"basisAt":{"type":"string"},"createdAt":{"type":"string"},"dealId":{"type":"string"},"draftBody":{"type":["string","null"]},"draftSubject":{"type":["string","null"]},"editedByUserId":{"type":["string","null"]},"organizationId":{"type":"string"},"source":{"enum":["agent","user"],"type":"string"},"step":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["dealId","organizationId","step","draftSubject","draftBody","source","editedByUserId","basisAt","createdAt","updatedAt"],"type":"object"},"CrmPipeline":{"properties":{"clientAccountId":{"type":["string","null"]},"createdAt":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"stageProbabilities":{"additionalProperties":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"propertyNames":{"type":"string"},"type":"object"},"stages":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"}},"required":["id","organizationId","clientAccountId","name","stages","stageProbabilities","createdAt","updatedAt"],"type":"object"},"CrmRegeneratedSuggestion":{"anyOf":[{"properties":{"basisAt":{"type":"string"},"createdAt":{"type":"string"},"dealId":{"type":"string"},"draftBody":{"type":["string","null"]},"draftSubject":{"type":["string","null"]},"editedByUserId":{"type":["string","null"]},"organizationId":{"type":"string"},"source":{"enum":["agent","user"],"type":"string"},"step":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["dealId","organizationId","step","draftSubject","draftBody","source","editedByUserId","basisAt","createdAt","updatedAt"],"type":"object"},{"type":"null"}]},"CustomDomain":{"properties":{"domain":{"anyOf":[{"maxLength":253,"pattern":"^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$","type":"string"},{"type":"null"}]},"projectId":{"minLength":1,"type":"string"}},"required":["projectId","domain"],"type":"object"},"CustomDomainStatus":{"properties":{"domain":{"type":["string","null"]},"errors":{"items":{"type":"string"},"type":"array"},"records":{"items":{"properties":{"name":{"type":"string"},"type":{"enum":["CNAME","TXT"],"type":"string"},"value":{"type":"string"}},"required":["type","name","value"],"type":"object"},"type":"array"},"state":{"enum":["pending","issuing","active","failed"],"type":"string"}},"required":["domain"],"type":"object"},"CustomSkill":{"properties":{"content":{"type":"string"},"createdAt":{"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectIds":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","slug","name","description","content","enabled","createdAt","updatedAt","projectIds"],"type":"object"},"CustomerAccessRemoved":{"properties":{"grants":{"items":{"properties":{"canAccessCanvas":{"type":"boolean"},"canMessage":{"type":"boolean"},"projectId":{"type":"string"},"showProjectInsights":{"type":"boolean"}},"required":["projectId","canMessage","canAccessCanvas","showProjectInsights"],"type":"object"},"type":"array"},"seat":{"type":"boolean"}},"required":["seat","grants"],"type":"object"},"CustomerAccessRestored":{"properties":{"grants":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"seat":{"type":"boolean"}},"required":["seat","grants"],"type":"object"},"CustomersReport":{"properties":{"customers":{"items":{"properties":{"activeProjectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"atRiskProjectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"billed":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"id":{"type":"string"},"lastActivityAt":{"type":["string","null"]},"name":{"type":"string"},"outstanding":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"overdue":{"items":{"properties":{"amountMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"count":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"currency":{"type":"string"},"minorUnitExponent":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["currency","amountMicros","minorUnitExponent","count"],"type":"object"},"type":"array"},"pendingClientDecisions":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"projectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"status":{"enum":["active","archived"],"type":"string"}},"required":["id","name","status","projectCount","activeProjectCount","atRiskProjectCount","pendingClientDecisions","lastActivityAt","billed","outstanding","overdue"],"type":"object"},"type":"array"},"generatedAt":{"type":"string"},"period":{"properties":{"days":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to","days"],"type":"object"}},"required":["generatedAt","period","customers"],"type":"object"},"Cycle":{"properties":{"assignedUserId":{"type":["string","null"]},"baseRef":{"type":["string","null"]},"branchSlug":{"type":["string","null"]},"createdAt":{"type":"string"},"createdByRunId":{"type":["string","null"]},"dependsOn":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"e2eVideoUrl":{"type":["string","null"]},"handling":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["work","setup"],"type":"string"},"linearIssueIdentifier":{"type":["string","null"]},"organizationId":{"type":"string"},"originCycleId":{"type":["string","null"]},"outcomeSummary":{"type":["string","null"]},"prUrl":{"type":["string","null"]},"previewBranch":{"type":["string","null"]},"priority":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":"string"},"refinedReqs":{"type":["string","null"]},"replannedThroughRun":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"repoId":{"type":["string","null"]},"requestedByUserId":{"type":["string","null"]},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"role":{"type":["string","null"]},"runPin":{"anyOf":[{"properties":{"coder":{"type":"string"},"effort":{"type":"string"},"funding":{"properties":{"accountId":{"type":["string","null"]},"mode":{"enum":["managed","subscription","api_key"],"type":"string"},"nativeModel":{"type":["string","null"]}},"required":["mode","accountId","nativeModel"],"type":"object"},"model":{"type":"string"}},"type":"object"},{"type":"null"}]},"source":{"type":["string","null"]},"stageHistory":{"items":{"properties":{"actor":{"properties":{"id":{"type":"string"},"type":{"enum":["human","agent","rule"],"type":"string"}},"required":["type"],"type":"object"},"at":{"type":"string"},"from":{"anyOf":[{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},{"type":"null"}]},"reason":{"type":"string"},"ruleSetVersion":{"type":"string"},"sources":{"properties":{"complexity":{"enum":["simple","ambiguous","systemic"],"type":"string"},"direct":{"type":"boolean"},"fixOfTaskId":{"type":"string"},"provenance":{"enum":["classified","unavailable"],"type":"string"},"quick":{"type":"boolean"},"requestKind":{"enum":["fix","change"],"type":"string"},"risk":{"enum":["low","medium","high"],"type":"string"}},"required":["complexity","risk","provenance"],"type":"object"},"to":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"}},"required":["from","to","at","actor","ruleSetVersion"],"type":"object"},"type":"array"},"status":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},"targetBranch":{"type":["string","null"]},"taskTimeoutMinutes":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"title":{"type":"string"},"totalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","title","branchSlug","description","refinedReqs","status","previewBranch","targetBranch","baseRef","replannedThroughRun","role","repoId","runPin","taskTimeoutMinutes","prUrl","e2eVideoUrl","totalCostMicros","priority","dependsOn","outcomeSummary","source","linearIssueIdentifier","revision","stageHistory","handling","kind","assignedUserId","requestedByUserId","createdByRunId","originCycleId","createdAt","updatedAt"],"type":"object"},"CycleDetail":{"properties":{"assignedUserId":{"type":["string","null"]},"baseRef":{"type":["string","null"]},"branchSlug":{"type":["string","null"]},"createdAt":{"type":"string"},"createdByRun":{"anyOf":[{"properties":{"cycleId":{"type":["string","null"]},"cycleName":{"type":["string","null"]},"id":{"type":"string"},"taskId":{"type":["string","null"]}},"required":["id","taskId","cycleId","cycleName"],"type":"object"},{"type":"null"}]},"createdByRunId":{"type":["string","null"]},"dependsOn":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"e2eVideoUrl":{"type":["string","null"]},"handling":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["work","setup"],"type":"string"},"linearIssueIdentifier":{"type":["string","null"]},"linearIssueUrl":{"type":["string","null"]},"organizationId":{"type":"string"},"originCycleId":{"type":["string","null"]},"outcomeSummary":{"type":["string","null"]},"prUrl":{"type":["string","null"]},"previewBranch":{"type":["string","null"]},"previewUrl":{"type":["string","null"]},"priority":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":"string"},"refinedReqs":{"type":["string","null"]},"replannedThroughRun":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"repoId":{"type":["string","null"]},"requestedByUserId":{"type":["string","null"]},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"role":{"type":["string","null"]},"runPin":{"anyOf":[{"properties":{"coder":{"type":"string"},"effort":{"type":"string"},"funding":{"properties":{"accountId":{"type":["string","null"]},"mode":{"enum":["managed","subscription","api_key"],"type":"string"},"nativeModel":{"type":["string","null"]}},"required":["mode","accountId","nativeModel"],"type":"object"},"model":{"type":"string"}},"type":"object"},{"type":"null"}]},"source":{"type":["string","null"]},"stageHistory":{"items":{"properties":{"actor":{"properties":{"id":{"type":"string"},"type":{"enum":["human","agent","rule"],"type":"string"}},"required":["type"],"type":"object"},"at":{"type":"string"},"from":{"anyOf":[{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},{"type":"null"}]},"reason":{"type":"string"},"ruleSetVersion":{"type":"string"},"sources":{"properties":{"complexity":{"enum":["simple","ambiguous","systemic"],"type":"string"},"direct":{"type":"boolean"},"fixOfTaskId":{"type":"string"},"provenance":{"enum":["classified","unavailable"],"type":"string"},"quick":{"type":"boolean"},"requestKind":{"enum":["fix","change"],"type":"string"},"risk":{"enum":["low","medium","high"],"type":"string"}},"required":["complexity","risk","provenance"],"type":"object"},"to":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"}},"required":["from","to","at","actor","ruleSetVersion"],"type":"object"},"type":"array"},"status":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},"targetBranch":{"type":["string","null"]},"taskTimeoutMinutes":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tasks":{"items":{"properties":{"agentId":{"type":["string","null"]},"billableCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"currentStage":{"type":["string","null"]},"cycleId":{"type":["string","null"]},"deliveryEvidence":{"properties":{"candidateRevision":{"pattern":"^[a-f0-9]{40}$","type":"string"},"deliveredRevision":{"pattern":"^[a-f0-9]{40}$","type":"string"},"integratedRepos":{"items":{"type":"string"},"type":"array"},"integratedRevision":{"pattern":"^[a-f0-9]{40}$","type":"string"},"reason":{"enum":["awaiting_delivery","stale_receipt","unknown_evidence","required_checks_unmet","independent_review_unmet","durable_output_missing","durable_output_changed","durable_output_unknown","candidate_changed","repository_unknown","preview_unmet","pull_request_unmet","delivery_write_unmet"],"type":"string"},"status":{"enum":["delivered","unmet","unknown"],"type":"string"}},"required":["status"],"type":"object"},"dependsOn":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"doingSince":{"type":["string","null"]},"doneWhen":{"type":["string","null"]},"headSha":{"type":["string","null"]},"id":{"type":"string"},"implementationPlan":{"type":["string","null"]},"iteration":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"metadata":{},"note":{"type":["string","null"]},"organizationId":{"type":"string"},"pipeline":{},"projectId":{"type":"string"},"repoId":{"type":["string","null"]},"requirementsSummary":{"type":["string","null"]},"reviewFeedback":{"type":["string","null"]},"reviewRounds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sortOrder":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"source":{"enum":["project_manager","build","review","platform"],"type":"string"},"status":{"enum":["queued","blocked","building","testing","reviewing","approved","merging","resolving","merged","pr_created","ci_passing","done","failed"],"type":"string"},"title":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","cycleId","repoId","agentId","title","description","doneWhen","status","headSha","costMicros","billableCostMicros","sortOrder","iteration","reviewRounds","reviewFeedback","note","doingSince","source","requirementsSummary","implementationPlan","pipeline","currentStage","metadata","createdAt","updatedAt","dependsOn"],"type":"object"},"type":"array"},"title":{"type":"string"},"totalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","title","branchSlug","description","refinedReqs","status","previewBranch","targetBranch","baseRef","replannedThroughRun","role","repoId","runPin","taskTimeoutMinutes","prUrl","e2eVideoUrl","totalCostMicros","priority","dependsOn","outcomeSummary","source","linearIssueIdentifier","revision","stageHistory","handling","kind","assignedUserId","requestedByUserId","createdByRunId","originCycleId","createdAt","updatedAt","linearIssueUrl","tasks","previewUrl","createdByRun"],"type":"object"},"CycleE2eReport":{"properties":{"finishedAt":{"type":"string"},"journeys":{"items":{"properties":{"by":{"enum":["build","review"],"type":"string"},"finishedAt":{"type":"string"},"journeyId":{"type":"string"},"outcome":{"enum":["passed","failed","unverified"],"type":"string"},"reason":{"type":"string"},"recordingKeys":{"items":{"type":"string"},"type":"array"},"requirement":{"type":"string"},"startedAt":{"type":"string"},"taskIds":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"},"traceKey":{"type":"string"}},"required":["journeyId","title","taskIds","outcome","startedAt","finishedAt","recordingKeys"],"type":"object"},"type":"array"},"previewUrl":{"type":"string"},"status":{"enum":["verified","rejected","not_run"],"type":"string"}},"required":["status","journeys"],"type":"object"},"CycleExecutionStarted":{"properties":{"chatId":{"type":"string"},"message":{"type":"string"}},"required":["message","chatId"],"type":"object"},"CycleMessage":{"properties":{"agentId":{"anyOf":[{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},{"type":"null"}]},"attachments":{"items":{"properties":{"artifactKey":{"maxLength":512,"minLength":1,"type":"string"}},"required":["artifactKey"],"type":"object"},"maxItems":10,"type":"array"},"content":{"type":"string"},"deliver":{"type":"boolean"},"messageId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"urgent":{"type":"boolean"}},"required":["content"],"type":"object"},"CycleMetrics":{"properties":{"agingWip":{"items":{"properties":{"cycleId":{"type":"string"},"stageAgeMs":{"type":"number"},"status":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},"thresholdMs":{"type":"number"}},"required":["cycleId","status","stageAgeMs","thresholdMs"],"type":"object"},"type":"array"},"automationQuality":{"properties":{"automatedShare":{"type":["number","null"]},"automatedStageExits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cleanAutomatedExits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"humanStageExits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"qualityAdjustedShare":{"type":["number","null"]},"reworkedAutomatedExits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"totalStageExits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["totalStageExits","automatedStageExits","humanStageExits","automatedShare","reworkedAutomatedExits","cleanAutomatedExits","qualityAdjustedShare"],"type":"object"},"cycleTimeMs":{"properties":{"p50":{"type":["number","null"]},"p90":{"type":["number","null"]},"sampleSize":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["p50","p90","sampleSize"],"type":"object"},"perCycle":{"items":{"properties":{"agentRuns":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cloudMachineStarts":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"coderRestarts":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycleId":{"type":"string"},"modelCalls":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"stageTimes":{"items":{"properties":{"ms":{"type":"number"},"status":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"}},"required":["status","ms"],"type":"object"},"type":"array"},"status":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},"title":{"type":"string"},"tokensIn":{"type":"number"},"tokensOut":{"type":"number"}},"required":["cycleId","title","status","modelCalls","agentRuns","tokensIn","tokensOut","costMicros","cloudMachineStarts","coderRestarts","stageTimes"],"type":"object"},"type":"array"},"perStageMedians":{"items":{"properties":{"medianMs":{"type":"number"},"status":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"}},"required":["status","medianMs"],"type":"object"},"type":"array"},"throughput":{"properties":{"canceled":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"completed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"failed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["completed","failed","canceled"],"type":"object"},"totalCycles":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"wip":{"properties":{"byStatus":{"items":{"properties":{"count":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"status":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"}},"required":["status","count"],"type":"object"},"type":"array"},"total":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["total","byStatus"],"type":"object"}},"required":["totalCycles","throughput","cycleTimeMs","perStageMedians","wip","agingWip","automationQuality","perCycle"],"type":"object"},"CycleReviewEvidence":{"properties":{"additions":{"type":["number","null"]},"baseRef":{"type":["string","null"]},"baseSha":{"type":["string","null"]},"commits":{"type":["number","null"]},"comparison":{"properties":{"aheadBy":{"type":["number","null"]},"behindBy":{"type":["number","null"]},"status":{"enum":["ahead","behind","identical","diverged","unknown"],"type":"string"}},"required":["status","aheadBy","behindBy"],"type":"object"},"cycleId":{"type":"string"},"deletions":{"type":["number","null"]},"evaluator":{"anyOf":[{"properties":{"headSha":{"type":["string","null"]},"observedAt":{"type":"string"},"stale":{"type":"boolean"},"summary":{"type":["string","null"]},"verdict":{"enum":["approved","rejected"],"type":"string"}},"required":["verdict","summary","headSha","observedAt","stale"],"type":"object"},{"type":"null"}]},"files":{"items":{"properties":{"additions":{"type":["number","null"]},"deletions":{"type":["number","null"]},"patch":{"type":["string","null"]},"patchTruncated":{"type":"boolean"},"path":{"type":"string"},"previousPath":{"type":["string","null"]},"status":{"enum":["added","removed","modified","renamed","copied","changed","unchanged","unknown"],"type":"string"}},"required":["path","previousPath","status","additions","deletions","patch","patchTruncated"],"type":"object"},"type":"array"},"filesChanged":{"type":["number","null"]},"filesTruncated":{"type":"boolean"},"headRef":{"type":["string","null"]},"headSha":{"type":["string","null"]},"observedAt":{"type":"string"},"repoId":{"type":["string","null"]},"source":{"enum":["github-compare","hlix-repos-compare"],"type":"string"}},"required":["cycleId","repoId","source","observedAt","baseRef","baseSha","headRef","headSha","comparison","filesChanged","additions","deletions","commits","files","filesTruncated","evaluator"],"type":"object"},"CycleStopped":{"properties":{"projectManagerNotified":{"type":"boolean"},"status":{"type":"string"},"stopped":{"const":true,"type":"boolean"}},"required":["stopped","status","projectManagerNotified"],"type":"object"},"CycleSummary":{"properties":{"assignedUser":{"anyOf":[{"properties":{"id":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"}},"required":["id","name","image"],"type":"object"},{"type":"null"}]},"assignedUserId":{"type":["string","null"]},"baseRef":{"type":["string","null"]},"branchSlug":{"type":["string","null"]},"createdAt":{"type":"string"},"createdByRunId":{"type":["string","null"]},"dependsOn":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"e2eVideoUrl":{"type":["string","null"]},"following":{"type":"boolean"},"handling":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["work","setup"],"type":"string"},"linearIssueIdentifier":{"type":["string","null"]},"linearIssueUrl":{"type":["string","null"]},"organizationId":{"type":"string"},"originCycleId":{"type":["string","null"]},"outcomeSummary":{"type":["string","null"]},"prUrl":{"type":["string","null"]},"previewBranch":{"type":["string","null"]},"priority":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":"string"},"projectName":{"type":"string"},"projectStatus":{"enum":["idle","planning","building","checking","ready","paused_budget","stopped","archived"],"type":"string"},"refinedReqs":{"type":["string","null"]},"replannedThroughRun":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"repoId":{"type":["string","null"]},"requestedByUserId":{"type":["string","null"]},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"role":{"type":["string","null"]},"runPin":{"anyOf":[{"properties":{"coder":{"type":"string"},"effort":{"type":"string"},"funding":{"properties":{"accountId":{"type":["string","null"]},"mode":{"enum":["managed","subscription","api_key"],"type":"string"},"nativeModel":{"type":["string","null"]}},"required":["mode","accountId","nativeModel"],"type":"object"},"model":{"type":"string"}},"type":"object"},{"type":"null"}]},"source":{"type":["string","null"]},"stageHistory":{"items":{"properties":{"actor":{"properties":{"id":{"type":"string"},"type":{"enum":["human","agent","rule"],"type":"string"}},"required":["type"],"type":"object"},"at":{"type":"string"},"from":{"anyOf":[{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},{"type":"null"}]},"reason":{"type":"string"},"ruleSetVersion":{"type":"string"},"sources":{"properties":{"complexity":{"enum":["simple","ambiguous","systemic"],"type":"string"},"direct":{"type":"boolean"},"fixOfTaskId":{"type":"string"},"provenance":{"enum":["classified","unavailable"],"type":"string"},"quick":{"type":"boolean"},"requestKind":{"enum":["fix","change"],"type":"string"},"risk":{"enum":["low","medium","high"],"type":"string"}},"required":["complexity","risk","provenance"],"type":"object"},"to":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"}},"required":["from","to","at","actor","ruleSetVersion"],"type":"object"},"type":"array"},"status":{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},"targetBranch":{"type":["string","null"]},"taskTimeoutMinutes":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"title":{"type":"string"},"totalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","title","branchSlug","description","refinedReqs","status","previewBranch","targetBranch","baseRef","replannedThroughRun","role","repoId","runPin","taskTimeoutMinutes","prUrl","e2eVideoUrl","totalCostMicros","priority","dependsOn","outcomeSummary","source","linearIssueIdentifier","revision","stageHistory","handling","kind","assignedUserId","requestedByUserId","createdByRunId","originCycleId","createdAt","updatedAt","linearIssueUrl","projectName","projectStatus","assignedUser","following"],"type":"object"},"CycleTurn":{"properties":{"delivery":{"enum":["now","next_turn","queued","message","chat"],"type":"string"},"replayed":{"type":"boolean"},"stored":{"const":true,"type":"boolean"}},"required":["stored","delivery"],"type":"object"},"DealSuggestion":{"additionalProperties":false,"properties":{"draftBody":{"anyOf":[{"maxLength":5000,"minLength":1,"type":"string"},{"type":"null"}]},"draftSubject":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]},"step":{"maxLength":200,"minLength":1,"type":"string"}},"required":["step","draftSubject","draftBody"],"type":"object"},"DecideDeliverableApproval":{"additionalProperties":false,"properties":{"comment":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"decision":{"enum":["approved","changes_requested"],"type":"string"}},"required":["decision"],"type":"object"},"DeletedAck":{"properties":{"ok":{"const":true,"type":"boolean"}},"required":["ok"],"type":"object"},"Deliverable":{"properties":{"clientStatus":{"enum":["draft","in_review","delivered","accepted"],"type":"string"},"createdAt":{"type":"string"},"cycleId":{"type":"string"},"dueDate":{"type":["string","null"]},"id":{"type":"string"},"organizationId":{"type":"string"},"publishedAt":{"type":["string","null"]},"submittedRevision":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"summary":{"type":["string","null"]},"title":{"type":"string"},"updatedAt":{"type":"string"},"visibility":{"enum":["internal","client"],"type":"string"}},"required":["id","organizationId","cycleId","title","summary","dueDate","visibility","clientStatus","submittedRevision","publishedAt","createdAt","updatedAt"],"type":"object"},"DeliverableApproval":{"properties":{"comment":{"type":["string","null"]},"conversationMessageId":{"type":["string","null"]},"createdAt":{"type":"string"},"decidedAt":{"type":["string","null"]},"decidedBy":{"type":["string","null"]},"deliverableId":{"type":"string"},"id":{"type":"string"},"organizationId":{"type":"string"},"requestedBy":{"type":"string"},"requestedReviewerId":{"type":"string"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"revisionHash":{"type":"string"},"status":{"enum":["pending","approved","changes_requested"],"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","deliverableId","revision","revisionHash","requestedReviewerId","requestedBy","status","comment","conversationMessageId","decidedBy","decidedAt","createdAt","updatedAt"],"type":"object"},"DeliverableDecision":{"properties":{"comment":{"type":["string","null"]},"conversationMessageId":{"type":["string","null"]},"createdAt":{"type":"string"},"decidedAt":{"type":["string","null"]},"decidedBy":{"type":["string","null"]},"deliverableId":{"type":"string"},"deployment":{"properties":{"reason":{"enum":["not_an_approval","policy_off","previews_disabled","no_primary_repo","policy_on"],"type":"string"},"triggered":{"type":"boolean"}},"required":["triggered","reason"],"type":"object"},"id":{"type":"string"},"organizationId":{"type":"string"},"requestedBy":{"type":"string"},"requestedReviewerId":{"type":"string"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"revisionHash":{"type":"string"},"status":{"enum":["pending","approved","changes_requested"],"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","deliverableId","revision","revisionHash","requestedReviewerId","requestedBy","status","comment","conversationMessageId","decidedBy","decidedAt","createdAt","updatedAt","deployment"],"type":"object"},"DeliverablePackageDraft":{"additionalProperties":false,"properties":{"acceptanceCriteria":{"default":[],"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"clientStatus":{"default":"draft","enum":["draft","in_review","delivered","accepted"],"type":"string"},"cycleIds":{"default":[],"items":{"minLength":1,"type":"string"},"maxItems":100,"type":"array"},"dueDate":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}],"default":null},"evidenceSummary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"limitations":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"presentationSlides":{"default":[],"items":{"additionalProperties":false,"properties":{"body":{"maxLength":10000,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","body"],"type":"object"},"maxItems":50,"type":"array"},"previewDeploymentId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"default":null},"previewExpectedSha":{"anyOf":[{"pattern":"^[a-f0-9]{40}$","type":"string"},{"type":"null"}],"default":null},"summary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"title":{"maxLength":200,"minLength":1,"type":"string"},"videoUrl":{"anyOf":[{"format":"uri","maxLength":2000,"type":"string"},{"type":"null"}],"default":null}},"required":["title"],"type":"object"},"DeliverablePackageView":{"additionalProperties":false,"properties":{"acceptanceCriteria":{"default":[],"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"approval":{"properties":{"approvalId":{"type":["string","null"]},"revision":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"state":{"enum":["none","pending","approved","changes_requested","content_changed"],"type":"string"},"supersededCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["state","revision","approvalId","supersededCount"],"type":"object"},"clientStatus":{"default":"draft","enum":["draft","in_review","delivered","accepted"],"type":"string"},"createdAt":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"acceptanceCriteria":{"default":[],"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"clientStatus":{"default":"draft","enum":["draft","in_review","delivered","accepted"],"type":"string"},"cycleIds":{"default":[],"items":{"minLength":1,"type":"string"},"maxItems":100,"type":"array"},"dueDate":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}],"default":null},"evidenceSummary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"limitations":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"presentationSlides":{"default":[],"items":{"additionalProperties":false,"properties":{"body":{"maxLength":10000,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","body"],"type":"object"},"maxItems":50,"type":"array"},"previewDeploymentId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"default":null},"previewExpectedSha":{"anyOf":[{"pattern":"^[a-f0-9]{40}$","type":"string"},{"type":"null"}],"default":null},"summary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"title":{"maxLength":200,"minLength":1,"type":"string"},"videoUrl":{"anyOf":[{"format":"uri","maxLength":2000,"type":"string"},{"type":"null"}],"default":null}},"required":["title"],"type":"object"},"dueDate":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}],"default":null},"evidenceSource":{"enum":["agency","agent"],"type":"string"},"evidenceSummary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"generatedVideoUrl":{"type":["string","null"]},"id":{"type":"string"},"limitations":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"presentationSlides":{"default":[],"items":{"additionalProperties":false,"properties":{"body":{"maxLength":10000,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","body"],"type":"object"},"maxItems":50,"type":"array"},"previewAccessUrl":{"type":["string","null"]},"previewDeploymentId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"default":null},"previewGitSha":{"type":["string","null"]},"projectId":{"type":"string"},"publishedAt":{"type":["string","null"]},"submittedRevision":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"summary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}],"default":null},"title":{"maxLength":200,"minLength":1,"type":"string"},"updatedAt":{"type":"string"},"verificationTarget":{"anyOf":[{"const":"integrated_source","type":"string"},{"type":"null"}]},"videoUrl":{"anyOf":[{"format":"uri","maxLength":2000,"type":"string"},{"type":"null"}],"default":null},"visibility":{"enum":["internal","client"],"type":"string"}},"required":["title","id","projectId","visibility","submittedRevision","publishedAt","createdAt","updatedAt","evidenceSource","generatedVideoUrl","verificationTarget","previewGitSha","previewAccessUrl","approval"],"type":"object"},"DeliverablePreparationView":{"properties":{"applied":{"type":"boolean"},"createdAt":{"type":"string"},"deliverableId":{"type":"string"},"error":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"id":{"type":"string"},"recordingUrl":{"type":["string","null"]},"result":{"anyOf":[{"additionalProperties":false,"properties":{"coverage":{"items":{"additionalProperties":false,"properties":{"criterion":{"minLength":1,"type":"string"},"journeyIds":{"items":{"minLength":1,"type":"string"},"type":"array"}},"required":["criterion","journeyIds"],"type":"object"},"maxItems":50,"type":"array"},"evidenceSummary":{"maxLength":10000,"minLength":1,"type":"string"},"presentationSlides":{"items":{"additionalProperties":false,"properties":{"body":{"maxLength":10000,"minLength":1,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","body"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"recordingAvailable":{"type":"boolean"},"summary":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["summary","evidenceSummary","presentationSlides","coverage","recordingAvailable"],"type":"object"},{"type":"null"}]},"sourceSha":{"type":"string"},"stage":{"enum":["queued","verifying","presenting","recording","complete"],"type":"string"},"status":{"enum":["queued","running","succeeded","failed","stale"],"type":"string"},"verificationTarget":{"const":"integrated_source","type":"string"}},"required":["id","deliverableId","status","stage","sourceSha","verificationTarget","error","applied","result","recordingUrl","createdAt","finishedAt"],"type":"object"},"DeliverableSuggestionInput":{"additionalProperties":false,"properties":{"projectId":{"minLength":1,"type":"string"}},"required":["projectId"],"type":"object"},"DeliverableSuggestionsView":{"properties":{"generated":{"type":"boolean"},"sourceFingerprint":{"type":"string"},"suggestions":{"items":{"properties":{"acceptanceCriteria":{"items":{"type":"string"},"type":"array"},"cycleIds":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"rationale":{"type":"string"},"summary":{"type":"string"},"title":{"type":"string"}},"required":["id","title","summary","cycleIds","acceptanceCriteria","rationale"],"type":"object"},"type":"array"}},"required":["sourceFingerprint","generated","suggestions"],"type":"object"},"DeliverableView":{"properties":{"approval":{"properties":{"approvalId":{"type":["string","null"]},"revision":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"state":{"enum":["none","pending","approved","changes_requested","content_changed"],"type":"string"},"supersededCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["state","revision","approvalId","supersededCount"],"type":"object"},"clientStatus":{"enum":["draft","in_review","delivered","accepted"],"type":"string"},"createdAt":{"type":"string"},"cycleId":{"type":"string"},"dueDate":{"type":["string","null"]},"id":{"type":"string"},"organizationId":{"type":"string"},"progress":{"properties":{"evidence":{"properties":{"completedTasks":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cycleStatus":{"type":"string"},"totalTasks":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["totalTasks","completedTasks","cycleStatus"],"type":"object"},"percent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["percent","evidence"],"type":"object"},"publishedAt":{"type":["string","null"]},"submittedRevision":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"summary":{"type":["string","null"]},"title":{"type":"string"},"updatedAt":{"type":"string"},"visibility":{"enum":["internal","client"],"type":"string"}},"required":["id","organizationId","cycleId","title","summary","dueDate","visibility","clientStatus","submittedRevision","publishedAt","createdAt","updatedAt","progress","approval"],"type":"object"},"DeliveryMonthlyLimit":{"properties":{"deliveryMonthlyCapMicros":{"anyOf":[{"format":"int64","maximum":1000000000000,"minimum":0,"type":"integer"},{"type":"null"}]}},"required":["deliveryMonthlyCapMicros"],"type":"object"},"DeployProduction":{"properties":{"minInstances":{"anyOf":[{"const":0,"type":"number"},{"const":1,"type":"number"}]},"projectId":{"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["projectId"],"type":"object"},"Deployment":{"properties":{"buildId":{"type":["string","null"]},"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"errorMessage":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"gitBranch":{"type":["string","null"]},"gitSha":{"type":["string","null"]},"id":{"type":"string"},"imageUri":{"type":["string","null"]},"kind":{"type":"string"},"lastAccessedAt":{"type":["string","null"]},"organizationId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"revision":{"type":["string","null"]},"serviceName":{"type":"string"},"slug":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"},"url":{"type":["string","null"]}},"required":["id","organizationId","projectId","cycleId","kind","gitBranch","gitSha","region","serviceName","imageUri","revision","buildId","slug","url","status","errorMessage","expiresAt","lastAccessedAt","createdAt","updatedAt"],"type":"object"},"DeploymentAccepted":{"properties":{"accepted":{"const":true,"type":"boolean"},"kind":{"enum":["project","production"],"type":"string"},"repo":{"properties":{"id":{"type":"string"},"isPrimary":{"type":"boolean"},"label":{"type":["string","null"]},"name":{"type":"string"},"owner":{"type":"string"}},"required":["id","owner","name","label","isPrimary"],"type":"object"},"selectedBy":{"enum":["explicit","only","primary"],"type":"string"}},"required":["accepted","repo","selectedBy","kind"],"type":"object"},"DeploymentRepoAmbiguous":{"properties":{"error":{"type":"string"},"repos":{"items":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"owner":{"type":"string"}},"required":["id","owner","name"],"type":"object"},"type":"array"}},"required":["error"],"type":"object"},"DeploymentTouched":{"properties":{"touched":{"const":true,"type":"boolean"}},"required":["touched"],"type":"object"},"Design":{"properties":{"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"id":{"type":"string"},"intent":{"enum":["design_only","design_and_build"],"type":"string"},"latestRevisionId":{"type":["string","null"]},"projectId":{"type":"string"},"sources":{"default":[],"items":{"oneOf":[{"properties":{"kind":{"const":"file","type":"string"},"name":{"maxLength":255,"minLength":1,"type":"string"},"path":{"maxLength":500,"type":"string"}},"required":["kind","name","path"],"type":"object"},{"properties":{"kind":{"const":"link","type":"string"},"provider":{"maxLength":80,"minLength":1,"type":"string"},"url":{"maxLength":2000,"pattern":"^https?:\\/\\/","type":"string"}},"required":["kind","url","provider"],"type":"object"}]},"type":"array"},"title":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","cycleId","title","intent","latestRevisionId","createdAt","updatedAt"],"type":"object"},"DesignComment":{"properties":{"authorId":{"type":["string","null"]},"body":{"type":"string"},"createdAt":{"type":"string"},"designId":{"type":"string"},"frameId":{"type":"string"},"id":{"type":"string"},"parentId":{"type":["string","null"]},"resolved":{"type":"boolean"},"revisionId":{"type":"string"},"x":{"type":["number","null"]},"y":{"type":["number","null"]}},"required":["id","designId","revisionId","frameId","parentId","body","x","y","authorId","resolved","createdAt"],"type":"object"},"DesignDecision":{"properties":{"comment":{"maxLength":10000,"type":"string"},"decision":{"enum":["approved","changes_requested"],"type":"string"},"revisionId":{"minLength":1,"type":"string"}},"required":["revisionId","decision"],"type":"object"},"DesignDetail":{"properties":{"comments":{"items":{"properties":{"authorId":{"type":["string","null"]},"body":{"type":"string"},"createdAt":{"type":"string"},"designId":{"type":"string"},"frameId":{"type":"string"},"id":{"type":"string"},"parentId":{"type":["string","null"]},"resolved":{"type":"boolean"},"revisionId":{"type":"string"},"x":{"type":["number","null"]},"y":{"type":["number","null"]}},"required":["id","designId","revisionId","frameId","parentId","body","x","y","authorId","resolved","createdAt"],"type":"object"},"type":"array"},"design":{"properties":{"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"id":{"type":"string"},"intent":{"enum":["design_only","design_and_build"],"type":"string"},"latestRevisionId":{"type":["string","null"]},"projectId":{"type":"string"},"sources":{"default":[],"items":{"oneOf":[{"properties":{"kind":{"const":"file","type":"string"},"name":{"maxLength":255,"minLength":1,"type":"string"},"path":{"maxLength":500,"type":"string"}},"required":["kind","name","path"],"type":"object"},{"properties":{"kind":{"const":"link","type":"string"},"provider":{"maxLength":80,"minLength":1,"type":"string"},"url":{"maxLength":2000,"pattern":"^https?:\\/\\/","type":"string"}},"required":["kind","url","provider"],"type":"object"}]},"type":"array"},"title":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","projectId","cycleId","title","intent","latestRevisionId","createdAt","updatedAt"],"type":"object"},"link":{"type":"string"},"revision":{"anyOf":[{"properties":{"buildRequestedAt":{"type":["string","null"]},"contentHash":{"type":"string"},"context":{"properties":{"designMd":{"maxLength":100000,"type":"string"},"packVersion":{"maxLength":200,"type":"string"},"productMd":{"maxLength":100000,"type":"string"}},"type":"object"},"createdAt":{"type":"string"},"decidedAt":{"type":["string","null"]},"decidedBy":{"type":["string","null"]},"decisionComment":{"type":["string","null"]},"designId":{"type":"string"},"evidence":{"items":{"properties":{"flowId":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"note":{"maxLength":4000,"minLength":1,"type":"string"},"result":{"enum":["passed","failed"],"type":"string"}},"required":["flowId","result","note"],"type":"object"},"maxItems":100,"minItems":1,"type":"array"},"flows":{"items":{"properties":{"entryFrameId":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"frameIds":{"items":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"maxItems":100,"minItems":1,"type":"array"},"id":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"name":{"maxLength":160,"minLength":1,"type":"string"}},"required":["id","name","entryFrameId","frameIds"],"type":"object"},"type":"array"},"frames":{"items":{"properties":{"height":{"maximum":10000,"minimum":240,"type":"integer"},"id":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"name":{"maxLength":160,"minLength":1,"type":"string"},"route":{"pattern":"^#[\\w-]+$","type":"string"},"thumbnail":{"maxLength":200000,"pattern":"^data:image\\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2}$","type":"string"},"width":{"maximum":3840,"minimum":240,"type":"integer"}},"required":["id","name","route","width","height"],"type":"object"},"type":"array"},"html":{"type":"string"},"id":{"type":"string"},"number":{"type":"number"},"sourcePath":{"type":["string","null"]},"sourceTaskId":{"type":["string","null"]},"status":{"enum":["verifying","in_review","approved","changes_requested"],"type":"string"}},"required":["id","designId","number","html","contentHash","frames","flows","context","evidence","status","sourceTaskId","sourcePath","decidedBy","decisionComment","decidedAt","buildRequestedAt","createdAt"],"type":"object"},{"type":"null"}]},"revisions":{"items":{"properties":{"buildRequestedAt":{"type":["string","null"]},"contentHash":{"type":"string"},"context":{"properties":{"designMd":{"maxLength":100000,"type":"string"},"packVersion":{"maxLength":200,"type":"string"},"productMd":{"maxLength":100000,"type":"string"}},"type":"object"},"createdAt":{"type":"string"},"decidedAt":{"type":["string","null"]},"decidedBy":{"type":["string","null"]},"decisionComment":{"type":["string","null"]},"designId":{"type":"string"},"evidence":{"items":{"properties":{"flowId":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"note":{"maxLength":4000,"minLength":1,"type":"string"},"result":{"enum":["passed","failed"],"type":"string"}},"required":["flowId","result","note"],"type":"object"},"maxItems":100,"minItems":1,"type":"array"},"flows":{"items":{"properties":{"entryFrameId":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"frameIds":{"items":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"maxItems":100,"minItems":1,"type":"array"},"id":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"name":{"maxLength":160,"minLength":1,"type":"string"}},"required":["id","name","entryFrameId","frameIds"],"type":"object"},"type":"array"},"frames":{"items":{"properties":{"height":{"maximum":10000,"minimum":240,"type":"integer"},"id":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"name":{"maxLength":160,"minLength":1,"type":"string"},"route":{"pattern":"^#[\\w-]+$","type":"string"},"thumbnail":{"maxLength":200000,"pattern":"^data:image\\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2}$","type":"string"},"width":{"maximum":3840,"minimum":240,"type":"integer"}},"required":["id","name","route","width","height"],"type":"object"},"type":"array"},"id":{"type":"string"},"number":{"type":"number"},"sourcePath":{"type":["string","null"]},"sourceTaskId":{"type":["string","null"]},"status":{"enum":["verifying","in_review","approved","changes_requested"],"type":"string"}},"required":["id","designId","number","contentHash","frames","flows","context","evidence","status","sourceTaskId","sourcePath","decidedBy","decisionComment","decidedAt","buildRequestedAt","createdAt"],"type":"object"},"type":"array"}},"required":["design","revision","revisions","comments","link"],"type":"object"},"Desktop":{"properties":{"controlUrl":{"type":"string"},"controlledBy":{"anyOf":[{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},{"type":"null"}]},"deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"frameUrl":{"type":"string"},"hasReplay":{"type":"boolean"},"hasScreenshot":{"type":"boolean"},"id":{"type":"string"},"kind":{"enum":["project","run"],"type":"string"},"state":{"enum":["ready","starting","off","failed","unavailable","ended"],"type":"string"},"taskId":{"anyOf":[{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},{"type":"null"}]},"title":{"type":["string","null"]}},"required":["id","kind","state","controlledBy","hasReplay","hasScreenshot"],"type":"object"},"DesktopControl":{"additionalProperties":false,"properties":{"action":{"enum":["take","give_back"],"type":"string"}},"required":["action"],"type":"object"},"DesktopControlResult":{"properties":{"controlledBy":{"anyOf":[{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},{"type":"null"}]}},"required":["controlledBy"],"type":"object"},"Desktops":{"properties":{"desktops":{"items":{"properties":{"controlledBy":{"anyOf":[{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},{"type":"null"}]},"cycleTitle":{"type":["string","null"]},"hasReplay":{"type":"boolean"},"hasScreenshot":{"type":"boolean"},"id":{"type":"string"},"kind":{"enum":["project","run"],"type":"string"},"lastActivityAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"presence":{"enum":["live","idle","ended","off"],"type":"string"},"role":{"anyOf":[{"enum":["build","review"],"type":"string"},{"type":"null"}]},"startedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"taskId":{"anyOf":[{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},{"type":"null"}]},"title":{"type":["string","null"]}},"required":["id","kind","role","taskId","title","cycleTitle","presence","startedAt","lastActivityAt","controlledBy","hasReplay","hasScreenshot"],"type":"object"},"type":"array"},"environment":{"properties":{"appUp":{"type":"boolean"}},"required":["appUp"],"type":"object"}},"required":["desktops","environment"],"type":"object"},"DetectProjectCommands":{"additionalProperties":false,"properties":{},"type":"object"},"DirectCycle":{"additionalProperties":false,"properties":{"description":{"maxLength":10000,"minLength":1,"type":"string"},"projectId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["projectId","title","description"],"type":"object"},"DirectCycleConflict":{"additionalProperties":{},"properties":{"code":{"const":"CYCLE_DUPLICATE_TITLE","type":"string"},"error":{"type":"string"}},"required":["error"],"type":"object"},"DirectorState":{"properties":{"clips":{"items":{"properties":{"caption":{"type":"string"},"createdAt":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["update","recap"],"type":"string"},"recordedThrough":{"type":"string"},"sourceIds":{"items":{"type":"string"},"type":"array"},"title":{"type":"string"}},"required":["id","title","caption","kind","recordedThrough","createdAt","sourceIds"],"type":"object"},"type":"array"},"error":{"type":["string","null"]},"status":{"enum":["idle","directing","rendering","ready","unavailable"],"type":"string"}},"required":["status","clips","error"],"type":"object"},"EditBranch":{"properties":{"baseRef":{"type":"string"},"ref":{"type":"string"},"sha":{"type":"string"}},"required":["ref","baseRef","sha"],"type":"object"},"Environment":{"properties":{"config":{"properties":{"files":{"items":{"properties":{"content":{"type":"string"},"encoding":{"enum":["utf8","base64"],"type":"string"},"executable":{"type":"boolean"},"path":{"type":"string"}},"required":["path","content"],"type":"object"},"type":"array"},"managedPaths":{"items":{"type":"string"},"type":"array"},"mcpServers":{"items":{},"type":"array"},"skills":{"items":{"type":"string"},"type":"array"},"vars":{"additionalProperties":{"type":"string"},"default":{},"propertyNames":{"type":"string"},"type":"object"}},"type":"object"},"createdAt":{"type":"string"},"id":{"type":"string"},"isActive":{"type":"boolean"},"label":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","label","config","isActive","createdAt","updatedAt"],"type":"object"},"ExportSecrets":{"properties":{"format":{"maxLength":64,"minLength":1,"type":"string"},"source":{"maxLength":512,"minLength":1,"type":"string"}},"type":"object"},"ExtractBrandKit":{"properties":{"url":{"format":"uri","maxLength":2048,"type":"string"}},"required":["url"],"type":"object"},"FileContent":{"properties":{"binary":{"type":"boolean"},"content":{"type":["string","null"]},"data":{"type":["string","null"]},"mediaType":{"type":["string","null"]},"path":{"type":"string"},"ref":{"properties":{"ref":{"type":"string"},"sha":{"type":["string","null"]}},"required":["ref","sha"],"type":"object"},"repoKey":{"type":"string"},"sha":{"type":["string","null"]},"size":{"type":["number","null"]},"truncated":{"type":"boolean"}},"required":["repoKey","path","ref","content","truncated","binary","size","data","mediaType","sha"],"type":"object"},"Follow":{"properties":{"createdAt":{"type":"string"},"id":{"type":"string"},"target":{"anyOf":[{"properties":{"name":{"type":"string"},"projectId":{"type":"string"},"status":{"type":["string","null"]}},"required":["name","projectId","status"],"type":"object"},{"type":"null"}]},"targetId":{"type":"string"},"targetType":{"enum":["project","cycle"],"type":"string"}},"required":["id","targetType","targetId","createdAt","target"],"type":"object"},"FollowTarget":{"properties":{"targetId":{"minLength":1,"type":"string"},"targetType":{"enum":["project","cycle"],"type":"string"}},"required":["targetType","targetId"],"type":"object"},"ForkAgent":{"additionalProperties":false,"properties":{"instructions":{"anyOf":[{"maxLength":20000,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"projectId":{"type":["string","null"]}},"required":["name"],"type":"object"},"GenerateAgentAvatar":{"additionalProperties":false,"properties":{"prompt":{"maxLength":1000,"minLength":1,"type":"string"}},"required":["prompt"],"type":"object"},"GenerateCustomSkill":{"properties":{"context":{"items":{"maxLength":200,"minLength":1,"type":"string"},"maxItems":10,"type":"array"},"description":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["description"],"type":"object"},"GenerateImages":{"properties":{"aspectRatio":{"maxLength":32,"minLength":1,"type":"string"},"n":{"maximum":10,"minimum":1,"type":"integer"},"projectId":{"minLength":1,"type":"string"},"prompt":{"maxLength":4000,"minLength":1,"type":"string"},"resolution":{"maxLength":32,"minLength":1,"type":"string"},"useWorkspaceBrand":{"type":"boolean"}},"required":["prompt"],"type":"object"},"GenerateVideo":{"properties":{"aspectRatio":{"maxLength":32,"minLength":1,"type":"string"},"duration":{"exclusiveMinimum":0,"maximum":600,"type":"integer"},"idempotencyKey":{"maxLength":200,"minLength":1,"type":"string"},"projectId":{"minLength":1,"type":"string"},"prompt":{"maxLength":4000,"minLength":1,"type":"string"},"resolution":{"maxLength":32,"minLength":1,"type":"string"},"useWorkspaceBrand":{"type":"boolean"}},"required":["prompt","idempotencyKey"],"type":"object"},"GeneratedAgentAvatar":{"properties":{"key":{"type":"string"},"url":{"type":"string"}},"required":["url","key"],"type":"object"},"GeneratedSkillDraft":{"properties":{"content":{"type":"string"},"description":{"type":"string"},"name":{"type":"string"}},"required":["name","description","content"],"type":"object"},"GrowthAutopilot":{"properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"type":"object"},"GrowthBatchApproved":{"properties":{"batch":{"properties":{"approvedAt":{"type":["string","null"]},"companyCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"createdAt":{"type":"string"},"failedCompanies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"id":{"type":"string"},"leadCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"playId":{"type":"string"},"playName":{"type":"string"},"readyAt":{"type":["string","null"]},"releaseAt":{"type":["string","null"]},"status":{"enum":["researching","review","approved","empty","failed","canceled"],"type":"string"}},"required":["id","playId","playName","status","leadCount","companyCount","failedCompanies","createdAt","readyAt","releaseAt","approvedAt"],"type":"object"}},"required":["batch"],"type":"object"},"GrowthBatchPage":{"properties":{"batches":{"items":{"properties":{"approvedAt":{"type":["string","null"]},"companyCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"createdAt":{"type":"string"},"failedCompanies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"id":{"type":"string"},"leadCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"playId":{"type":"string"},"playName":{"type":"string"},"readyAt":{"type":["string","null"]},"releaseAt":{"type":["string","null"]},"status":{"enum":["researching","review","approved","empty","failed","canceled"],"type":"string"}},"required":["id","playId","playName","status","leadCount","companyCount","failedCompanies","createdAt","readyAt","releaseAt","approvedAt"],"type":"object"},"type":"array"}},"required":["batches"],"type":"object"},"GrowthBrain":{"additionalProperties":false,"properties":{"competitors":{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"type":"string"},"reason":{"maxLength":300,"minLength":1,"type":"string"},"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"sourced":{"type":"boolean"}},"required":["name","source","reason"],"type":"object"},"maxItems":12,"type":"array"},"languages":{"items":{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},"maxItems":8,"type":"array"},"neverSay":{"items":{"maxLength":200,"minLength":1,"type":"string"},"maxItems":12,"type":"array"},"offer":{"anyOf":[{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},{"type":"null"}]},"pricing":{"anyOf":[{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},{"type":"null"}]},"proof":{"items":{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},"maxItems":12,"type":"array"}},"required":["offer","pricing","proof","competitors","neverSay","languages"],"type":"object"},"GrowthBrainRow":{"properties":{"content":{"additionalProperties":false,"properties":{"competitors":{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"type":"string"},"reason":{"maxLength":300,"minLength":1,"type":"string"},"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"sourced":{"type":"boolean"}},"required":["name","source","reason"],"type":"object"},"maxItems":12,"type":"array"},"languages":{"items":{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},"maxItems":8,"type":"array"},"neverSay":{"items":{"maxLength":200,"minLength":1,"type":"string"},"maxItems":12,"type":"array"},"offer":{"anyOf":[{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},{"type":"null"}]},"pricing":{"anyOf":[{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},{"type":"null"}]},"proof":{"items":{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},"maxItems":12,"type":"array"}},"required":["offer","pricing","proof","competitors","neverSay","languages"],"type":"object"},"updatedAt":{"type":"string"}},"required":["content","updatedAt"],"type":"object"},"GrowthChain":{"properties":{"available":{"items":{"type":"string"},"type":"array"},"capability":{"enum":["discover","people","find_email","verify_email","signals","places","read"],"type":"string"},"comparable":{"items":{"type":"string"},"type":"array"},"custom":{"type":"boolean"},"defaultOrder":{"items":{"type":"string"},"type":"array"},"order":{"items":{"type":"string"},"type":"array"},"stats":{"properties":{"byProvider":{"additionalProperties":{"properties":{"found":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"of":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["found","of"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"chain":{"anyOf":[{"properties":{"billedMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"lookups":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"verified":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["lookups","verified","billedMicros"],"type":"object"},{"type":"null"}]},"windowDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["windowDays","byProvider","chain"],"type":"object"}},"required":["capability","order","defaultOrder","custom","available","comparable","stats"],"type":"object"},"GrowthChainUpdated":{"properties":{"capability":{"enum":["discover","people","find_email","verify_email","signals","places","read"],"type":"string"},"custom":{"type":"boolean"},"order":{"items":{"type":"string"},"type":"array"}},"required":["capability","order","custom"],"type":"object"},"GrowthCitableProject":{"properties":{"clientName":{"type":["string","null"]},"finishedAt":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","clientName","finishedAt"],"type":"object"},"GrowthClassification":{"properties":{"classification":{"anyOf":[{"enum":["interested","later","no","unsubscribe","out_of_office","other"],"type":"string"},{"type":"null"}]},"id":{"type":"string"}},"required":["id","classification"],"type":"object"},"GrowthEnrich":{"properties":{"emailSentMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"otherUnitPriceMicros":{"properties":{"places":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"read":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"signals":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]}},"required":["places","signals","read"],"type":"object"}},"required":["emailSentMicros","otherUnitPriceMicros"],"type":"object"},"GrowthInboxPage":{"properties":{"hasMore":{"type":"boolean"},"items":{"items":{"properties":{"classification":{"anyOf":[{"enum":["interested","later","no","unsubscribe","out_of_office","other"],"type":"string"},{"type":"null"}]},"companyName":{"type":["string","null"]},"domain":{"type":"string"},"drafts":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"email":{"type":["string","null"]},"fullName":{"type":"string"},"lastActivityAt":{"type":"string"},"lastInboundAt":{"type":["string","null"]},"lastInboundId":{"type":["string","null"]},"lastSentAt":{"type":["string","null"]},"lastSubject":{"type":["string","null"]},"leadId":{"type":"string"},"leadStatus":{"type":"string"},"needsReply":{"type":"boolean"},"playId":{"type":"string"},"replySnippet":{"type":["string","null"]},"snippet":{"type":"string"},"unknown":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["leadId","leadStatus","playId","fullName","email","companyName","domain","lastInboundAt","lastSentAt","classification","drafts","unknown","lastActivityAt","lastSubject","snippet","needsReply","lastInboundId","replySnippet"],"type":"object"},"type":"array"},"limit":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"offset":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["items","hasMore","limit","offset"],"type":"object"},"GrowthIndexSearchPage":{"properties":{"items":{"items":{"additionalProperties":false,"properties":{"city":{"type":["string","null"]},"country":{"type":["string","null"]},"description":{"type":["string","null"]},"domain":{"type":"string"},"inWorkspace":{"type":"boolean"},"name":{"type":["string","null"]},"people":{"items":{"additionalProperties":false,"properties":{"country":{"type":["string","null"]},"fullName":{"type":"string"},"id":{"type":"string"},"linkedinUrl":{"type":["string","null"]},"location":{"type":["string","null"]},"seniority":{"type":["string","null"]},"title":{"type":["string","null"]}},"required":["id","fullName","title","seniority","country","location","linkedinUrl"],"type":"object"},"type":"array"},"size":{"type":["string","null"]}},"required":["domain","name","description","country","city","size","inWorkspace","people"],"type":"object"},"type":"array"},"total":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["total","items"],"type":"object"},"GrowthIndexStats":{"properties":{"companies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"foundForYou":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"freshCompanies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"freshDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["companies","freshCompanies","freshDays","foundForYou"],"type":"object"},"GrowthLeadExportFilters":{"additionalProperties":false,"properties":{"batchId":{"maxLength":200,"minLength":1,"type":"string"},"leadId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"minFit":{"maximum":100,"minimum":0,"type":"integer"},"playId":{"minLength":1,"type":"string"},"query":{"maxLength":200,"type":"string"},"status":{"enum":["new","queued","contacted","replied","converted","disqualified","opted_out"],"type":"string"}},"type":"object"},"GrowthLeadExportPreview":{"properties":{"chargedEmails":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"rows":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["rows","chargedEmails","costMicros"],"type":"object"},"GrowthLeadExportResult":{"properties":{"artifactKey":{"type":"string"},"chargedEmails":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"chargedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"downloadPath":{"type":"string"},"fileName":{"type":"string"},"filters":{"additionalProperties":false,"properties":{"batchId":{"maxLength":200,"minLength":1,"type":"string"},"leadId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"minFit":{"maximum":100,"minimum":0,"type":"integer"},"playId":{"minLength":1,"type":"string"},"query":{"maxLength":200,"type":"string"},"status":{"enum":["new","queued","contacted","replied","converted","disqualified","opted_out"],"type":"string"}},"type":"object"},"rows":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["fileName","rows","artifactKey","downloadPath","filters","chargedEmails","chargedMicros"],"type":"object"},"GrowthLeadListResult":{"properties":{"added":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"companies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"matched":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"rows":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"skipped":{"properties":{"duplicate":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"no_company":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"no_name":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"opted_out":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"region_excluded":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"suppressed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"type":"object"}},"required":["rows","added","matched","companies","skipped"],"type":"object"},"GrowthLeadPage":{"properties":{"items":{"items":{"properties":{"company":{"properties":{"city":{"type":["string","null"]},"domain":{"type":"string"},"id":{"type":"string"},"name":{"type":["string","null"]},"size":{"type":["string","null"]}},"required":["id","domain","name","city","size"],"type":"object"},"createdAt":{"type":"string"},"evidence":{"items":{"properties":{"claim":{"type":"string"},"url":{"type":"string"}},"required":["claim","url"],"type":"object"},"type":"array"},"fitScore":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"person":{"properties":{"email":{"type":["string","null"]},"emailStatus":{"enum":["valid","invalid","catch_all","unknown"],"type":"string"},"fullName":{"type":"string"},"id":{"type":"string"},"linkedinUrl":{"type":["string","null"]},"optedOut":{"type":"boolean"},"title":{"type":["string","null"]}},"required":["id","fullName","title","linkedinUrl","email","emailStatus","optedOut"],"type":"object"},"playId":{"type":"string"},"provenance":{"properties":{"company":{"additionalProperties":{"properties":{"credentialSource":{"enum":["hlix","organization"],"type":"string"},"fetchedAt":{"type":"string"},"provider":{"type":"string"}},"required":["provider","fetchedAt","credentialSource"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"person":{"additionalProperties":{"properties":{"credentialSource":{"enum":["hlix","organization"],"type":"string"},"fetchedAt":{"type":"string"},"provider":{"type":"string"}},"required":["provider","fetchedAt","credentialSource"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"}},"required":["company","person"],"type":"object"},"status":{"enum":["new","queued","contacted","replied","converted","disqualified","opted_out"],"type":"string"},"updatedAt":{"type":"string"}},"required":["id","playId","status","fitScore","evidence","createdAt","updatedAt","company","person","provenance"],"type":"object"},"type":"array"},"limit":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"mailboxes":{"properties":{"active":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sendCapacityToday":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["active","sendCapacityToday"],"type":"object"},"offset":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"total":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["items","total","limit","offset","mailboxes"],"type":"object"},"GrowthLeadRefusal":{"properties":{"code":{"enum":["campaign_not_running","already_contacted","opted_out","suppressed","region_excluded","no_sendable_address","lookup_required"],"type":"string"},"error":{"type":"string"}},"required":["error","code"],"type":"object"},"GrowthLeadStatus":{"properties":{"id":{"type":"string"},"status":{"enum":["new","queued","contacted","replied","converted","disqualified","opted_out"],"type":"string"}},"required":["id","status"],"type":"object"},"GrowthMailbox":{"properties":{"address":{"type":"string"},"allowanceToday":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"createdAt":{"type":"string"},"dailyLimit":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"id":{"type":"string"},"lastError":{"type":["string","null"]},"provider":{"type":"string"},"rampStartedAt":{"type":["string","null"]},"sentToday":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"status":{"enum":["connecting","active","paused","disconnected","error"],"type":"string"}},"required":["id","provider","address","status","dailyLimit","rampStartedAt","allowanceToday","sentToday","lastError","createdAt"],"type":"object"},"GrowthMailboxConnect":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"GrowthMailboxDisconnected":{"properties":{"id":{"type":"string"},"status":{"const":"disconnected","type":"string"}},"required":["id","status"],"type":"object"},"GrowthMailboxDns":{"properties":{"dkim":{"properties":{"ok":{"type":"boolean"},"selector":{"type":["string","null"]},"tried":{"items":{"type":"string"},"type":"array"}},"required":["ok","selector","tried"],"type":"object"},"dmarc":{"properties":{"ok":{"type":"boolean"},"policy":{"type":["string","null"]},"record":{"type":["string","null"]}},"required":["ok","record","policy"],"type":"object"},"domain":{"type":"string"},"spf":{"properties":{"ok":{"type":"boolean"},"record":{"type":["string","null"]}},"required":["ok","record"],"type":"object"}},"required":["domain","spf","dmarc","dkim"],"type":"object"},"GrowthMailboxList":{"properties":{"configured":{"type":"boolean"},"items":{"items":{"properties":{"address":{"type":"string"},"allowanceToday":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"createdAt":{"type":"string"},"dailyLimit":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"id":{"type":"string"},"lastError":{"type":["string","null"]},"provider":{"type":"string"},"rampStartedAt":{"type":["string","null"]},"sentToday":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"status":{"enum":["connecting","active","paused","disconnected","error"],"type":"string"}},"required":["id","provider","address","status","dailyLimit","rampStartedAt","allowanceToday","sentToday","lastError","createdAt"],"type":"object"},"type":"array"}},"required":["configured","items"],"type":"object"},"GrowthMessage":{"properties":{"approvedAt":{"type":["string","null"]},"approvedByUserId":{"type":["string","null"]},"body":{"type":"string"},"chargeMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"claimedAt":{"type":["string","null"]},"classification":{"anyOf":[{"enum":["interested","later","no","unsubscribe","out_of_office","other"],"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"deliveryUnknown":{"type":"boolean"},"direction":{"type":"string"},"dueAt":{"type":["string","null"]},"error":{"type":["string","null"]},"facts":{"items":{"properties":{"source":{"type":"string"},"text":{"type":"string"}},"required":["text","source"],"type":"object"},"type":"array"},"fromEmail":{"type":["string","null"]},"heldReason":{"anyOf":[{"enum":["no_credit","monthly_cap","daily_budget"],"type":"string"},{"type":"null"}]},"id":{"type":"string"},"internetMessageId":{"type":["string","null"]},"leadId":{"type":["string","null"]},"mailboxId":{"type":["string","null"]},"organizationId":{"type":"string"},"providerMessageId":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"status":{"enum":["draft","scheduled","sending","sent","failed","canceled","received"],"type":"string"},"step":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"subject":{"type":["string","null"]},"threadRef":{"type":["string","null"]}},"required":["id","organizationId","leadId","direction","mailboxId","subject","body","providerMessageId","threadRef","sentAt","classification","status","step","dueAt","claimedAt","approvedAt","approvedByUserId","internetMessageId","fromEmail","error","facts","createdAt","chargeMicros","heldReason","deliveryUnknown"],"type":"object"},"GrowthMessageResolved":{"properties":{"followUpsStopped":{"type":"boolean"},"id":{"type":"string"},"note":{"type":"string"},"sentCopyFound":{"type":"boolean"},"status":{"enum":["sent","failed"],"type":"string"}},"required":["id","status","followUpsStopped"],"type":"object"},"GrowthOverview":{"properties":{"autopilot":{"properties":{"changes":{"items":{"properties":{"createdAt":{"type":"string"},"evidence":{"properties":{"direction":{"enum":["up","down"],"type":"string"},"hotLeads":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"spentMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"windowDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["direction","hotLeads","spentMicros","sent","windowDays"],"type":"object"},"id":{"type":"string"},"newMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"oldMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"playId":{"type":"string"},"playName":{"type":"string"},"reason":{"type":"string"}},"required":["id","playId","playName","oldMicros","newMicros","reason","evidence","createdAt"],"type":"object"},"type":"array"},"enabled":{"type":"boolean"}},"required":["enabled","changes"],"type":"object"},"budget":{"properties":{"dailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"usedTodayMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["dailyBudgetMicros","usedTodayMicros"],"type":"object"},"campaignId":{"type":["string","null"]},"campaigns":{"items":{"properties":{"budgetPinned":{"type":"boolean"},"dailyBudgetMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"emailsPerDay":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"hotLeads":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"playId":{"type":"string"},"replies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"spentMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"status":{"enum":["draft","active","paused","stopped"],"type":"string"}},"required":["playId","name","status","dailyBudgetMicros","budgetPinned","sent","replies","hotLeads","spentMicros","emailsPerDay"],"type":"object"},"type":"array"},"days":{"items":{"properties":{"bounced":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"date":{"type":"string"},"delivered":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"emailsCharged":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"hotLeads":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sentFirst":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sentFollowUp":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"spentMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["sentFirst","sentFollowUp","delivered","bounced","hotLeads","spentMicros","emailsCharged","date"],"type":"object"},"type":"array"},"previous":{"properties":{"bounced":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"delivered":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"emailsCharged":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"hotLeads":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sentFirst":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sentFollowUp":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"spentMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["sentFirst","sentFollowUp","sent","delivered","bounced","hotLeads","spentMicros","emailsCharged"],"type":"object"},"range":{"properties":{"days":{"anyOf":[{"const":7,"type":"number"},{"const":30,"type":"number"}]},"from":{"type":"string"},"to":{"type":"string"}},"required":["days","from","to"],"type":"object"},"threads":{"properties":{"hot":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"replies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["replies","hot"],"type":"object"},"totals":{"properties":{"bounced":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"delivered":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"emailsCharged":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"hotLeads":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sentFirst":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sentFollowUp":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"spentMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["sentFirst","sentFollowUp","sent","delivered","bounced","hotLeads","spentMicros","emailsCharged"],"type":"object"},"unansweredHotLeads":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"week":{"properties":{"from":{"type":"string"},"hotLeads":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"peopleReached":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"replies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"to":{"type":"string"}},"required":["from","to","peopleReached","replies","hotLeads"],"type":"object"}},"required":["range","campaignId","budget","days","totals","previous","week","unansweredHotLeads","threads","campaigns","autopilot"],"type":"object"},"GrowthPlay":{"properties":{"angle":{"type":["string","null"]},"autoSendReplies":{"type":"boolean"},"budgetPinned":{"type":"boolean"},"confidence":{"type":["number","null"]},"createdAt":{"type":"string"},"currency":{"type":"string"},"dailyBudgetMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"exampleClients":{"items":{"maxLength":120,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"},"firstEmail":{"anyOf":[{"properties":{"body":{"type":"string"},"subject":{"type":"string"}},"required":["subject","body"],"type":"object"},{"type":"null"}]},"fitLabel":{"anyOf":[{"enum":["best","good","test"],"type":"string"},{"type":"null"}]},"gdprAckAt":{"type":["string","null"]},"gdprAckByUserId":{"type":["string","null"]},"id":{"type":"string"},"keywords":{"items":{"maxLength":80,"minLength":1,"type":"string"},"maxItems":30,"type":"array"},"language":{"enum":["auto","en","de","fr"],"type":"string"},"lastLeadPassAt":{"type":["string","null"]},"name":{"type":"string"},"negativeCriteria":{"items":{"maxLength":300,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"organizationId":{"type":"string"},"positiveCriteria":{"items":{"maxLength":300,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"projectId":{"type":"string"},"reviewFirstN":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"sequence":{"anyOf":[{"additionalProperties":false,"properties":{"followUpDays":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"maximum":60,"minimum":1,"type":"integer"},{"maximum":90,"minimum":2,"type":"integer"}],"type":"array"},"followUps":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"},{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"}],"type":"array"}},"required":["followUpDays","followUps"],"type":"object"},{"type":"null"}]},"status":{"enum":["draft","active","paused","stopped"],"type":"string"},"updatedAt":{"type":"string"},"who":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"whyNow":{"anyOf":[{"properties":{"reason":{"type":"string"},"signal":{"type":"string"}},"required":["signal","reason"],"type":"object"},{"type":"null"}]}},"required":["id","organizationId","projectId","name","who","whyNow","angle","firstEmail","positiveCriteria","negativeCriteria","exampleClients","keywords","language","sequence","sendingSchedule","confidence","fitLabel","status","dailyBudgetMicros","budgetPinned","currency","excludeEu","excludeDe","gdprAckAt","gdprAckByUserId","lastLeadPassAt","reviewFirstN","autoSendReplies","createdAt","updatedAt"],"type":"object"},"GrowthPlaySpend":{"properties":{"currency":{"type":"string"},"dailyBudgetMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"last30BilledMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"last30Calls":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"last30CostMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"playId":{"type":"string"},"status":{"enum":["draft","active","paused","stopped"],"type":"string"},"todayBilledMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"todayCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["playId","name","status","dailyBudgetMicros","currency","todayBilledMicros","todayCostMicros","last30BilledMicros","last30CostMicros","last30Calls"],"type":"object"},"GrowthProjectBudget":{"properties":{"dailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]}},"required":["dailyBudgetMicros"],"type":"object"},"GrowthProjectCreated":{"properties":{"project":{"properties":{"archivedAt":{"type":["string","null"]},"clientAccountId":{"type":["string","null"]},"createdAt":{"type":"string"},"growthAutopilot":{"type":"boolean"},"growthDailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"growthSendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"id":{"type":"string"},"kind":{"const":"growth","type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug","kind","growthSendingSchedule","growthDailyBudgetMicros","growthAutopilot","clientAccountId","archivedAt","createdAt"],"type":"object"},"run":{"properties":{"droppedFacts":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"error":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"id":{"type":"string"},"input":{"properties":{"buyerDescription":{"type":"string"},"citeProjectIds":{"items":{"type":"string"},"type":"array"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"}},"required":["citeProjectIds","excludeEu","excludeDe"],"type":"object"},"organizationId":{"type":"string"},"pagesRead":{"items":{"type":"string"},"type":"array"},"projectId":{"type":"string"},"startedAt":{"type":"string"},"startedByUserId":{"type":["string","null"]},"status":{"enum":["running","succeeded","failed"],"type":"string"},"websiteUrl":{"type":["string","null"]}},"required":["id","organizationId","projectId","status","websiteUrl","input","pagesRead","droppedFacts","error","startedByUserId","startedAt","finishedAt"],"type":"object"}},"required":["project","run"],"type":"object"},"GrowthProjectSendingSchedule":{"properties":{"campaigns":{"items":{"properties":{"effective":{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},"name":{"type":"string"},"playId":{"type":"string"},"rows":{"items":{"properties":{"country":{"type":["string","null"]},"defaultSendDays":{"items":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":"array"},"defaultTimeZone":{"type":"string"},"overridden":{"type":"boolean"},"sendDays":{"items":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":"array"},"sendEndHour":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sendStartHour":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"timeZone":{"type":"string"}},"required":["country","sendStartHour","sendEndHour","timeZone","sendDays","defaultTimeZone","defaultSendDays","overridden"],"type":"object"},"type":"array"},"schedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"source":{"enum":["campaign","project","organization","default"],"type":"string"}},"required":["playId","name","schedule","effective","source","rows"],"type":"object"},"type":"array"},"effective":{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},"inheritedCampaignCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"rows":{"items":{"properties":{"country":{"type":["string","null"]},"defaultSendDays":{"items":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":"array"},"defaultTimeZone":{"type":"string"},"overridden":{"type":"boolean"},"sendDays":{"items":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":"array"},"sendEndHour":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sendStartHour":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"timeZone":{"type":"string"}},"required":["country","sendStartHour","sendEndHour","timeZone","sendDays","defaultTimeZone","defaultSendDays","overridden"],"type":"object"},"type":"array"},"schedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"source":{"enum":["project","organization","default"],"type":"string"}},"required":["schedule","effective","source","rows","inheritedCampaignCount","campaigns"],"type":"object"},"GrowthProvider":{"properties":{"acceptsKey":{"type":"boolean"},"byokOnly":{"type":"boolean"},"capabilities":{"items":{"enum":["discover","people","find_email","verify_email","signals","places","read"],"type":"string"},"type":"array"},"euHosted":{"anyOf":[{"type":"boolean"},{"const":"unknown","type":"string"}]},"hlixKeyConfigured":{"type":"boolean"},"managedAvailable":{"type":"boolean"},"managedUnavailableReason":{"type":["string","null"]},"optionalSettings":{"items":{"type":"string"},"type":"array"},"organization":{"anyOf":[{"properties":{"enabled":{"type":"boolean"},"hasApiKey":{"type":"boolean"},"metadata":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"required":["hasApiKey","enabled","metadata"],"type":"object"},{"type":"null"}]},"personalData":{"type":"boolean"},"provider":{"type":"string"},"requiredSettings":{"items":{"type":"string"},"type":"array"},"risk":{"enum":["official","licensed","scraped_no_login","scraped_login"],"type":"string"},"unitPriceMicros":{"additionalProperties":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"propertyNames":{"type":"string"},"type":"object"}},"required":["provider","capabilities","risk","euHosted","personalData","byokOnly","managedAvailable","managedUnavailableReason","acceptsKey","unitPriceMicros","hlixKeyConfigured","requiredSettings","optionalSettings","organization"],"type":"object"},"GrowthProviderComparison":{"properties":{"operationKey":{"type":"string"},"results":{"items":{"properties":{"billedMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"costStatus":{"enum":["settled","estimated","pending","unknown"],"type":"string"},"estimatedCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"failed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"found":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"pending":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"provider":{"type":"string"},"providerCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"reservedMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"skippedForCap":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tried":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"unknown":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"verified":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["provider","tried","found","verified","billedMicros","failed","skippedForCap","pending","unknown","costStatus","providerCostMicros","estimatedCostMicros","reservedMicros"],"type":"object"},"type":"array"},"sample":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["operationKey","sample","results"],"type":"object"},"GrowthRefinedReply":{"properties":{"body":{"type":"string"},"facts":{"items":{"properties":{"source":{"type":"string"},"text":{"type":"string"}},"required":["text","source"],"type":"object"},"type":"array"}},"required":["body","facts"],"type":"object"},"GrowthReplySent":{"properties":{"id":{"type":"string"},"reason":{"type":"string"},"status":{"enum":["draft","scheduled","sending","sent","failed","canceled","received"],"type":"string"}},"required":["id","status"],"type":"object"},"GrowthResearchResult":{"properties":{"batchId":{"type":["string","null"]},"batchStatus":{"anyOf":[{"enum":["researching","review","approved","empty","failed","canceled"],"type":"string"},{"type":"null"}]},"reason":{"enum":["paused","archived","gdpr_required","invalid_target","budget","monthly_cap","enrich_daily_limit","billing","no_mailbox","no_capacity","busy"],"type":"string"},"status":{"enum":["started","resumed","running","already_researched_today","refused"],"type":"string"}},"required":["status","batchId","batchStatus"],"type":"object"},"GrowthRun":{"properties":{"droppedFacts":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"error":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"id":{"type":"string"},"input":{"properties":{"buyerDescription":{"type":"string"},"citeProjectIds":{"items":{"type":"string"},"type":"array"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"}},"required":["citeProjectIds","excludeEu","excludeDe"],"type":"object"},"organizationId":{"type":"string"},"pagesRead":{"items":{"type":"string"},"type":"array"},"projectId":{"type":"string"},"startedAt":{"type":"string"},"startedByUserId":{"type":["string","null"]},"status":{"enum":["running","succeeded","failed"],"type":"string"},"websiteUrl":{"type":["string","null"]}},"required":["id","organizationId","projectId","status","websiteUrl","input","pagesRead","droppedFacts","error","startedByUserId","startedAt","finishedAt"],"type":"object"},"GrowthSendkitReadiness":{"properties":{"blocker":{"enum":["not_configured","not_connected","credential_changed","provider_unavailable","execution_not_verified"],"type":"string"},"configured":{"type":"boolean"},"connected":{"type":"boolean"},"executionReady":{"const":false,"type":"boolean"},"mailboxes":{"items":{"properties":{"address":{"type":"string"},"id":{"type":"string"},"status":{"type":"string"},"warmupStatus":{"type":["string","null"]}},"required":["id","address","status","warmupStatus"],"type":"object"},"type":"array"},"workspaceName":{"type":"string"}},"required":["configured","connected","mailboxes","executionReady","blocker"],"type":"object"},"GrowthSettingsState":{"properties":{"sendingScheduleRows":{"items":{"properties":{"country":{"type":["string","null"]},"defaultSendDays":{"items":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":"array"},"defaultTimeZone":{"type":"string"},"overridden":{"type":"boolean"},"sendDays":{"items":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":"array"},"sendEndHour":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sendStartHour":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"timeZone":{"type":"string"}},"required":["country","sendStartHour","sendEndHour","timeZone","sendDays","defaultTimeZone","defaultSendDays","overridden"],"type":"object"},"type":"array"},"settings":{"properties":{"bookingUrl":{"type":["string","null"]},"countrySendingOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"followUpDays":{"items":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":"array"},"mailboxDailyMax":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"monthlyCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"sendDays":{"anyOf":[{"items":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sendStartHour":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"stopOnReply":{"type":"boolean"},"timeZone":{"type":["string","null"]}},"required":["monthlyCapMicros","sendStartHour","sendEndHour","timeZone","sendDays","countrySendingOverrides","mailboxDailyMax","followUpDays","stopOnReply","bookingUrl"],"type":"object"},"spend":{"properties":{"aiMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"capMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"emailsMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"leadsMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"monthStart":{"type":"string"},"reservedMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"totalMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]}},"required":["monthStart","leadsMicros","emailsMicros","aiMicros","reservedMicros","totalMicros","capMicros"],"type":"object"}},"required":["settings","sendingScheduleRows","spend"],"type":"object"},"GrowthState":{"properties":{"brain":{"anyOf":[{"properties":{"content":{"additionalProperties":false,"properties":{"competitors":{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"type":"string"},"reason":{"maxLength":300,"minLength":1,"type":"string"},"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"sourced":{"type":"boolean"}},"required":["name","source","reason"],"type":"object"},"maxItems":12,"type":"array"},"languages":{"items":{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},"maxItems":8,"type":"array"},"neverSay":{"items":{"maxLength":200,"minLength":1,"type":"string"},"maxItems":12,"type":"array"},"offer":{"anyOf":[{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},{"type":"null"}]},"pricing":{"anyOf":[{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},{"type":"null"}]},"proof":{"items":{"additionalProperties":false,"properties":{"source":{"maxLength":600,"minLength":1,"pattern":"^(https?:\\/\\/|hlix:project\\/)","type":"string"},"value":{"maxLength":600,"minLength":1,"type":"string"}},"required":["value","source"],"type":"object"},"maxItems":12,"type":"array"}},"required":["offer","pricing","proof","competitors","neverSay","languages"],"type":"object"},"updatedAt":{"type":"string"}},"required":["content","updatedAt"],"type":"object"},{"type":"null"}]},"campaigns":{"items":{"properties":{"angle":{"type":["string","null"]},"autoSendReplies":{"type":"boolean"},"budgetPinned":{"type":"boolean"},"confidence":{"type":["number","null"]},"createdAt":{"type":"string"},"currency":{"type":"string"},"dailyBudgetMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"exampleClients":{"items":{"maxLength":120,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"},"firstEmail":{"anyOf":[{"properties":{"body":{"type":"string"},"subject":{"type":"string"}},"required":["subject","body"],"type":"object"},{"type":"null"}]},"fitLabel":{"anyOf":[{"enum":["best","good","test"],"type":"string"},{"type":"null"}]},"gdprAckAt":{"type":["string","null"]},"gdprAckByUserId":{"type":["string","null"]},"id":{"type":"string"},"keywords":{"items":{"maxLength":80,"minLength":1,"type":"string"},"maxItems":30,"type":"array"},"language":{"enum":["auto","en","de","fr"],"type":"string"},"lastLeadPassAt":{"type":["string","null"]},"name":{"type":"string"},"negativeCriteria":{"items":{"maxLength":300,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"organizationId":{"type":"string"},"positiveCriteria":{"items":{"maxLength":300,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"projectId":{"type":"string"},"reviewFirstN":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"sequence":{"anyOf":[{"additionalProperties":false,"properties":{"followUpDays":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"maximum":60,"minimum":1,"type":"integer"},{"maximum":90,"minimum":2,"type":"integer"}],"type":"array"},"followUps":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"},{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"}],"type":"array"}},"required":["followUpDays","followUps"],"type":"object"},{"type":"null"}]},"status":{"enum":["draft","active","paused","stopped"],"type":"string"},"updatedAt":{"type":"string"},"who":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"whyNow":{"anyOf":[{"properties":{"reason":{"type":"string"},"signal":{"type":"string"}},"required":["signal","reason"],"type":"object"},{"type":"null"}]}},"required":["id","organizationId","projectId","name","who","whyNow","angle","firstEmail","positiveCriteria","negativeCriteria","exampleClients","keywords","language","sequence","sendingSchedule","confidence","fitLabel","status","dailyBudgetMicros","budgetPinned","currency","excludeEu","excludeDe","gdprAckAt","gdprAckByUserId","lastLeadPassAt","reviewFirstN","autoSendReplies","createdAt","updatedAt"],"type":"object"},"type":"array"},"droppedFacts":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"lastRun":{"anyOf":[{"properties":{"droppedFacts":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"error":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"id":{"type":"string"},"input":{"properties":{"buyerDescription":{"type":"string"},"citeProjectIds":{"items":{"type":"string"},"type":"array"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"}},"required":["citeProjectIds","excludeEu","excludeDe"],"type":"object"},"organizationId":{"type":"string"},"pagesRead":{"items":{"type":"string"},"type":"array"},"projectId":{"type":"string"},"startedAt":{"type":"string"},"startedByUserId":{"type":["string","null"]},"status":{"enum":["running","succeeded","failed"],"type":"string"},"websiteUrl":{"type":["string","null"]}},"required":["id","organizationId","projectId","status","websiteUrl","input","pagesRead","droppedFacts","error","startedByUserId","startedAt","finishedAt"],"type":"object"},{"type":"null"}]},"leadList":{"properties":{"companies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"people":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["people","companies"],"type":"object"},"project":{"properties":{"archivedAt":{"type":["string","null"]},"clientAccountId":{"type":["string","null"]},"createdAt":{"type":"string"},"growthAutopilot":{"type":"boolean"},"growthDailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"growthSendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"id":{"type":"string"},"kind":{"const":"growth","type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug","kind","growthSendingSchedule","growthDailyBudgetMicros","growthAutopilot","clientAccountId","archivedAt","createdAt"],"type":"object"},"reach":{"additionalProperties":{"properties":{"found":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"reachable":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sample":{"anyOf":[{"properties":{"company":{"properties":{"domain":{"type":"string"},"name":{"type":["string","null"]},"size":{"type":["string","null"]}},"required":["name","domain","size"],"type":"object"},"evidence":{"items":{"properties":{"claim":{"type":"string"},"url":{"type":"string"}},"required":["claim","url"],"type":"object"},"type":"array"},"fitScore":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"person":{"properties":{"fullName":{"type":"string"},"title":{"type":["string","null"]}},"required":["fullName","title"],"type":"object"}},"required":["fitScore","person","company","evidence"],"type":"object"},{"type":"null"}]}},"required":["found","reachable","sample"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"websiteUrl":{"type":["string","null"]}},"required":["project","websiteUrl","brain","campaigns","lastRun","droppedFacts","reach","leadList"],"type":"object"},"GrowthSuppressionPage":{"properties":{"items":{"items":{"properties":{"createdAt":{"type":"string"},"domain":{"type":["string","null"]},"email":{"type":["string","null"]},"id":{"type":"string"},"organizationId":{"type":"string"},"reason":{"enum":["unsubscribed","bounced","complained","manual"],"type":"string"}},"required":["id","organizationId","email","domain","reason","createdAt"],"type":"object"},"type":"array"},"limit":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"offset":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"total":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["items","total","limit","offset"],"type":"object"},"GrowthSuppressionRemoved":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"GrowthSuppressionsAdded":{"properties":{"added":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"alreadyListed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"leadsStopped":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"rejected":{"items":{"type":"string"},"type":"array"}},"required":["added","alreadyListed","leadsStopped","rejected"],"type":"object"},"GrowthThread":{"properties":{"deal":{"anyOf":[{"properties":{"clientAccountId":{"type":"string"},"id":{"type":"string"}},"required":["id","clientAccountId"],"type":"object"},{"type":"null"}]},"lead":{"properties":{"company":{"properties":{"domain":{"type":"string"},"name":{"type":["string","null"]}},"required":["name","domain"],"type":"object"},"evidence":{"items":{"properties":{"claim":{"type":"string"},"url":{"type":"string"}},"required":["claim","url"],"type":"object"},"type":"array"},"fitScore":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"person":{"properties":{"email":{"type":["string","null"]},"fullName":{"type":"string"},"id":{"type":"string"},"title":{"type":["string","null"]}},"required":["id","fullName","title","email"],"type":"object"},"playId":{"type":"string"},"projectId":{"type":"string"},"status":{"type":"string"}},"required":["id","status","playId","projectId","fitScore","evidence","person","company"],"type":"object"},"messages":{"items":{"properties":{"approvedAt":{"type":["string","null"]},"approvedByUserId":{"type":["string","null"]},"body":{"type":"string"},"chargeMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"claimedAt":{"type":["string","null"]},"classification":{"anyOf":[{"enum":["interested","later","no","unsubscribe","out_of_office","other"],"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"deliveryUnknown":{"type":"boolean"},"direction":{"type":"string"},"dueAt":{"type":["string","null"]},"error":{"type":["string","null"]},"facts":{"items":{"properties":{"source":{"type":"string"},"text":{"type":"string"}},"required":["text","source"],"type":"object"},"type":"array"},"fromEmail":{"type":["string","null"]},"heldReason":{"anyOf":[{"enum":["no_credit","monthly_cap","daily_budget"],"type":"string"},{"type":"null"}]},"id":{"type":"string"},"internetMessageId":{"type":["string","null"]},"leadId":{"type":["string","null"]},"mailboxId":{"type":["string","null"]},"organizationId":{"type":"string"},"providerMessageId":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"status":{"enum":["draft","scheduled","sending","sent","failed","canceled","received"],"type":"string"},"step":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"subject":{"type":["string","null"]},"threadRef":{"type":["string","null"]}},"required":["id","organizationId","leadId","direction","mailboxId","subject","body","providerMessageId","threadRef","sentAt","classification","status","step","dueAt","claimedAt","approvedAt","approvedByUserId","internetMessageId","fromEmail","error","facts","createdAt","chargeMicros","heldReason","deliveryUnknown"],"type":"object"},"type":"array"}},"required":["lead","deal","messages"],"type":"object"},"GrowthToolResultImport":{"properties":{"added":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"callId":{"type":"string"},"companies":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"matched":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"rows":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"skipped":{"properties":{"duplicate":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"no_company":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"no_name":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"opted_out":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"region_excluded":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"suppressed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"type":"object"},"toolId":{"type":"string"}},"required":["rows","added","matched","companies","skipped","callId","toolId"],"type":"object"},"HlixCodeModels":{"properties":{"default":{"type":"string"},"models":{"items":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"}},"required":["default","models"],"type":"object"},"HlixCrawlStatus":{"properties":{"allowance":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"enabled":{"type":"boolean"},"overagePer100":{"minimum":0,"type":"number"},"platformAvailable":{"type":"boolean"},"termsSource":{"enum":["plan","placeholder"],"type":"string"},"unavailableReason":{"type":["string","null"]},"usedThisMonth":{"minimum":0,"type":"number"}},"required":["enabled","platformAvailable","unavailableReason","usedThisMonth","allowance","overagePer100","termsSource"],"type":"object"},"HostingCatalog":{"properties":{"currentRegion":{"enum":["eu","us"],"type":"string"},"identityRegion":{"enum":["eu","us"],"type":"string"},"regions":{"items":{"properties":{"apiUrl":{"type":["string","null"]},"appUrl":{"type":["string","null"]},"available":{"type":"boolean"},"id":{"enum":["eu","us"],"type":"string"}},"required":["id","available","appUrl","apiUrl"],"type":"object"},"type":"array"},"sharedLogin":{"type":"boolean"}},"required":["currentRegion","identityRegion","sharedLogin","regions"],"type":"object"},"ImportAgent":{"additionalProperties":false,"properties":{"coder":{"anyOf":[{"enum":["claude-code","codex","opencode","goose","qwen-code","pi","hlix"],"type":"string"},{"type":"null"}]},"description":{"maxLength":2000,"type":"string"},"duty":{"enum":["build","triage"],"type":"string"},"instructions":{"maxLength":20000,"minLength":1,"type":"string"},"name":{"maxLength":120,"minLength":1,"type":"string"}},"required":["name","instructions"],"type":"object"},"ImportGrowthToolResult":{"additionalProperties":false,"properties":{"callId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"recordsPath":{"maxLength":200,"pattern":"^(\\/[^/]{1,80}){0,6}$","type":"string"}},"required":["callId"],"type":"object"},"ImportMcp":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"envKeys":{"default":[],"items":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"maxItems":100,"type":"array"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"name":{"maxLength":100,"minLength":1,"type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"ImportSecretFiles":{"properties":{"files":{"items":{"properties":{"contentBase64":{"maxLength":1398104,"type":"string"},"path":{"maxLength":512,"minLength":1,"type":"string"}},"required":["path","contentBase64"],"type":"object"},"maxItems":64,"minItems":1,"type":"array"}},"required":["files"],"type":"object"},"ImportSkill":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"minLength":1,"type":"string"},"slug":{"maxLength":100,"minLength":1,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","content"],"type":"object"},"ImportedAgent":{"properties":{"agent":{"properties":{"duty":{"enum":["build","triage"],"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"}},"required":["id","name","projectId","duty"],"type":"object"}},"required":["agent"],"type":"object"},"ImportedMcp":{"properties":{"mcpServer":{"properties":{"envKeys":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"}},"required":["name","transport","envKeys"],"type":"object"}},"required":["mcpServer"],"type":"object"},"ImportedSkill":{"properties":{"skill":{"properties":{"path":{"type":"string"},"slug":{"type":"string"}},"required":["slug","path"],"type":"object"}},"required":["skill"],"type":"object"},"InitialProposal":{"additionalProperties":false,"properties":{"approvedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"approvedBy":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"approvedRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"canvasBatchId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"canvasPublicationError":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]},"canvasPublishedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"clientDecidedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"clientDecidedBy":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"clientDecision":{"anyOf":[{"enum":["approved","changes_requested"],"type":"string"},{"type":"null"}]},"clientDecisionComment":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"clientDecisionRevisionHash":{"anyOf":[{"pattern":"^[0-9a-f]{64}$","type":"string"},{"type":"null"}]},"clientDecisionRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"clientReviewerId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"currentRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"operationId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"operationLeaseExpiresAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"operationLeaseToken":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"organizationId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"projectId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"publishedRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"updatedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"visibility":{"enum":["internal","client"],"type":"string"}},"required":["id","organizationId","projectId","currentRevisionId","publishedRevisionId","approvedRevisionId","approvedBy","approvedAt","visibility","clientReviewerId","clientDecision","clientDecisionComment","clientDecisionRevisionId","clientDecisionRevisionHash","clientDecidedBy","clientDecidedAt","canvasBatchId","canvasPublishedAt","canvasPublicationError","operationId","operationLeaseToken","operationLeaseExpiresAt","createdAt","updatedAt"],"type":"object"},"InitialProposalApprove":{"additionalProperties":false,"properties":{"contentHash":{"maxLength":64,"minLength":64,"type":"string"},"revisionId":{"minLength":1,"type":"string"}},"required":["revisionId","contentHash"],"type":"object"},"InitialProposalClientDecision":{"additionalProperties":false,"properties":{"comment":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"decision":{"enum":["approved","changes_requested"],"type":"string"},"revisionHash":{"pattern":"^[0-9a-f]{64}$","type":"string"},"revisionId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"}},"required":["revisionId","revisionHash","decision","comment"],"type":"object"},"InitialProposalComment":{"additionalProperties":false,"properties":{"authorId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"authorType":{"enum":["user","client"],"type":"string"},"blockId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"body":{"maxLength":10000,"minLength":1,"type":"string"},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"organizationId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"parentId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"projectId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"proposalId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"resolvedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"resolvedBy":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"revisionHash":{"pattern":"^[0-9a-f]{64}$","type":"string"},"revisionId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"selectedText":{"anyOf":[{"maxLength":4000,"minLength":1,"type":"string"},{"type":"null"}]},"updatedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"}},"required":["revisionId","revisionHash","blockId","selectedText","parentId","body","id","organizationId","projectId","proposalId","authorId","authorType","resolvedBy","resolvedAt","createdAt","updatedAt"],"type":"object"},"InitialProposalCommentsResponse":{"properties":{"items":{"items":{"additionalProperties":false,"properties":{"authorId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"authorType":{"enum":["user","client"],"type":"string"},"blockId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"body":{"maxLength":10000,"minLength":1,"type":"string"},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"organizationId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"parentId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"projectId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"proposalId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"resolvedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"resolvedBy":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"revisionHash":{"pattern":"^[0-9a-f]{64}$","type":"string"},"revisionId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"selectedText":{"anyOf":[{"maxLength":4000,"minLength":1,"type":"string"},{"type":"null"}]},"updatedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"}},"required":["revisionId","revisionHash","blockId","selectedText","parentId","body","id","organizationId","projectId","proposalId","authorId","authorType","resolvedBy","resolvedAt","createdAt","updatedAt"],"type":"object"},"type":"array"},"nextCursor":{"anyOf":[{"properties":{"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"id":{"type":"string"}},"required":["createdAt","id"],"type":"object"},{"type":"null"}]}},"required":["items","nextCursor"],"type":"object"},"InitialProposalDetailResponse":{"properties":{"complete":{"type":"boolean"},"projectId":{"type":"string"},"proposal":{"additionalProperties":false,"properties":{"approvedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"approvedBy":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"approvedRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"canvasBatchId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"canvasPublicationError":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]},"canvasPublishedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"clientDecidedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"clientDecidedBy":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"clientDecision":{"anyOf":[{"enum":["approved","changes_requested"],"type":"string"},{"type":"null"}]},"clientDecisionComment":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"clientDecisionRevisionHash":{"anyOf":[{"pattern":"^[0-9a-f]{64}$","type":"string"},{"type":"null"}]},"clientDecisionRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"clientReviewerId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"currentRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"operationId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"operationLeaseExpiresAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"operationLeaseToken":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"organizationId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"projectId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"publishedRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"updatedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"visibility":{"enum":["internal","client"],"type":"string"}},"required":["id","organizationId","projectId","currentRevisionId","publishedRevisionId","approvedRevisionId","approvedBy","approvedAt","visibility","clientReviewerId","clientDecision","clientDecisionComment","clientDecisionRevisionId","clientDecisionRevisionHash","clientDecidedBy","clientDecidedAt","canvasBatchId","canvasPublishedAt","canvasPublicationError","operationId","operationLeaseToken","operationLeaseExpiresAt","createdAt","updatedAt"],"type":"object"},"revision":{"anyOf":[{"additionalProperties":false,"properties":{"agencyReviewDecision":{"anyOf":[{"additionalProperties":false,"properties":{"contentHash":{"pattern":"^[0-9a-f]{64}$","type":"string"},"decidedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"decidedBy":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"feedback":{"maxLength":12000,"minLength":1,"type":"string"},"method":{"enum":["ai_edit","manual_edit"],"type":"string"},"status":{"const":"changes_requested","type":"string"},"successorRevisionId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"}},"required":["status","decidedBy","decidedAt","contentHash","successorRevisionId","method","feedback"],"type":"object"},{"type":"null"}],"default":null},"baseRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"content":{"anyOf":[{"additionalProperties":false,"properties":{"blocks":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"body":{"maxLength":12000,"minLength":1,"type":"string"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"kind":{"enum":["cover","executive_summary","outcomes","delivery","assumptions","next_steps"],"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["kind","title","body","id"],"type":"object"},{"additionalProperties":false,"properties":{"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"items":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"type":"array"},"kind":{"enum":["scope","exclusions","acceptance_criteria"],"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["kind","title","items","id"],"type":"object"},{"additionalProperties":false,"properties":{"edges":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"label":{"anyOf":[{"maxLength":240,"minLength":1,"type":"string"},{"type":"null"}]},"source":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"target":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"}},"required":["id","source","target","label"],"type":"object"},"maxItems":80,"type":"array"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"kind":{"const":"architecture","type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"description":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}]},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"label":{"maxLength":160,"minLength":1,"type":"string"}},"required":["id","label","description"],"type":"object"},"maxItems":40,"minItems":1,"type":"array"},"summary":{"maxLength":4000,"minLength":1,"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["id","kind","title","summary","nodes","edges"],"type":"object"}]},"maxItems":64,"minItems":1,"type":"array"},"brand":{"additionalProperties":false,"properties":{"kit":{"anyOf":[{"properties":{"colors":{"properties":{"accent":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"background":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"primary":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]}},"required":["primary","accent","background","text"],"type":"object"},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"extractedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"headerMode":{"enum":["logo-and-name","logo-only"],"type":"string"},"iconTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"logoTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"provenance":{"additionalProperties":{"enum":["observed","inferred","edited"],"type":"string"},"default":{},"propertyNames":{"maxLength":80,"type":"string"},"type":"object"},"sourceUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"tagline":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"typography":{"properties":{"body":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]},"heading":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]}},"required":["heading","body"],"type":"object"},"voice":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"warnings":{"items":{"maxLength":300,"type":"string"},"maxItems":12,"type":"array"}},"required":["name","tagline","logoUrl","colors","typography","voice","description","sourceUrl","extractedAt","warnings"],"type":"object"},{"type":"null"}]},"legalAddress":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"legalName":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"logoArtifactKey":{"anyOf":[{"maxLength":512,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["kit","legalName","legalAddress","logoArtifactKey"],"type":"object"},"customerName":{"anyOf":[{"maxLength":240,"minLength":1,"type":"string"},{"type":"null"}]},"cycles":{"items":{"additionalProperties":false,"properties":{"cycleId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"dependsOnCycleIds":{"items":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"maxItems":100,"type":"array"},"initialScopeCredits":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}]},"summary":{"maxLength":4000,"minLength":1,"type":"string"},"tasks":{"items":{"additionalProperties":false,"properties":{"billable":{"type":"boolean"},"doneWhen":{"maxLength":2000,"minLength":1,"type":"string"},"quote":{"anyOf":[{"additionalProperties":false,"properties":{"credits":{"maximum":1000000,"minimum":0,"type":"integer"},"tier":{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"}},"required":["tier","credits"],"type":"object"},{"type":"null"}]},"size":{"enum":["simple","medium","complex"],"type":"string"},"taskId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"required":["taskId","title","doneWhen","size","billable","quote"],"type":"object"},"maxItems":100,"type":"array"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"required":["cycleId","title","summary","dependsOnCycleIds","tasks","initialScopeCredits"],"type":"object"},"maxItems":100,"type":"array"},"initialScopeCredits":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}]},"quoteComplete":{"type":"boolean"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["title","customerName","blocks","cycles","brand","initialScopeCredits","quoteComplete"],"type":"object"},{"type":"null"}]},"contentHash":{"anyOf":[{"pattern":"^[0-9a-f]{64}$","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"error":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"initialScopeCredits":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}]},"inputFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"instruction":{"anyOf":[{"maxLength":12000,"type":"string"},{"type":"null"}]},"kind":{"enum":["generated","ai_edit","manual_edit"],"type":"string"},"organizationId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"projectId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"proposalId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"quoteComplete":{"type":"boolean"},"revision":{"maximum":1000000,"minimum":1,"type":"integer"},"status":{"enum":["collecting","revising","ready","failed"],"type":"string"}},"required":["id","organizationId","projectId","proposalId","revision","kind","status","baseRevisionId","instruction","content","contentHash","inputFingerprint","initialScopeCredits","quoteComplete","error","createdAt","completedAt"],"type":"object"},{"type":"null"}]}},"required":["projectId","proposal","revision","complete"],"type":"object"},"InitialProposalHistoryResponse":{"properties":{"items":{"items":{"additionalProperties":false,"properties":{"completedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"contentHash":{"anyOf":[{"pattern":"^[0-9a-f]{64}$","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"kind":{"enum":["generated","ai_edit","manual_edit"],"type":"string"},"revision":{"maximum":1000000,"minimum":1,"type":"integer"},"status":{"enum":["collecting","revising","ready","failed"],"type":"string"}},"required":["id","revision","kind","status","contentHash","createdAt","completedAt"],"type":"object"},"type":"array"}},"required":["items"],"type":"object"},"InitialProposalManualRevision":{"additionalProperties":false,"properties":{"baseHash":{"maxLength":64,"minLength":64,"type":"string"},"baseRevisionId":{"minLength":1,"type":"string"},"blocks":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"body":{"maxLength":12000,"minLength":1,"type":"string"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"kind":{"enum":["cover","executive_summary","outcomes","delivery","assumptions","next_steps"],"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["kind","title","body","id"],"type":"object"},{"additionalProperties":false,"properties":{"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"items":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"type":"array"},"kind":{"enum":["scope","exclusions","acceptance_criteria"],"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["kind","title","items","id"],"type":"object"},{"additionalProperties":false,"properties":{"edges":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"label":{"anyOf":[{"maxLength":240,"minLength":1,"type":"string"},{"type":"null"}]},"source":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"target":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"}},"required":["id","source","target","label"],"type":"object"},"maxItems":80,"type":"array"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"kind":{"const":"architecture","type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"description":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}]},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"label":{"maxLength":160,"minLength":1,"type":"string"}},"required":["id","label","description"],"type":"object"},"maxItems":40,"minItems":1,"type":"array"},"summary":{"maxLength":4000,"minLength":1,"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["id","kind","title","summary","nodes","edges"],"type":"object"}]},"maxItems":64,"minItems":1,"type":"array"}},"required":["baseRevisionId","baseHash","blocks"],"type":"object"},"InitialProposalPublish":{"additionalProperties":false,"properties":{"clientReviewerId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"default":null},"visibility":{"default":"client","enum":["internal","client"],"type":"string"}},"type":"object"},"InitialProposalResolveComment":{"additionalProperties":false,"properties":{"resolved":{"type":"boolean"}},"required":["resolved"],"type":"object"},"InitialProposalRevision":{"additionalProperties":false,"properties":{"agencyReviewDecision":{"anyOf":[{"additionalProperties":false,"properties":{"contentHash":{"pattern":"^[0-9a-f]{64}$","type":"string"},"decidedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"decidedBy":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"feedback":{"maxLength":12000,"minLength":1,"type":"string"},"method":{"enum":["ai_edit","manual_edit"],"type":"string"},"status":{"const":"changes_requested","type":"string"},"successorRevisionId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"}},"required":["status","decidedBy","decidedAt","contentHash","successorRevisionId","method","feedback"],"type":"object"},{"type":"null"}],"default":null},"baseRevisionId":{"anyOf":[{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"content":{"anyOf":[{"additionalProperties":false,"properties":{"blocks":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"body":{"maxLength":12000,"minLength":1,"type":"string"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"kind":{"enum":["cover","executive_summary","outcomes","delivery","assumptions","next_steps"],"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["kind","title","body","id"],"type":"object"},{"additionalProperties":false,"properties":{"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"items":{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"type":"array"},"kind":{"enum":["scope","exclusions","acceptance_criteria"],"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["kind","title","items","id"],"type":"object"},{"additionalProperties":false,"properties":{"edges":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"label":{"anyOf":[{"maxLength":240,"minLength":1,"type":"string"},{"type":"null"}]},"source":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"target":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"}},"required":["id","source","target","label"],"type":"object"},"maxItems":80,"type":"array"},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"kind":{"const":"architecture","type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"description":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}]},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"label":{"maxLength":160,"minLength":1,"type":"string"}},"required":["id","label","description"],"type":"object"},"maxItems":40,"minItems":1,"type":"array"},"summary":{"maxLength":4000,"minLength":1,"type":"string"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["id","kind","title","summary","nodes","edges"],"type":"object"}]},"maxItems":64,"minItems":1,"type":"array"},"brand":{"additionalProperties":false,"properties":{"kit":{"anyOf":[{"properties":{"colors":{"properties":{"accent":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"background":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"primary":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]}},"required":["primary","accent","background","text"],"type":"object"},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"extractedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"headerMode":{"enum":["logo-and-name","logo-only"],"type":"string"},"iconTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"logoTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"provenance":{"additionalProperties":{"enum":["observed","inferred","edited"],"type":"string"},"default":{},"propertyNames":{"maxLength":80,"type":"string"},"type":"object"},"sourceUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"tagline":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"typography":{"properties":{"body":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]},"heading":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]}},"required":["heading","body"],"type":"object"},"voice":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"warnings":{"items":{"maxLength":300,"type":"string"},"maxItems":12,"type":"array"}},"required":["name","tagline","logoUrl","colors","typography","voice","description","sourceUrl","extractedAt","warnings"],"type":"object"},{"type":"null"}]},"legalAddress":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"legalName":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"logoArtifactKey":{"anyOf":[{"maxLength":512,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["kit","legalName","legalAddress","logoArtifactKey"],"type":"object"},"customerName":{"anyOf":[{"maxLength":240,"minLength":1,"type":"string"},{"type":"null"}]},"cycles":{"items":{"additionalProperties":false,"properties":{"cycleId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"dependsOnCycleIds":{"items":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"maxItems":100,"type":"array"},"initialScopeCredits":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}]},"summary":{"maxLength":4000,"minLength":1,"type":"string"},"tasks":{"items":{"additionalProperties":false,"properties":{"billable":{"type":"boolean"},"doneWhen":{"maxLength":2000,"minLength":1,"type":"string"},"quote":{"anyOf":[{"additionalProperties":false,"properties":{"credits":{"maximum":1000000,"minimum":0,"type":"integer"},"tier":{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"}},"required":["tier","credits"],"type":"object"},{"type":"null"}]},"size":{"enum":["simple","medium","complex"],"type":"string"},"taskId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"required":["taskId","title","doneWhen","size","billable","quote"],"type":"object"},"maxItems":100,"type":"array"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"required":["cycleId","title","summary","dependsOnCycleIds","tasks","initialScopeCredits"],"type":"object"},"maxItems":100,"type":"array"},"initialScopeCredits":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}]},"quoteComplete":{"type":"boolean"},"title":{"maxLength":240,"minLength":1,"type":"string"}},"required":["title","customerName","blocks","cycles","brand","initialScopeCredits","quoteComplete"],"type":"object"},{"type":"null"}]},"contentHash":{"anyOf":[{"pattern":"^[0-9a-f]{64}$","type":"string"},{"type":"null"}]},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"error":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]},"id":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"initialScopeCredits":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}]},"inputFingerprint":{"pattern":"^[0-9a-f]{64}$","type":"string"},"instruction":{"anyOf":[{"maxLength":12000,"type":"string"},{"type":"null"}]},"kind":{"enum":["generated","ai_edit","manual_edit"],"type":"string"},"organizationId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"projectId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"proposalId":{"maxLength":120,"minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","type":"string"},"quoteComplete":{"type":"boolean"},"revision":{"maximum":1000000,"minimum":1,"type":"integer"},"status":{"enum":["collecting","revising","ready","failed"],"type":"string"}},"required":["id","organizationId","projectId","proposalId","revision","kind","status","baseRevisionId","instruction","content","contentHash","inputFingerprint","initialScopeCredits","quoteComplete","error","createdAt","completedAt"],"type":"object"},"InitialProposalRevisionTarget":{"additionalProperties":false,"properties":{"baseHash":{"maxLength":64,"minLength":64,"type":"string"},"baseRevisionId":{"minLength":1,"type":"string"},"commentIds":{"items":{"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"instruction":{"maxLength":12000,"minLength":1,"type":"string"}},"required":["baseRevisionId","baseHash","instruction"],"type":"object"},"InviteWorkspacePortal":{"additionalProperties":false,"properties":{"canCreateProjects":{"type":["boolean","null"]},"clientAccountId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"email":{"format":"email","maxLength":320,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"projectGrants":{"default":[],"items":{"additionalProperties":false,"properties":{"canAccessCanvas":{"type":"boolean"},"canMessage":{"default":false,"type":"boolean"},"projectId":{"minLength":1,"type":"string"},"showProjectInsights":{"default":false,"type":"boolean"}},"required":["projectId"],"type":"object"},"maxItems":100,"type":"array"}},"required":["email"],"type":"object"},"IssueInvoice":{"additionalProperties":false,"properties":{},"type":"object"},"LinearBindingInput":{"properties":{"enabled":{"type":"boolean"},"installationId":{"minLength":1,"type":"string"},"labelId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"linearProjectId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"mode":{"default":"automatic","enum":["automatic","manual"],"type":"string"},"teamId":{"minLength":1,"type":"string"}},"required":["installationId","teamId","linearProjectId","labelId","enabled"],"type":"object"},"LinearBindingResponse":{"properties":{"binding":{"anyOf":[{"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"installationId":{"type":"string"},"labelId":{"type":["string","null"]},"labelName":{"type":["string","null"]},"lastError":{"type":["string","null"]},"lastSyncedAt":{"type":["string","null"]},"lastWebhookAt":{"type":["string","null"]},"linearProjectId":{"type":["string","null"]},"linearProjectName":{"type":["string","null"]},"linearWorkspaceName":{"type":"string"},"mode":{"enum":["automatic","manual"],"type":"string"},"projectId":{"type":"string"},"projectName":{"type":"string"},"teamId":{"type":"string"},"teamKey":{"type":"string"},"teamName":{"type":"string"}},"required":["id","projectId","projectName","installationId","linearWorkspaceName","teamId","teamName","teamKey","linearProjectId","linearProjectName","labelId","labelName","mode","enabled","lastSyncedAt","lastWebhookAt","lastError"],"type":"object"},{"type":"null"}]}},"required":["binding"],"type":"object"},"LinearBindingsResponse":{"properties":{"bindings":{"items":{"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"installationId":{"type":"string"},"labelId":{"type":["string","null"]},"labelName":{"type":["string","null"]},"lastError":{"type":["string","null"]},"lastSyncedAt":{"type":["string","null"]},"lastWebhookAt":{"type":["string","null"]},"linearProjectId":{"type":["string","null"]},"linearProjectName":{"type":["string","null"]},"linearWorkspaceName":{"type":"string"},"mode":{"enum":["automatic","manual"],"type":"string"},"projectId":{"type":"string"},"projectName":{"type":"string"},"teamId":{"type":"string"},"teamKey":{"type":"string"},"teamName":{"type":"string"}},"required":["id","projectId","projectName","installationId","linearWorkspaceName","teamId","teamName","teamKey","linearProjectId","linearProjectName","labelId","labelName","mode","enabled","lastSyncedAt","lastWebhookAt","lastError"],"type":"object"},"type":"array"}},"required":["bindings"],"type":"object"},"LinearCatalogResponse":{"properties":{"labels":{"items":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"projects":{"items":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"teams":{"items":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["id","name","key"],"type":"object"},"type":"array"}},"required":["teams","projects","labels"],"type":"object"},"LinearDeleteResponse":{"properties":{"ok":{"const":true,"type":"boolean"}},"required":["ok"],"type":"object"},"LinearIssueResponse":{"properties":{"context":{"properties":{"archived":{"type":"boolean"},"assignee":{"type":["string","null"]},"attachments":{"items":{"properties":{"title":{"type":"string"},"url":{"type":"string"}},"required":["title","url"],"type":"object"},"type":"array"},"children":{"items":{"properties":{"description":{"type":"string"},"id":{"type":"string"},"identifier":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","identifier","title","description","url"],"type":"object"},"type":"array"},"comments":{"items":{"properties":{"author":{"type":["string","null"]},"body":{"type":"string"},"createdAt":{"type":"string"}},"required":["body","author","createdAt"],"type":"object"},"type":"array"},"description":{"type":"string"},"id":{"type":"string"},"identifier":{"type":"string"},"labels":{"items":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"parent":{"anyOf":[{"properties":{"description":{"type":"string"},"id":{"type":"string"},"identifier":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["id","identifier","title","description","url"],"type":"object"},{"type":"null"}]},"priority":{"type":"string"},"project":{"anyOf":[{"properties":{"content":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name","description","content"],"type":"object"},{"type":"null"}]},"state":{"properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"type":"object"},"team":{"properties":{"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["id","name","key"],"type":"object"},"title":{"type":"string"},"updatedAt":{"type":"string"},"url":{"type":"string"}},"required":["id","identifier","title","description","url","updatedAt","team","project","labels","state","priority","assignee","archived","parent","children","comments","attachments"],"type":"object"},"issue":{"properties":{"assigneeName":{"type":["string","null"]},"cycleId":{"type":["string","null"]},"description":{"type":"string"},"error":{"type":["string","null"]},"id":{"type":"string"},"identifier":{"type":"string"},"priorityLabel":{"type":"string"},"requestId":{"type":["string","null"]},"stateName":{"type":"string"},"status":{"enum":["ready","submitted","error","excluded"],"type":"string"},"title":{"type":"string"},"updatedAt":{"type":"string"},"url":{"type":"string"}},"required":["id","identifier","title","url","description","stateName","priorityLabel","assigneeName","status","error","requestId","cycleId","updatedAt"],"type":"object"}},"required":["issue","context"],"type":"object"},"LinearIssuesResponse":{"properties":{"issues":{"items":{"properties":{"assigneeName":{"type":["string","null"]},"cycleId":{"type":["string","null"]},"description":{"type":"string"},"error":{"type":["string","null"]},"id":{"type":"string"},"identifier":{"type":"string"},"priorityLabel":{"type":"string"},"requestId":{"type":["string","null"]},"stateName":{"type":"string"},"status":{"enum":["ready","submitted","error","excluded"],"type":"string"},"title":{"type":"string"},"updatedAt":{"type":"string"},"url":{"type":"string"}},"required":["id","identifier","title","url","description","stateName","priorityLabel","assigneeName","status","error","requestId","cycleId","updatedAt"],"type":"object"},"type":"array"}},"required":["issues"],"type":"object"},"LinearStartResponse":{"properties":{"cycleId":{"type":["string","null"]},"ok":{"const":true,"type":"boolean"},"requestId":{"type":"string"}},"required":["ok","requestId","cycleId"],"type":"object"},"LinearSyncResponse":{"properties":{"failed":{"type":"number"},"imported":{"type":"number"},"queued":{"type":"number"},"submitted":{"type":"number"},"updated":{"type":"number"}},"required":["imported","updated","submitted","failed","queued"],"type":"object"},"ManagedMailboxConfiguration":{"properties":{"blockers":{"items":{"type":"string"},"type":"array"},"configured":{"type":"boolean"},"connectionBlockers":{"items":{"type":"string"},"type":"array"},"connectionConfigured":{"type":"boolean"},"googleSupported":{"const":true,"type":"boolean"},"importAvailable":{"type":"boolean"},"microsoftSupported":{"const":false,"type":"boolean"},"warmupAvailable":{"type":"boolean"}},"required":["configured","blockers","googleSupported","microsoftSupported","warmupAvailable"],"type":"object"},"ManagedMailboxImportInput":{"additionalProperties":false,"properties":{"cursor":{"maxLength":253,"pattern":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$","type":"string"},"domains":{"items":{"maxLength":253,"pattern":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$","type":"string"},"maxItems":10,"minItems":1,"type":"array"},"limit":{"default":10,"maximum":10,"minimum":1,"type":"integer"}},"type":"object"},"ManagedMailboxOrder":{"properties":{"billedMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"costStatus":{"enum":["pending","known","unknown"],"type":"string"},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"issueCode":{"type":["string","null"]},"providerCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"quote":{"properties":{"available":{"type":"boolean"},"currency":{"const":"USD","type":"string"},"domains":{"items":{"properties":{"available":{"type":"boolean"},"blocked":{"type":"boolean"},"name":{"type":"string"},"reason":{"type":["string","null"]}},"required":["name","available","blocked","reason"],"type":"object"},"type":"array"},"expiresAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"items":{"items":{"properties":{"address":{"type":["string","null"]},"billedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"billingCycle":{"enum":["once","monthly","quarterly","yearly"],"type":"string"},"billingSource":{"enum":["provider_wallet","subscription"],"type":"string"},"domain":{"type":"string"},"kind":{"enum":["registration","hosting","warmup","transport"],"type":"string"},"quantity":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"renewalBilledMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"renewalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"totalCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"unitCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["kind","domain","address","quantity","unitCostMicros","totalCostMicros","billedMicros","billingCycle","billingSource","renewalCostMicros","renewalBilledMicros"],"type":"object"},"type":"array"},"locked":{"const":false,"type":"boolean"},"observedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"quoteId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"recurring":{"items":{"properties":{"address":{"type":["string","null"]},"billedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"billingCycle":{"enum":["once","monthly","quarterly","yearly"],"type":"string"},"billingSource":{"enum":["provider_wallet","subscription"],"type":"string"},"domain":{"type":"string"},"kind":{"enum":["registration","hosting","warmup","transport"],"type":"string"},"quantity":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"renewalBilledMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"renewalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"totalCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"unitCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["kind","domain","address","quantity","unitCostMicros","totalCostMicros","billedMicros","billingCycle","billingSource","renewalCostMicros","renewalBilledMicros"],"type":"object"},"type":"array"},"upfrontBilledMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"upfrontCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["quoteId","observedAt","expiresAt","currency","locked","available","domains","items","recurring","upfrontCostMicros","upfrontBilledMicros"],"type":"object"},"reservedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"resources":{"items":{"properties":{"address":{"type":["string","null"]},"authorizationStatus":{"type":"string"},"cancellationRequested":{"type":"boolean"},"connectionStatus":{"type":"string"},"domain":{"type":"string"},"hostingStatus":{"type":"string"},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"issueCode":{"type":["string","null"]},"kind":{"enum":["domain","mailbox"],"type":"string"},"mailboxId":{"type":["string","null"]},"orderId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"renewalCycle":{"type":["string","null"]},"renewalDate":{"type":["string","null"]},"sendEligible":{"type":"boolean"},"warmupStatus":{"type":"string"}},"required":["id","orderId","kind","domain","address","hostingStatus","authorizationStatus","connectionStatus","warmupStatus","sendEligible","renewalDate","renewalCycle","cancellationRequested","mailboxId","issueCode"],"type":"object"},"type":"array"},"source":{"enum":["purchase","import"],"type":"string"},"status":{"enum":["pending","provisioning","partial","unknown","completed","failed","cancelled"],"type":"string"},"updatedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"}},"required":["id","status","costStatus","reservedMicros","providerCostMicros","billedMicros","createdAt","updatedAt","quote","resources","issueCode"],"type":"object"},"ManagedMailboxOrderInput":{"additionalProperties":false,"properties":{"contact":{"additionalProperties":false,"properties":{"addressLine1":{"maxLength":200,"minLength":1,"type":"string"},"addressLine2":{"maxLength":200,"type":"string"},"city":{"maxLength":100,"minLength":1,"type":"string"},"country":{"pattern":"^[A-Z]{2}$","type":"string"},"email":{"format":"email","maxLength":254,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"firstName":{"maxLength":100,"minLength":1,"type":"string"},"lastName":{"maxLength":100,"minLength":1,"type":"string"},"organization":{"maxLength":100,"minLength":1,"type":"string"},"phone":{"pattern":"^\\+[1-9]\\d{6,14}$","type":"string"},"postalCode":{"maxLength":30,"minLength":1,"type":"string"},"state":{"maxLength":100,"minLength":1,"type":"string"}},"required":["firstName","lastName","email","addressLine1","city","state","country","postalCode"],"type":"object"},"idempotencyKey":{"maxLength":128,"minLength":1,"type":"string"},"quoteId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["quoteId","idempotencyKey","contact"],"type":"object"},"ManagedMailboxOrderList":{"properties":{"items":{"items":{"properties":{"billedMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"costStatus":{"enum":["pending","known","unknown"],"type":"string"},"createdAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"issueCode":{"type":["string","null"]},"providerCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"quote":{"properties":{"available":{"type":"boolean"},"currency":{"const":"USD","type":"string"},"domains":{"items":{"properties":{"available":{"type":"boolean"},"blocked":{"type":"boolean"},"name":{"type":"string"},"reason":{"type":["string","null"]}},"required":["name","available","blocked","reason"],"type":"object"},"type":"array"},"expiresAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"items":{"items":{"properties":{"address":{"type":["string","null"]},"billedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"billingCycle":{"enum":["once","monthly","quarterly","yearly"],"type":"string"},"billingSource":{"enum":["provider_wallet","subscription"],"type":"string"},"domain":{"type":"string"},"kind":{"enum":["registration","hosting","warmup","transport"],"type":"string"},"quantity":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"renewalBilledMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"renewalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"totalCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"unitCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["kind","domain","address","quantity","unitCostMicros","totalCostMicros","billedMicros","billingCycle","billingSource","renewalCostMicros","renewalBilledMicros"],"type":"object"},"type":"array"},"locked":{"const":false,"type":"boolean"},"observedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"quoteId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"recurring":{"items":{"properties":{"address":{"type":["string","null"]},"billedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"billingCycle":{"enum":["once","monthly","quarterly","yearly"],"type":"string"},"billingSource":{"enum":["provider_wallet","subscription"],"type":"string"},"domain":{"type":"string"},"kind":{"enum":["registration","hosting","warmup","transport"],"type":"string"},"quantity":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"renewalBilledMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"renewalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"totalCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"unitCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["kind","domain","address","quantity","unitCostMicros","totalCostMicros","billedMicros","billingCycle","billingSource","renewalCostMicros","renewalBilledMicros"],"type":"object"},"type":"array"},"upfrontBilledMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"upfrontCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["quoteId","observedAt","expiresAt","currency","locked","available","domains","items","recurring","upfrontCostMicros","upfrontBilledMicros"],"type":"object"},"reservedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"resources":{"items":{"properties":{"address":{"type":["string","null"]},"authorizationStatus":{"type":"string"},"cancellationRequested":{"type":"boolean"},"connectionStatus":{"type":"string"},"domain":{"type":"string"},"hostingStatus":{"type":"string"},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"issueCode":{"type":["string","null"]},"kind":{"enum":["domain","mailbox"],"type":"string"},"mailboxId":{"type":["string","null"]},"orderId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"renewalCycle":{"type":["string","null"]},"renewalDate":{"type":["string","null"]},"sendEligible":{"type":"boolean"},"warmupStatus":{"type":"string"}},"required":["id","orderId","kind","domain","address","hostingStatus","authorizationStatus","connectionStatus","warmupStatus","sendEligible","renewalDate","renewalCycle","cancellationRequested","mailboxId","issueCode"],"type":"object"},"type":"array"},"source":{"enum":["purchase","import"],"type":"string"},"status":{"enum":["pending","provisioning","partial","unknown","completed","failed","cancelled"],"type":"string"},"updatedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"}},"required":["id","status","costStatus","reservedMicros","providerCostMicros","billedMicros","createdAt","updatedAt","quote","resources","issueCode"],"type":"object"},"type":"array"},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"type":"object"},"ManagedMailboxQuote":{"properties":{"available":{"type":"boolean"},"currency":{"const":"USD","type":"string"},"domains":{"items":{"properties":{"available":{"type":"boolean"},"blocked":{"type":"boolean"},"name":{"type":"string"},"reason":{"type":["string","null"]}},"required":["name","available","blocked","reason"],"type":"object"},"type":"array"},"expiresAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"items":{"items":{"properties":{"address":{"type":["string","null"]},"billedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"billingCycle":{"enum":["once","monthly","quarterly","yearly"],"type":"string"},"billingSource":{"enum":["provider_wallet","subscription"],"type":"string"},"domain":{"type":"string"},"kind":{"enum":["registration","hosting","warmup","transport"],"type":"string"},"quantity":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"renewalBilledMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"renewalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"totalCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"unitCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["kind","domain","address","quantity","unitCostMicros","totalCostMicros","billedMicros","billingCycle","billingSource","renewalCostMicros","renewalBilledMicros"],"type":"object"},"type":"array"},"locked":{"const":false,"type":"boolean"},"observedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"quoteId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"recurring":{"items":{"properties":{"address":{"type":["string","null"]},"billedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"billingCycle":{"enum":["once","monthly","quarterly","yearly"],"type":"string"},"billingSource":{"enum":["provider_wallet","subscription"],"type":"string"},"domain":{"type":"string"},"kind":{"enum":["registration","hosting","warmup","transport"],"type":"string"},"quantity":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"renewalBilledMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"renewalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"totalCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"unitCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["kind","domain","address","quantity","unitCostMicros","totalCostMicros","billedMicros","billingCycle","billingSource","renewalCostMicros","renewalBilledMicros"],"type":"object"},"type":"array"},"upfrontBilledMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"upfrontCostMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["quoteId","observedAt","expiresAt","currency","locked","available","domains","items","recurring","upfrontCostMicros","upfrontBilledMicros"],"type":"object"},"ManagedMailboxQuoteInput":{"additionalProperties":false,"properties":{"domains":{"items":{"additionalProperties":false,"properties":{"mailboxes":{"items":{"additionalProperties":false,"properties":{"firstName":{"maxLength":100,"minLength":1,"type":"string"},"lastName":{"maxLength":100,"minLength":1,"type":"string"},"username":{"maxLength":64,"minLength":1,"pattern":"^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$","type":"string"}},"required":["username","firstName","lastName"],"type":"object"},"maxItems":5,"type":"array"},"name":{"maxLength":253,"pattern":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)+[a-z]{2,63}$","type":"string"}},"required":["name","mailboxes"],"type":"object"},"maxItems":10,"minItems":1,"type":"array"},"warmup":{"default":false,"type":"boolean"}},"required":["domains"],"type":"object"},"ManagedMailboxResourceActionInput":{"additionalProperties":false,"properties":{"idempotencyKey":{"maxLength":128,"minLength":1,"type":"string"}},"required":["idempotencyKey"],"type":"object"},"ManagedMailboxResourceList":{"properties":{"items":{"items":{"properties":{"address":{"type":["string","null"]},"authorizationStatus":{"type":"string"},"cancellationRequested":{"type":"boolean"},"connectionStatus":{"type":"string"},"domain":{"type":"string"},"hostingStatus":{"type":"string"},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"issueCode":{"type":["string","null"]},"kind":{"enum":["domain","mailbox"],"type":"string"},"mailboxId":{"type":["string","null"]},"orderId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"renewalCycle":{"type":["string","null"]},"renewalDate":{"type":["string","null"]},"sendEligible":{"type":"boolean"},"warmupStatus":{"type":"string"}},"required":["id","orderId","kind","domain","address","hostingStatus","authorizationStatus","connectionStatus","warmupStatus","sendEligible","renewalDate","renewalCycle","cancellationRequested","mailboxId","issueCode"],"type":"object"},"type":"array"},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"type":"object"},"McpConnect":{"properties":{"authorizationUrl":{"type":["string","null"]},"server":{"properties":{"args":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"authentication":{"enum":["headers","oauth"],"type":"string"},"command":{"type":["string","null"]},"connection":{"properties":{"checkedAt":{"type":["string","null"]},"errorCode":{"anyOf":[{"enum":["public_https_required","connection_failed","authorization_required","oauth_client_required","unsupported_contract","catalog_too_large"],"type":"string"},{"type":"null"}]},"status":{"enum":["machine_only","not_checked","ready","authorization_required","disconnected","error","disabled"],"type":"string"},"toolCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["status","toolCount","checkedAt","errorCode"],"type":"object"},"createdAt":{"type":"string"},"description":{"type":["string","null"]},"enabled":{"type":"boolean"},"env":{"anyOf":[{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]},"hasOauthClientSecret":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"oauthClientId":{"type":["string","null"]},"organizationId":{"type":"string"},"projectId":{"type":["string","null"]},"transport":{"enum":["stdio","http","sse"],"type":"string"},"updatedAt":{"type":"string"},"url":{"type":["string","null"]}},"required":["id","organizationId","projectId","name","description","transport","command","args","url","env","enabled","authentication","oauthClientId","hasOauthClientSecret","connection","createdAt","updatedAt"],"type":"object"}},"required":["authorizationUrl","server"],"type":"object"},"McpServer":{"properties":{"args":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"authentication":{"enum":["headers","oauth"],"type":"string"},"command":{"type":["string","null"]},"connection":{"properties":{"checkedAt":{"type":["string","null"]},"errorCode":{"anyOf":[{"enum":["public_https_required","connection_failed","authorization_required","oauth_client_required","unsupported_contract","catalog_too_large"],"type":"string"},{"type":"null"}]},"status":{"enum":["machine_only","not_checked","ready","authorization_required","disconnected","error","disabled"],"type":"string"},"toolCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["status","toolCount","checkedAt","errorCode"],"type":"object"},"createdAt":{"type":"string"},"description":{"type":["string","null"]},"enabled":{"type":"boolean"},"env":{"anyOf":[{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]},"hasOauthClientSecret":{"type":"boolean"},"id":{"type":"string"},"name":{"type":"string"},"oauthClientId":{"type":["string","null"]},"organizationId":{"type":"string"},"projectId":{"type":["string","null"]},"transport":{"enum":["stdio","http","sse"],"type":"string"},"updatedAt":{"type":"string"},"url":{"type":["string","null"]}},"required":["id","organizationId","projectId","name","description","transport","command","args","url","env","enabled","authentication","oauthClientId","hasOauthClientSecret","connection","createdAt","updatedAt"],"type":"object"},"Memory":{"properties":{"category":{"enum":["convention","decision","lesson","preference","failure","heuristic"],"type":"string"},"confidence":{"type":"number"},"createdAt":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"organizationId":{"type":"string"},"scope":{"enum":["org","project","cycle","task","agent"],"type":"string"},"scopeId":{"type":"string"},"score":{"type":"number"},"source":{"enum":["auto","user","interview","review"],"type":"string"},"status":{"enum":["tentative","approved","archived"],"type":"string"},"updatedAt":{"type":"string"},"value":{"type":"string"}},"required":["id","organizationId","scope","scopeId","category","key","value","source","confidence","status","createdAt","updatedAt"],"type":"object"},"MentionInbox":{"properties":{"items":{"items":{"properties":{"agentId":{"type":["string","null"]},"author":{"properties":{"image":{"type":["string","null"]},"name":{"type":["string","null"]},"userId":{"type":"string"}},"required":["userId","name","image"],"type":"object"},"chatId":{"type":"string"},"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"id":{"type":"string"},"messageId":{"type":"string"},"projectId":{"type":["string","null"]},"projectName":{"type":["string","null"]},"snippet":{"type":"string"},"taskId":{"type":["string","null"]}},"required":["id","projectId","projectName","cycleId","taskId","agentId","chatId","messageId","author","snippet","createdAt"],"type":"object"},"type":"array"},"total":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"truncated":{"type":"boolean"}},"required":["items","total","truncated"],"type":"object"},"MentionRead":{"properties":{"ids":{"items":{"minLength":1,"type":"string"},"maxItems":200,"minItems":1,"type":"array"}},"required":["ids"],"type":"object"},"MentionReadAck":{"properties":{"read":{"items":{"type":"string"},"type":"array"}},"required":["read"],"type":"object"},"MentionRoster":{"properties":{"agents":{"items":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"type":"array"},"users":{"items":{"properties":{"email":{"type":"string"},"id":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"},"role":{"type":"string"}},"required":["id","name","image","role"],"type":"object"},"type":"array"}},"required":["users","agents"],"type":"object"},"MergeEditBranch":{"properties":{"ref":{"minLength":1,"type":"string"},"repo":{"type":"string"}},"required":["ref"],"type":"object"},"MergeEditBranchResult":{"properties":{"baseRef":{"type":"string"},"sha":{"type":"string"}},"required":["sha","baseRef"],"type":"object"},"MergeProjectReview":{"additionalProperties":false,"properties":{"headSha":{"pattern":"^[a-f0-9]{40}$","type":"string"},"repoId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["repoId","headSha"],"type":"object"},"MessageAck":{"properties":{"message":{"type":"string"}},"required":["message"],"type":"object"},"MobileAgentSession":{"properties":{"adbWebSocketUrl":{"type":"string"},"apiUrl":{"type":"string"},"id":{"type":"string"},"state":{"enum":["creating","ready","stopping","stopped","failed"],"type":"string"},"token":{"type":"string"}},"required":["id","state"],"type":"object"},"MobileAgentSessionStart":{"properties":{"buildId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"requestId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["buildId","requestId"],"type":"object"},"MobileBuild":{"properties":{"commitSha":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":["string","null"]},"failureCode":{"type":["string","null"]},"id":{"type":"string"},"platform":{"enum":["ios","android"],"type":"string"},"state":{"enum":["queued","building","ready","failed"],"type":"string"},"targetId":{"type":"string"}},"required":["id","targetId","commitSha","platform","state","createdAt","expiresAt","failureCode"],"type":"object"},"MobileBuildStart":{"properties":{"expectedCommitSha":{"description":"Require this exact published revision. An unpublished revision returns 409 source_not_published without creating a build.","pattern":"^[a-f0-9]{40}$","type":"string"},"targetId":{"pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"}},"required":["targetId"],"type":"object"},"MobileBuildsView":{"properties":{"builds":{"items":{"properties":{"commitSha":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":["string","null"]},"failureCode":{"type":["string","null"]},"id":{"type":"string"},"platform":{"enum":["ios","android"],"type":"string"},"state":{"enum":["queued","building","ready","failed"],"type":"string"},"targetId":{"type":"string"}},"required":["id","targetId","commitSha","platform","state","createdAt","expiresAt","failureCode"],"type":"object"},"type":"array"}},"required":["builds"],"type":"object"},"MobileProviderState":{"properties":{"credentialSource":{"enum":["organization","hlix"],"type":"string"},"enabled":{"type":"boolean"},"hasApiKey":{"type":"boolean"},"platformAvailable":{"type":"boolean"},"provider":{"const":"limrun","type":"string"}},"required":["provider","hasApiKey","enabled","credentialSource","platformAvailable"],"type":"object"},"MobileProviderTest":{"properties":{"ok":{"const":true,"type":"boolean"}},"required":["ok"],"type":"object"},"MobileSession":{"properties":{"buildId":{"type":"string"},"endpointWebSocketUrl":{"type":"string"},"expiresAt":{"type":"string"},"id":{"type":"string"},"state":{"enum":["creating","ready","stopping","stopped","failed"],"type":"string"},"streamToken":{"type":"string"}},"required":["id","buildId","state","expiresAt"],"type":"object"},"MobileSessionStart":{"properties":{"buildId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"tabId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["buildId","tabId"],"type":"object"},"MobileStopped":{"properties":{"stopped":{"const":true,"type":"boolean"}},"required":["stopped"],"type":"object"},"MobileTargetsInput":{"properties":{"targets":{"items":{"properties":{"buildCommand":{"maxLength":4000,"minLength":1,"type":"string"},"bundleId":{"maxLength":200,"pattern":"^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)+$","type":"string"},"e2eTarget":{"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$","type":"string"},"framework":{"enum":["native","kmp","flutter","react-native","expo"],"type":"string"},"id":{"pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"},"name":{"maxLength":100,"minLength":1,"type":"string"},"outputPath":{"maxLength":500,"type":"string"},"path":{"maxLength":500,"type":"string"},"platform":{"enum":["ios","android"],"type":"string"},"repoId":{"maxLength":100,"minLength":1,"type":"string"},"scheme":{"maxLength":200,"minLength":1,"type":"string"}},"required":["id","name","repoId","path","platform","framework","buildCommand","outputPath","bundleId"],"type":"object"},"maxItems":20,"type":"array"}},"required":["targets"],"type":"object"},"MobileTargetsSaved":{"properties":{"targets":{"items":{"properties":{"buildCommand":{"maxLength":4000,"minLength":1,"type":"string"},"bundleId":{"maxLength":200,"pattern":"^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)+$","type":"string"},"e2eTarget":{"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$","type":"string"},"framework":{"enum":["native","kmp","flutter","react-native","expo"],"type":"string"},"id":{"pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"},"name":{"maxLength":100,"minLength":1,"type":"string"},"outputPath":{"maxLength":500,"type":"string"},"path":{"maxLength":500,"type":"string"},"platform":{"enum":["ios","android"],"type":"string"},"repoId":{"maxLength":100,"minLength":1,"type":"string"},"scheme":{"maxLength":200,"minLength":1,"type":"string"}},"required":["id","name","repoId","path","platform","framework","buildCommand","outputPath","bundleId"],"type":"object"},"type":"array"}},"required":["targets"],"type":"object"},"MobileTargetsView":{"properties":{"configured":{"type":"boolean"},"targets":{"items":{"properties":{"buildCommand":{"maxLength":4000,"minLength":1,"type":"string"},"bundleId":{"maxLength":200,"pattern":"^[A-Za-z0-9_-]+(?:\\.[A-Za-z0-9_-]+)+$","type":"string"},"e2eTarget":{"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$","type":"string"},"framework":{"enum":["native","kmp","flutter","react-native","expo"],"type":"string"},"id":{"pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"},"name":{"maxLength":100,"minLength":1,"type":"string"},"outputPath":{"maxLength":500,"type":"string"},"path":{"maxLength":500,"type":"string"},"platform":{"enum":["ios","android"],"type":"string"},"repoId":{"maxLength":100,"minLength":1,"type":"string"},"scheme":{"maxLength":200,"minLength":1,"type":"string"}},"required":["id","name","repoId","path","platform","framework","buildCommand","outputPath","bundleId"],"type":"object"},"type":"array"}},"required":["targets","configured"],"type":"object"},"ModelCatalog":{"properties":{"models":{"items":{"properties":{"contextWindow":{"type":"number"},"created":{"type":"number"},"identifier":{"type":"string"},"name":{"type":"string"}},"required":["identifier","name","contextWindow","created"],"type":"object"},"type":"array"},"stale":{"type":"boolean"},"updatedAt":{"type":["string","null"]}},"required":["models","updatedAt","stale"],"type":"object"},"ModelProviderConfig":{"properties":{"baseUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"enabled":{"type":"boolean"},"hasApiKey":{"type":"boolean"},"id":{"type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]},"provider":{"enum":["openai","anthropic","openrouter","moonshot","deepseek","zai","google","xai","mistral","groq"],"type":"string"},"updatedAt":{"type":"string"}},"required":["id","provider","baseUrl","metadata","enabled","hasApiKey","createdAt","updatedAt"],"type":"object"},"ModelProviderProbe":{"properties":{"detail":{"type":"string"},"ok":{"type":"boolean"},"status":{"type":"number"}},"required":["ok"],"type":"object"},"ModelProviderRemoved":{"properties":{"ok":{"const":true,"type":"boolean"}},"required":["ok"],"type":"object"},"MonthlySpendLimits":{"properties":{"delivery":{"properties":{"capMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"reservedMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"usedMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]}},"required":["capMicros","usedMicros","reservedMicros"],"type":"object"},"growth":{"properties":{"capMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"reservedMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"usedMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]}},"required":["capMicros","usedMicros","reservedMicros"],"type":"object"},"monthStart":{"type":"string"},"resetsAt":{"type":"string"}},"required":["monthStart","resetsAt","growth","delivery"],"type":"object"},"OpenAiError":{"additionalProperties":{},"properties":{"error":{"properties":{"code":{"type":["string","null"]},"message":{"type":"string"},"type":{"type":"string"}},"required":["message","type","code"],"type":"object"}},"required":["error"],"type":"object"},"OpenBranchCycle":{"properties":{"branch":{"maxLength":200,"minLength":1,"type":"string"},"commit":{"pattern":"^[0-9a-f]{40}$","type":"string"},"projectId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["projectId","branch","commit"],"type":"object"},"OrgBillingState":{"properties":{"activeMeters":{"items":{"properties":{"balance":{"type":"number"},"consumedUnits":{"type":"number"},"creditedUnits":{"type":"number"},"id":{"type":"string"},"name":{"type":["string","null"]}},"required":["id","name","consumedUnits","creditedUnits","balance"],"type":"object"},"type":"array"},"activeSubscriptions":{"items":{"properties":{"amount":{"type":["number","null"]},"cancelAtPeriodEnd":{"type":"boolean"},"currency":{"type":"string"},"currentPeriodEnd":{"type":["string","null"]},"id":{"type":"string"},"planSlug":{"anyOf":[{"enum":["free","pro","business","scale"],"type":"string"},{"type":"null"}]},"product":{"properties":{"name":{"type":["string","null"]}},"required":["name"],"type":"object"},"recurringInterval":{"type":["string","null"]},"status":{"type":"string"}},"required":["id","status","product","planSlug","amount","currency","recurringInterval","currentPeriodEnd","cancelAtPeriodEnd"],"type":"object"},"type":"array"},"billingMode":{"enum":["metered","tasks"],"type":"string"},"configured":{"type":"boolean"},"credits":{"anyOf":[{"properties":{"available":{"type":["number","null"]},"balance":{"type":["number","null"]},"freeTasks":{"anyOf":[{"properties":{"cap":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"used":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["used","cap"],"type":"object"},{"type":"null"}]},"held":{"type":"number"},"unsent":{"type":"number"}},"required":["balance","held","unsent","available","freeTasks"],"type":"object"},{"type":"null"}]},"entitlement":{"anyOf":[{"properties":{"kind":{"const":"override","type":"string"}},"required":["kind"],"type":"object"},{"properties":{"kind":{"const":"subscription","type":"string"},"subscription":{"properties":{"creditedMillicents":{"type":["number","null"]},"currentPeriodEnd":{"type":["string","null"]},"includedCreditMillicents":{"type":["number","null"]},"meteredMillicents":{"type":["number","null"]},"orgCapMillicents":{"type":["number","null"]},"planName":{"type":["string","null"]},"planSlug":{"anyOf":[{"enum":["free","pro","business","scale"],"type":"string"},{"type":"null"}]},"rolledOverMillicents":{"type":["number","null"]},"status":{"type":["string","null"]}},"required":["planName","planSlug","status","currentPeriodEnd","includedCreditMillicents","orgCapMillicents","meteredMillicents","rolledOverMillicents","creditedMillicents"],"type":"object"}},"required":["kind","subscription"],"type":"object"},{"properties":{"credit":{"properties":{"creditCapMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"creditUsedMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectLimit":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"resetsAt":{"type":"string"}},"required":["creditUsedMicros","creditCapMicros","resetsAt","projectLimit"],"type":"object"},"kind":{"const":"free","type":"string"},"orgCapOnlyMillicents":{"type":["number","null"]}},"required":["kind","credit","orgCapOnlyMillicents"],"type":"object"},{"properties":{"kind":{"const":"none","type":"string"},"orgCapOnlyMillicents":{"type":["number","null"]},"reason":{"const":"not_configured","type":"string"}},"required":["kind","reason","orgCapOnlyMillicents"],"type":"object"},{"properties":{"kind":{"const":"unknown","type":"string"},"reason":{"enum":["provider_outage","usage_read_failed"],"type":"string"}},"required":["kind","reason"],"type":"object"}]},"orders":{"items":{"properties":{"amount":{"type":["number","null"]},"createdAt":{"type":"string"},"currency":{"type":"string"},"id":{"type":"string"},"product":{"properties":{"name":{"type":["string","null"]}},"required":["name"],"type":"object"},"status":{"type":"string"}},"required":["id","status","amount","currency","createdAt","product"],"type":"object"},"type":"array"}},"required":["configured","activeSubscriptions","activeMeters","orders","entitlement","billingMode","credits"],"type":"object"},"ParseDocument":{"properties":{"critical":{"type":"boolean"},"engine":{"description":"PDF reading mode: `text` (default) extracts existing text, `ocr` reads scanned pages, and `native` interprets page layout and figures.","enum":["text","ocr","native"],"type":"string"},"projectId":{"minLength":1,"type":"string"},"scanned":{"type":"boolean"},"source":{"anyOf":[{"properties":{"kind":{"const":"url","type":"string"},"url":{"format":"uri","type":"string"}},"required":["kind","url"],"type":"object"},{"properties":{"key":{"maxLength":512,"minLength":1,"type":"string"},"kind":{"const":"artifact","type":"string"}},"required":["kind","key"],"type":"object"}]},"visual":{"type":"boolean"}},"required":["source"],"type":"object"},"PatchCoderAccount":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"label":{"maxLength":80,"minLength":1,"type":"string"},"shared":{"type":"boolean"}},"type":"object"},"PatchProvider":{"properties":{"apiKey":{"type":["string","null"]},"baseUrl":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"metadata":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]}},"type":"object"},"PayInvoice":{"additionalProperties":false,"properties":{},"type":"object"},"PaymentLink":{"additionalProperties":false,"properties":{"successUrl":{"format":"uri","maxLength":2000,"type":"string"}},"type":"object"},"PersonalWorkspace":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"type":"object"},"PluginArchivePreviewResponse":{"properties":{"format":{"enum":["claude-plugin","agent-skills"],"type":"string"},"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"},"warnings":{"items":{"type":"string"},"type":"array"}},"required":["manifest","format","warnings"],"type":"object"},"PluginCatalogDetailResponse":{"properties":{"readme":{"anyOf":[{"properties":{"baseUrl":{"type":"string"},"content":{"type":"string"},"imageBaseUrl":{"type":"string"},"status":{"const":"available","type":"string"},"url":{"type":"string"}},"required":["status","content","url","baseUrl","imageBaseUrl"],"type":"object"},{"properties":{"status":{"enum":["missing","unavailable","unsupported"],"type":"string"}},"required":["status"],"type":"object"}]},"server":{"properties":{"description":{"type":"string"},"iconUrl":{"type":"string"},"name":{"type":"string"},"recipes":{"items":{"properties":{"id":{"type":"string"},"label":{"type":"string"},"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"}},"required":["id","label","manifest"],"type":"object"},"type":"array"},"repositoryUrl":{"type":"string"},"title":{"type":"string"},"unsupportedReason":{"type":"string"},"version":{"type":"string"},"websiteUrl":{"type":"string"}},"required":["name","title","description","version","recipes"],"type":"object"}},"required":["server","readme"],"type":"object"},"PluginCatalogResponse":{"properties":{"nextCursor":{"type":"string"},"servers":{"items":{"properties":{"description":{"type":"string"},"iconUrl":{"type":"string"},"name":{"type":"string"},"recipes":{"items":{"properties":{"id":{"type":"string"},"label":{"type":"string"},"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"}},"required":["id","label","manifest"],"type":"object"},"type":"array"},"repositoryUrl":{"type":"string"},"title":{"type":"string"},"unsupportedReason":{"type":"string"},"version":{"type":"string"},"websiteUrl":{"type":"string"}},"required":["name","title","description","version","recipes"],"type":"object"},"type":"array"},"warnings":{"items":{"type":"string"},"type":"array"}},"required":["servers"],"type":"object"},"PluginListResponse":{"properties":{"plugins":{"items":{"properties":{"configuredInputs":{"items":{"type":"string"},"type":"array"},"createdAt":{"type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"inputs":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"},"projectIds":{"anyOf":[{"items":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"maxItems":1000,"type":"array"},{"type":"null"}]},"updatedAt":{"type":"string"}},"required":["id","manifest","enabled","projectIds","inputs","configuredInputs","createdAt","updatedAt"],"type":"object"},"type":"array"}},"required":["plugins"],"type":"object"},"PluginPreviewResponse":{"properties":{"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"}},"required":["manifest"],"type":"object"},"PluginRemoveResponse":{"properties":{"ok":{"const":true,"type":"boolean"}},"required":["ok"],"type":"object"},"PluginResponse":{"properties":{"plugin":{"properties":{"configuredInputs":{"items":{"type":"string"},"type":"array"},"createdAt":{"type":"string"},"enabled":{"type":"boolean"},"id":{"type":"string"},"inputs":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"},"projectIds":{"anyOf":[{"items":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"maxItems":1000,"type":"array"},{"type":"null"}]},"updatedAt":{"type":"string"}},"required":["id","manifest","enabled","projectIds","inputs","configuredInputs","createdAt","updatedAt"],"type":"object"}},"required":["plugin"],"type":"object"},"PortalAccepted":{"properties":{"accepted":{"const":true,"type":"boolean"},"clientAccountId":{"type":"string"},"organizationId":{"type":"string"}},"required":["accepted","clientAccountId","organizationId"],"type":"object"},"PortalIdentity":{"properties":{"brand":{"properties":{"colors":{"properties":{"accent":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"background":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"primary":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]}},"required":["primary","accent","background","text"],"type":"object"},"headerMode":{"enum":["logo-and-name","logo-only"],"type":"string"},"iconTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"logoTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"tagline":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"typography":{"properties":{"body":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]},"heading":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]}},"required":["heading","body"],"type":"object"}},"required":["name","tagline","logoUrl","colors","typography"],"type":"object"},"href":{"type":"string"},"logo":{"type":["string","null"]},"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug","logo","href","brand"],"type":"object"},"PortalProjectGrant":{"properties":{"canAccessCanvas":{"type":"boolean"},"canMessage":{"type":"boolean"},"projectId":{"type":"string"},"showProjectInsights":{"type":"boolean"}},"required":["projectId","canMessage","canAccessCanvas","showProjectInsights"],"type":"object"},"PortalProjectPermissions":{"additionalProperties":false,"properties":{"canAccessCanvas":{"type":"boolean"},"canMessage":{"type":"boolean"},"showProjectInsights":{"default":false,"type":"boolean"}},"required":["canMessage"],"type":"object"},"PreparationRecordingUrl":{"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"PreviewPlugin":{"additionalProperties":false,"properties":{"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"}},"required":["manifest"],"type":"object"},"PreviewSharing":{"properties":{"projectId":{"minLength":1,"type":"string"},"public":{"type":"boolean"}},"required":["projectId","public"],"type":"object"},"PreviewSharingSaved":{"properties":{"public":{"type":"boolean"}},"required":["public"],"type":"object"},"PrivateChatModelResponse":{"properties":{"model":{"type":["string","null"]}},"required":["model"],"type":"object"},"Project":{"properties":{"archivedAt":{"type":["string","null"]},"assignedUserId":{"type":["string","null"]},"branchNames":{"enum":["legacy","retiring","readable"],"type":"string"},"branchPrefix":{"type":["string","null"]},"branchPrefixLockedAt":{"type":["string","null"]},"brief":{"type":["string","null"]},"claudeMd":{"type":["string","null"]},"clientAccountId":{"type":["string","null"]},"completedAtLastRevision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"customDomain":{"type":["string","null"]},"cycleCap":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"environmentSnapshot":{"anyOf":[{"properties":{"createdAt":{"type":"string"},"environmentId":{"type":"string"},"imageVersion":{"type":"string"},"manifestHash":{"type":"string"},"runtimeHash":{"type":"string"}},"required":["environmentId","imageVersion","manifestHash","runtimeHash","createdAt"],"type":"object"},{"type":"null"}]},"extraUsage":{"anyOf":[{"enum":["allow","block"],"type":"string"},{"type":"null"}]},"growthAutopilot":{"type":"boolean"},"growthDailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"growthSendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"id":{"type":"string"},"initialProposalRequired":{"type":"boolean"},"iteration":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"kind":{"enum":["delivery","growth"],"type":"string"},"machineSize":{"anyOf":[{"enum":["small","standard","large"],"type":"string"},{"type":"null"}]},"maxRevisions":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"mobileTargetsInitialized":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"pausedAt":{"type":["string","null"]},"pausedByUserId":{"type":["string","null"]},"prUrl":{"type":["string","null"]},"previewCommand":{"type":["string","null"]},"previewMergedAt":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"repos":{"items":{"properties":{"cloneUrl":{"type":"string"},"connectionStatus":{"enum":["connecting","failed"],"type":"string"},"createdAt":{"type":"string"},"defaultBranch":{"type":"string"},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"githubInstallationId":{"type":["string","null"]},"githubRepoId":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"isPrimary":{"type":"boolean"},"label":{"type":["string","null"]},"name":{"type":"string"},"organizationId":{"type":"string"},"owner":{"type":"string"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"projectId":{"type":"string"},"provider":{"type":"string"},"setupCommand":{"type":["string","null"]},"verifyCommand":{"type":["string","null"]}},"required":["id","organizationId","projectId","provider","owner","name","cloneUrl","defaultBranch","githubInstallationId","githubRepoId","label","isPrimary","setupCommand","verifyCommand","previewCommand","previewPort","detectedCommands","createdAt"],"type":"object"},"type":"array"},"round":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"runtime":{"properties":{"agents":{"items":{"enum":["claude-code","codex","opencode","goose","qwen-code","pi"],"type":"string"},"type":"array"},"aptPackages":{"items":{"type":"string"},"type":"array"},"deployment":{"oneOf":[{"properties":{"buildCommand":{"maxLength":10000,"minLength":1,"type":"string"},"kind":{"const":"static","type":"string"},"outDir":{"maxLength":2000,"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["repoId","kind","buildCommand","outDir"],"type":"object"},{"properties":{"kind":{"const":"server","type":"string"},"repoId":{"minLength":1,"type":"string"},"startCommand":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["repoId","kind","startCommand"],"type":"object"}]},"envOverrides":{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"type":"object"},"hash":{"type":"string"},"imageTag":{"type":["string","null"]},"linearProjectId":{"type":"string"},"linearTeamId":{"type":"string"},"notes":{"items":{"maxLength":2000,"type":"string"},"maxItems":100,"type":"array"},"preview":{"properties":{"command":{"maxLength":10000,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":1024,"type":"integer"}},"required":["command","port"],"type":"object"},"services":{"items":{"properties":{"name":{"enum":["mysql","postgres","redis"],"type":"string"},"ready":{"maxLength":10000,"type":"string"},"start":{"maxLength":10000,"type":"string"},"stop":{"maxLength":10000,"type":"string"}},"required":["name"],"type":"object"},"maxItems":3,"type":"array"},"setup":{"type":"string"},"source":{"additionalProperties":{"enum":["auto","person"],"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"toolchain":{"additionalProperties":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"number"},{"type":"boolean"}]},"properties":{"bun":{"type":["string","number"]},"node":{"type":["string","number"]},"playwright":{"type":"boolean"},"python":{"type":["string","number"]}},"type":"object"},"verifyCommand":{"maxLength":10000,"type":"string"}},"type":"object"},"setupReport":{"anyOf":[{"properties":{"finishedAt":{"type":"string"},"startedAt":{"type":"string"},"status":{"enum":["ok","partial"],"type":"string"},"steps":{"items":{"properties":{"name":{"type":"string"},"reason":{"type":"string"},"status":{"enum":["ok","fixed-by-override","failed"],"type":"string"}},"required":["name","status"],"type":"object"},"type":"array"}},"required":["startedAt","status","steps"],"type":"object"},{"type":"null"}]},"slug":{"type":"string"},"sources":{"properties":{"github":{"type":"boolean"},"linear":{"type":"boolean"}},"type":"object"},"stack":{"type":"string"},"stalledRevisions":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tier":{"anyOf":[{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"},{"type":"null"}]},"useWorkspaceBrand":{"type":"boolean"},"verifyCommand":{"type":["string","null"]}},"required":["id","organizationId","name","brief","slug","kind","growthSendingSchedule","growthDailyBudgetMicros","growthAutopilot","stack","claudeMd","runtime","mobileTargetsInitialized","setupReport","verifyCommand","previewCommand","previewPort","customDomain","detectedCommands","useWorkspaceBrand","initialProposalRequired","sources","extraUsage","tier","costCapMicros","maxRevisions","cycleCap","iteration","stalledRevisions","completedAtLastRevision","round","prUrl","machineSize","branchPrefix","branchPrefixLockedAt","branchNames","clientAccountId","createdAt","archivedAt","pausedAt","pausedByUserId","previewMergedAt","environmentSnapshot","assignedUserId","repos"],"type":"object"},"ProjectBoard":{"properties":{"activity":{"items":{"properties":{"cycleId":{"type":"string"},"detail":{"additionalProperties":{},"properties":{"kind":{"type":"string"}},"required":["kind"],"type":"object"},"groupKey":{"type":"string"},"id":{"type":"string"},"repeats":{"type":"number"},"status":{"enum":["running","success","failed","neutral"],"type":"string"},"stepId":{"type":"string"},"timestamp":{"type":"number"}},"required":["id","groupKey","stepId","status","timestamp"],"type":"object"},"type":"array"},"agents":{"items":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"type":"string"},"state":{"enum":["working","idle"],"type":"string"}},"required":["id","name","role","state"],"type":"object"},"type":"array"},"cycles":{"items":{"properties":{"activeRun":{"anyOf":[{"properties":{"coder":{"type":["string","null"]},"id":{"type":"string"},"iteration":{"type":"number"},"role":{"type":["string","null"]},"startedAt":{"type":"string"}},"required":["iteration","startedAt","role"],"type":"object"},{"type":"null"}]},"dependsOn":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"kind":{"enum":["work","setup"],"type":"string"},"role":{"type":["string","null"]},"stage":{"enum":["triage","planned","running","review","done","failed","canceled"],"type":"string"},"status":{"enum":["draft","interviewing","planning","building","review","done","pr_created","failed","triage","canceled"],"type":"string"},"title":{"type":"string"}},"required":["id","title","status","stage","dependsOn","activeRun","role"],"type":"object"},"type":"array"},"liveGrowthRunIds":{"items":{"type":"string"},"type":"array"},"preview":{"properties":{"state":{"type":"string"},"url":{"type":["string","null"]}},"required":["url","state"],"type":"object"},"project":{"properties":{"attention":{"items":{"properties":{"cycleId":{"type":["string","null"]},"id":{"type":["string","null"]},"kind":{"enum":["approval","plan","budget","resume","setup","vault","public_link_requested","merge"],"type":"string"},"name":{"type":["string","null"]},"reason":{"anyOf":[{"enum":["credit","limit","cap"],"type":"string"},{"type":"null"}]}},"required":["kind","id","cycleId","reason","name"],"type":"object"},"type":"array"},"id":{"type":"string"},"name":{"type":"string"},"pauseReason":{"anyOf":[{"enum":["credit","limit","usage","cap","agency"],"type":"string"},{"type":"null"}]},"status":{"enum":["idle","planning","building","checking","ready","paused_budget","stopped","archived"],"type":"string"},"stopState":{"enum":["idle","never_started","stopped","running","stopping"],"type":"string"}},"required":["id","name","status","pauseReason","attention","stopState"],"type":"object"},"tasks":{"items":{"properties":{"agentId":{"type":["string","null"]},"cycleId":{"type":["string","null"]},"id":{"type":"string"},"note":{"type":["string","null"]},"status":{"enum":["queued","blocked","building","testing","reviewing","approved","merging","resolving","merged","pr_created","ci_passing","done","failed"],"type":"string"},"title":{"type":"string"}},"required":["id","title","status","cycleId","agentId","note"],"type":"object"},"type":"array"}},"required":["project","cycles","tasks","agents","preview","activity","liveGrowthRunIds"],"type":"object"},"ProjectBranches":{"properties":{"branches":{"items":{"properties":{"baseRef":{"type":["string","null"]},"cycleId":{"type":["string","null"]},"kind":{"enum":["default","preview","cycle","edit"],"type":"string"},"ref":{"type":"string"},"title":{"type":["string","null"]}},"required":["ref","kind","title","cycleId"],"type":"object"},"type":"array"},"defaultBranch":{"type":"string"},"previewBranch":{"type":"string"},"repoKey":{"type":"string"}},"required":["repoKey","defaultBranch","previewBranch","branches"],"type":"object"},"ProjectBudget":{"properties":{"defaults":{"properties":{"costCapMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cycleCap":{"type":"number"},"maxRevisions":{"type":"number"}},"required":["costCapMicros","maxRevisions","cycleCap"],"type":"object"},"effective":{"properties":{"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycleCap":{"type":"number"},"maxRevisions":{"type":"number"}},"required":["costCapMicros","maxRevisions","cycleCap"],"type":"object"},"estimatedCostRuns":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"overrides":{"properties":{"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycleCap":{"type":["number","null"]},"maxRevisions":{"type":["number","null"]}},"required":["costCapMicros","maxRevisions","cycleCap"],"type":"object"},"spendIsEnforced":{"type":"boolean"},"spendToDateMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"totalAgentSpendMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"unknownCostRuns":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["overrides","effective","defaults","spendToDateMicros","spendIsEnforced","totalAgentSpendMicros","unknownCostRuns","estimatedCostRuns"],"type":"object"},"ProjectCallJoin":{"properties":{"authToken":{"type":"string"},"participantId":{"type":"string"}},"required":["participantId","authToken"],"type":"object"},"ProjectCallState":{"properties":{"inCall":{"type":"boolean"}},"required":["inCall"],"type":"object"},"ProjectCanvas":{"properties":{"activity":{"items":{"properties":{"at":{"type":"string"},"frame":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"id":{"type":"string"}},"required":["id","at","frame"],"type":"object"},"type":"array"},"preview":{"anyOf":[{"properties":{"journeys":{"items":{"properties":{"outcome":{"enum":["passed","failed","unverified"],"type":"string"},"title":{"type":"string"}},"required":["title","outcome"],"type":"object"},"type":"array"},"status":{"type":"string"},"thumbnail":{"anyOf":[{"properties":{"cycleId":{"type":"string"},"key":{"type":"string"}},"required":["cycleId","key"],"type":"object"},{"type":"null"}]},"url":{"type":["string","null"]}},"required":["url","status","journeys","thumbnail"],"type":"object"},{"type":"null"}]},"repositories":{"items":{"properties":{"aheadBy":{"type":["number","null"]},"branch":{"type":"string"},"defaultBranch":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"prOpen":{"type":["boolean","null"]},"prUrl":{"type":["string","null"]}},"required":["id","name","branch","defaultBranch","aheadBy","prUrl","prOpen"],"type":"object"},"type":"array"},"sources":{"properties":{"newRequests":{"type":"number"},"sources":{"items":{"type":"string"},"type":"array"}},"required":["sources","newRequests"],"type":"object"},"workspace":{"anyOf":[{"properties":{"services":{"items":{"properties":{"name":{"type":"string"},"port":{"type":["number","null"]}},"required":["name","port"],"type":"object"},"type":"array"},"state":{"enum":["none","building","ready","local"],"type":"string"}},"required":["state","services"],"type":"object"},{"type":"null"}]}},"required":["repositories","sources","workspace","preview","activity"],"type":"object"},"ProjectChanges":{"properties":{"environmentState":{"type":["string","null"]},"inFlight":{"items":{"properties":{"cycleId":{"type":"string"},"files":{"items":{"properties":{"additions":{"type":["number","null"]},"binary":{"type":"boolean"},"deletions":{"type":["number","null"]},"path":{"type":"string"},"previousPath":{"type":["string","null"]},"status":{"enum":["added","removed","modified","renamed","copied","changed","unchanged","unknown"],"type":"string"}},"required":["path","previousPath","status","additions","deletions","binary"],"type":"object"},"type":"array"},"observedAt":{"type":"string"},"repoKey":{"type":"string"},"title":{"type":"string"}},"required":["cycleId","title","repoKey","files","observedAt"],"type":"object"},"type":"array"},"observedAt":{"type":"string"},"projectId":{"type":"string"},"repos":{"items":{"properties":{"additions":{"type":"number"},"base":{"properties":{"ref":{"type":"string"},"sha":{"type":["string","null"]}},"required":["ref","sha"],"type":"object"},"commits":{"items":{"properties":{"at":{"type":"string"},"sha":{"type":"string"},"subject":{"type":"string"}},"required":["sha","subject","at"],"type":"object"},"type":"array"},"deletions":{"type":"number"},"files":{"items":{"properties":{"additions":{"type":["number","null"]},"binary":{"type":"boolean"},"deletions":{"type":["number","null"]},"path":{"type":"string"},"previousPath":{"type":["string","null"]},"status":{"enum":["added","removed","modified","renamed","copied","changed","unchanged","unknown"],"type":"string"}},"required":["path","previousPath","status","additions","deletions","binary"],"type":"object"},"type":"array"},"filesChanged":{"type":"number"},"filesTruncated":{"type":"boolean"},"head":{"properties":{"ref":{"type":"string"},"sha":{"type":["string","null"]}},"required":["ref","sha"],"type":"object"},"label":{"type":"string"},"nextPage":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"repoKey":{"type":"string"},"unavailable":{"anyOf":[{"enum":["repository_unreachable","index_building"],"type":"string"},{"type":"null"}]}},"required":["repoKey","label","base","head","files","filesTruncated","filesChanged","additions","deletions","commits","unavailable"],"type":"object"},"type":"array"},"source":{"enum":["github","hlix-repos"],"type":"string"}},"required":["projectId","source","environmentState","observedAt","repos","inFlight"],"type":"object"},"ProjectChatDirectory":{"properties":{"agents":{"items":{"properties":{"chatId":{"type":"string"},"lastMessageAt":{"type":["string","null"]},"scope":{"oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"project","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId"],"type":"object"},{"additionalProperties":false,"properties":{"cycleId":{"minLength":1,"type":"string"},"kind":{"const":"cycle","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId","cycleId"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"task","type":"string"},"projectId":{"minLength":1,"type":"string"},"taskId":{"minLength":1,"type":"string"}},"required":["kind","projectId","taskId"],"type":"object"},{"additionalProperties":false,"properties":{"agentId":{"minLength":1,"type":"string"},"kind":{"const":"agent","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId","agentId"],"type":"object"}]},"title":{"type":["string","null"]}},"required":["scope","chatId","title","lastMessageAt"],"type":"object"},"type":"array"},"authoritative":{"type":"boolean"},"projectId":{"type":"string"},"projectManager":{"anyOf":[{"properties":{"chatId":{"type":"string"},"lastMessageAt":{"type":["string","null"]},"scope":{"oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"project","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId"],"type":"object"},{"additionalProperties":false,"properties":{"cycleId":{"minLength":1,"type":"string"},"kind":{"const":"cycle","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId","cycleId"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"task","type":"string"},"projectId":{"minLength":1,"type":"string"},"taskId":{"minLength":1,"type":"string"}},"required":["kind","projectId","taskId"],"type":"object"},{"additionalProperties":false,"properties":{"agentId":{"minLength":1,"type":"string"},"kind":{"const":"agent","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId","agentId"],"type":"object"}]},"title":{"type":["string","null"]}},"required":["scope","chatId","title","lastMessageAt"],"type":"object"},{"type":"null"}]},"source":{"enum":["chat-store","unavailable"],"type":"string"},"workGroups":{"items":{"properties":{"chat":{"anyOf":[{"properties":{"chatId":{"type":"string"},"lastMessageAt":{"type":["string","null"]},"scope":{"oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"project","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId"],"type":"object"},{"additionalProperties":false,"properties":{"cycleId":{"minLength":1,"type":"string"},"kind":{"const":"cycle","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId","cycleId"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"task","type":"string"},"projectId":{"minLength":1,"type":"string"},"taskId":{"minLength":1,"type":"string"}},"required":["kind","projectId","taskId"],"type":"object"},{"additionalProperties":false,"properties":{"agentId":{"minLength":1,"type":"string"},"kind":{"const":"agent","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId","agentId"],"type":"object"}]},"title":{"type":["string","null"]}},"required":["scope","chatId","title","lastMessageAt"],"type":"object"},{"type":"null"}]},"cycleId":{"type":["string","null"]},"tasks":{"items":{"properties":{"chatId":{"type":"string"},"lastMessageAt":{"type":["string","null"]},"scope":{"oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"project","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId"],"type":"object"},{"additionalProperties":false,"properties":{"cycleId":{"minLength":1,"type":"string"},"kind":{"const":"cycle","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId","cycleId"],"type":"object"},{"additionalProperties":false,"properties":{"kind":{"const":"task","type":"string"},"projectId":{"minLength":1,"type":"string"},"taskId":{"minLength":1,"type":"string"}},"required":["kind","projectId","taskId"],"type":"object"},{"additionalProperties":false,"properties":{"agentId":{"minLength":1,"type":"string"},"kind":{"const":"agent","type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","projectId","agentId"],"type":"object"}]},"title":{"type":["string","null"]}},"required":["scope","chatId","title","lastMessageAt"],"type":"object"},"type":"array"}},"required":["cycleId","chat","tasks"],"type":"object"},"type":"array"}},"required":["projectId","source","authoritative","projectManager","agents","workGroups"],"type":"object"},"ProjectCommandDetection":{"properties":{"project":{"properties":{"detected":{"anyOf":[{"properties":{"install":{"type":["string","null"]},"mobile":{"const":true,"type":"boolean"},"packageManager":{"anyOf":[{"enum":["bun","pnpm","yarn","npm"],"type":"string"},{"type":"null"}]},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["install","previewCommand","previewPort","verifyCommand","packageManager"],"type":"object"},{"type":"null"}]},"reason":{"enum":["ok","unavailable"],"type":"string"}},"required":["detected","reason"],"type":"object"},"repos":{"items":{"properties":{"detected":{"anyOf":[{"properties":{"install":{"type":["string","null"]},"mobile":{"const":true,"type":"boolean"},"packageManager":{"anyOf":[{"enum":["bun","pnpm","yarn","npm"],"type":"string"},{"type":"null"}]},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["install","previewCommand","previewPort","verifyCommand","packageManager"],"type":"object"},{"type":"null"}]},"reason":{"enum":["ok","unavailable"],"type":"string"},"repoId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"}},"required":["detected","reason","repoId"],"type":"object"},"type":"array"}},"required":["project","repos"],"type":"object"},"ProjectDelivery":{"properties":{"kind":{"const":"pull_request","type":"string"},"repo":{"type":"string"},"url":{"type":["string","null"]}},"required":["kind","repo","url"],"type":"object"},"ProjectDetail":{"properties":{"archivedAt":{"type":["string","null"]},"assignedUserId":{"type":["string","null"]},"attention":{"items":{"properties":{"cycleId":{"type":["string","null"]},"id":{"type":["string","null"]},"kind":{"enum":["approval","plan","budget","resume","setup","vault","public_link_requested","merge"],"type":"string"},"name":{"type":["string","null"]},"reason":{"anyOf":[{"enum":["credit","limit","cap"],"type":"string"},{"type":"null"}]}},"required":["kind","id","cycleId","reason","name"],"type":"object"},"type":"array"},"branchNames":{"enum":["legacy","retiring","readable"],"type":"string"},"branchPrefix":{"type":["string","null"]},"branchPrefixLockedAt":{"type":["string","null"]},"brief":{"type":["string","null"]},"claudeMd":{"type":["string","null"]},"clientAccountId":{"type":["string","null"]},"completedAtLastRevision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"customDomain":{"type":["string","null"]},"cycleCap":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"deploymentPreviewsEnabled":{"type":"boolean"},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"environmentSnapshot":{"anyOf":[{"properties":{"createdAt":{"type":"string"},"environmentId":{"type":"string"},"imageVersion":{"type":"string"},"manifestHash":{"type":"string"},"runtimeHash":{"type":"string"}},"required":["environmentId","imageVersion","manifestHash","runtimeHash","createdAt"],"type":"object"},{"type":"null"}]},"extraUsage":{"anyOf":[{"enum":["allow","block"],"type":"string"},{"type":"null"}]},"growthAutopilot":{"type":"boolean"},"growthDailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"growthSendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"id":{"type":"string"},"initialProposalRequired":{"type":"boolean"},"iteration":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"kind":{"enum":["delivery","growth"],"type":"string"},"machineSize":{"anyOf":[{"enum":["small","standard","large"],"type":"string"},{"type":"null"}]},"maxRevisions":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"mobileTargetsInitialized":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"pauseReason":{"anyOf":[{"enum":["credit","limit","usage","cap","agency"],"type":"string"},{"type":"null"}]},"pausedAt":{"type":["string","null"]},"pausedByUserId":{"type":["string","null"]},"prUrl":{"type":["string","null"]},"previewCommand":{"type":["string","null"]},"previewMergedAt":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"repos":{"items":{"properties":{"cloneUrl":{"type":"string"},"connectionStatus":{"enum":["connecting","failed"],"type":"string"},"createdAt":{"type":"string"},"defaultBranch":{"type":"string"},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"githubInstallationId":{"type":["string","null"]},"githubRepoId":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"isPrimary":{"type":"boolean"},"label":{"type":["string","null"]},"name":{"type":"string"},"organizationId":{"type":"string"},"owner":{"type":"string"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"projectId":{"type":"string"},"provider":{"type":"string"},"setupCommand":{"type":["string","null"]},"verifyCommand":{"type":["string","null"]}},"required":["id","organizationId","projectId","provider","owner","name","cloneUrl","defaultBranch","githubInstallationId","githubRepoId","label","isPrimary","setupCommand","verifyCommand","previewCommand","previewPort","detectedCommands","createdAt"],"type":"object"},"type":"array"},"round":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"runtime":{"properties":{"agents":{"items":{"enum":["claude-code","codex","opencode","goose","qwen-code","pi"],"type":"string"},"type":"array"},"aptPackages":{"items":{"type":"string"},"type":"array"},"deployment":{"oneOf":[{"properties":{"buildCommand":{"maxLength":10000,"minLength":1,"type":"string"},"kind":{"const":"static","type":"string"},"outDir":{"maxLength":2000,"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["repoId","kind","buildCommand","outDir"],"type":"object"},{"properties":{"kind":{"const":"server","type":"string"},"repoId":{"minLength":1,"type":"string"},"startCommand":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["repoId","kind","startCommand"],"type":"object"}]},"envOverrides":{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"type":"object"},"hash":{"type":"string"},"imageTag":{"type":["string","null"]},"linearProjectId":{"type":"string"},"linearTeamId":{"type":"string"},"notes":{"items":{"maxLength":2000,"type":"string"},"maxItems":100,"type":"array"},"preview":{"properties":{"command":{"maxLength":10000,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":1024,"type":"integer"}},"required":["command","port"],"type":"object"},"services":{"items":{"properties":{"name":{"enum":["mysql","postgres","redis"],"type":"string"},"ready":{"maxLength":10000,"type":"string"},"start":{"maxLength":10000,"type":"string"},"stop":{"maxLength":10000,"type":"string"}},"required":["name"],"type":"object"},"maxItems":3,"type":"array"},"setup":{"type":"string"},"source":{"additionalProperties":{"enum":["auto","person"],"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"toolchain":{"additionalProperties":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"number"},{"type":"boolean"}]},"properties":{"bun":{"type":["string","number"]},"node":{"type":["string","number"]},"playwright":{"type":"boolean"},"python":{"type":["string","number"]}},"type":"object"},"verifyCommand":{"maxLength":10000,"type":"string"}},"type":"object"},"setupReport":{"anyOf":[{"properties":{"finishedAt":{"type":"string"},"startedAt":{"type":"string"},"status":{"enum":["ok","partial"],"type":"string"},"steps":{"items":{"properties":{"name":{"type":"string"},"reason":{"type":"string"},"status":{"enum":["ok","fixed-by-override","failed"],"type":"string"}},"required":["name","status"],"type":"object"},"type":"array"}},"required":["startedAt","status","steps"],"type":"object"},{"type":"null"}]},"slug":{"type":"string"},"sources":{"properties":{"github":{"type":"boolean"},"linear":{"type":"boolean"}},"type":"object"},"stack":{"type":"string"},"stalledRevisions":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"status":{"enum":["idle","planning","building","checking","ready","paused_budget","stopped","archived"],"type":"string"},"stopState":{"enum":["idle","never_started","stopped","running","stopping"],"type":"string"},"tier":{"anyOf":[{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"},{"type":"null"}]},"useWorkspaceBrand":{"type":"boolean"},"verifyCommand":{"type":["string","null"]},"viewerCanAccessCanvas":{"type":"boolean"},"viewerCanMessage":{"type":"boolean"},"viewerCanSeeInsights":{"type":"boolean"}},"required":["id","organizationId","name","brief","slug","kind","growthSendingSchedule","growthDailyBudgetMicros","growthAutopilot","stack","claudeMd","runtime","mobileTargetsInitialized","setupReport","verifyCommand","previewCommand","previewPort","customDomain","detectedCommands","useWorkspaceBrand","initialProposalRequired","sources","extraUsage","tier","costCapMicros","maxRevisions","cycleCap","iteration","stalledRevisions","completedAtLastRevision","round","prUrl","machineSize","branchPrefix","branchPrefixLockedAt","branchNames","clientAccountId","createdAt","archivedAt","pausedAt","pausedByUserId","previewMergedAt","environmentSnapshot","assignedUserId","repos","viewerCanMessage","viewerCanAccessCanvas","viewerCanSeeInsights","deploymentPreviewsEnabled","stopState","status","pauseReason","attention"],"type":"object"},"ProjectDiagnostics":{"properties":{"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"costToDateMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"inFlightCycleIds":{"items":{"type":"string"},"type":"array"},"iteration":{"type":"number"},"maxRevisions":{"type":"number"},"nextDecision":{"type":"string"},"roadmap":{"items":{"properties":{"dependsOn":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["id","title","status","dependsOn"],"type":"object"},"type":"array"},"status":{"enum":["idle","never_started","stopped","running","stopping"],"type":"string"}},"required":["status","nextDecision","inFlightCycleIds","iteration","maxRevisions","costToDateMicros","costCapMicros","roadmap"],"type":"object"},"ProjectEnvironment":{"properties":{"capabilities":{"properties":{"desktop":{"type":"boolean"}},"required":["desktop"],"type":"object"},"createdAt":{"type":["string","null"]},"state":{"enum":["none","building","ready","local"],"type":"string"},"workspaceRoot":{"type":"string"}},"required":["state","createdAt","workspaceRoot","capabilities"],"type":"object"},"ProjectEnvironmentKeepAlive":{"properties":{"kept":{"type":"boolean"},"state":{"enum":["started","creating","absent"],"type":"string"}},"required":["kept","state"],"type":"object"},"ProjectEnvironmentRebuild":{"properties":{"outcome":{"enum":["started","waiting"],"type":"string"}},"required":["outcome"],"type":"object"},"ProjectExtraUsage":{"properties":{"allowed":{"type":"boolean"},"canEnable":{"type":"boolean"},"cannotEnableReason":{"anyOf":[{"enum":["payment_method_required","not_metered","upgrade_required"],"type":"string"},{"type":"null"}]},"setting":{"enum":["inherit","allow","block"],"type":"string"},"source":{"enum":["project","organization","default"],"type":"string"},"workspaceAllowed":{"type":"boolean"}},"required":["allowed","source","canEnable","cannotEnableReason","setting","workspaceAllowed"],"type":"object"},"ProjectImageBuild":{"properties":{"cloudBuildId":{"type":["string","null"]},"completedAt":{"type":["string","null"]},"createdAt":{"type":"string"},"error":{"type":["string","null"]},"id":{"type":"string"},"imageTag":{"type":["string","null"]},"organizationId":{"type":"string"},"projectId":{"type":"string"},"runtimeHash":{"type":"string"},"startedAt":{"type":["string","null"]},"status":{"enum":["pending","building","ready","failed"],"type":"string"}},"required":["id","organizationId","projectId","runtimeHash","status","imageTag","cloudBuildId","error","createdAt","startedAt","completedAt"],"type":"object"},"ProjectKnowledge":{"properties":{"extractions":{"items":{"properties":{"cycleId":{"type":"string"},"cycleStatus":{"type":"string"},"cycleUpdatedAt":{"type":"string"},"disposition":{"anyOf":[{"properties":{"reason":{"enum":["extracting","saved","cycle_not_successful","no_source","no_useful","foreign_scope","classifier_error","embedding_error","write_error","source_error"],"type":"string"},"rejectedCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"savedCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"sourceCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"status":{"enum":["started","completed","skipped","failed"],"type":"string"}},"required":["status","reason","sourceCount","savedCount","rejectedCount"],"type":"object"},{"type":"null"}]},"recordedAt":{"type":["string","null"]}},"required":["cycleId","cycleStatus","cycleUpdatedAt","disposition","recordedAt"],"type":"object"},"type":"array"},"memories":{"items":{"properties":{"category":{"enum":["convention","decision","lesson","preference","failure","heuristic"],"type":"string"},"confidence":{"type":"number"},"createdAt":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"organizationId":{"type":"string"},"scope":{"enum":["org","project","cycle","task","agent"],"type":"string"},"scopeId":{"type":"string"},"score":{"type":"number"},"source":{"enum":["auto","user","interview","review"],"type":"string"},"status":{"enum":["tentative","approved","archived"],"type":"string"},"updatedAt":{"type":"string"},"value":{"type":"string"}},"required":["id","organizationId","scope","scopeId","category","key","value","source","confidence","status","createdAt","updatedAt"],"type":"object"},"type":"array"},"projectId":{"type":"string"}},"required":["projectId","memories","extractions"],"type":"object"},"ProjectLinearSessions":{"properties":{"sessions":{"items":{"properties":{"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"cycleTitle":{"type":["string","null"]},"id":{"type":"string"},"issueIdentifier":{"type":"string"},"issueUrl":{"type":["string","null"]},"lastActivityAt":{"type":["string","null"]},"status":{"enum":["pending","active","awaiting_input","complete","error","stale"],"type":"string"},"taskId":{"type":["string","null"]}},"required":["id","issueIdentifier","issueUrl","status","cycleId","cycleTitle","taskId","lastActivityAt","createdAt"],"type":"object"},"type":"array"}},"required":["sessions"],"type":"object"},"ProjectPack":{"properties":{"createdAt":{"type":"string"},"id":{"type":"string"},"isActive":{"type":"boolean"},"organizationId":{"type":"string"},"packName":{"type":"string"},"projectId":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","packName","isActive","createdAt","updatedAt"],"type":"object"},"ProjectProtectedFiles":{"properties":{"files":{"items":{"properties":{"contentBase64":{"type":"string"},"kind":{"enum":["dotenv","credential","detected-content","agent","skill","mcp"],"type":"string"},"path":{"type":"string"},"sha256":{"type":"string"},"size":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["path","kind","size","sha256","contentBase64"],"type":"object"},"type":"array"}},"required":["files"],"type":"object"},"ProjectRepo":{"properties":{"cloneUrl":{"type":"string"},"connectionStatus":{"enum":["connecting","failed"],"type":"string"},"createdAt":{"type":"string"},"defaultBranch":{"type":"string"},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"githubInstallationId":{"type":["string","null"]},"githubRepoId":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"isPrimary":{"type":"boolean"},"label":{"type":["string","null"]},"name":{"type":"string"},"organizationId":{"type":"string"},"owner":{"type":"string"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"projectId":{"type":"string"},"provider":{"type":"string"},"setupCommand":{"type":["string","null"]},"verifyCommand":{"type":["string","null"]}},"required":["id","organizationId","projectId","provider","owner","name","cloneUrl","defaultBranch","githubInstallationId","githubRepoId","label","isPrimary","setupCommand","verifyCommand","previewCommand","previewPort","detectedCommands","createdAt"],"type":"object"},"ProjectResumed":{"properties":{"resumedCycles":{"items":{"type":"string"},"type":"array"},"started":{"type":"boolean"},"status":{"enum":["idle","never_started","stopped","running","stopping"],"type":"string"}},"required":["status","resumedCycles","started"],"type":"object"},"ProjectReview":{"properties":{"canMerge":{"type":"boolean"},"journeys":{"items":{"properties":{"cycleId":{"type":"string"},"journeyId":{"type":"string"},"outcome":{"enum":["passed","failed","unverified"],"type":"string"},"title":{"type":"string"}},"required":["cycleId","journeyId","title","outcome"],"type":"object"},"type":"array"},"passedJourneys":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"pullRequests":{"items":{"properties":{"baseBranch":{"type":"string"},"headSha":{"type":"string"},"repoId":{"type":"string"},"repoName":{"type":"string"},"url":{"type":"string"}},"required":["repoId","repoName","url","headSha","baseBranch"],"type":"object"},"type":"array"},"totalJourneys":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"verifiedCycles":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["canMerge","pullRequests","verifiedCycles","passedJourneys","totalJourneys","journeys"],"type":"object"},"ProjectRoadmap":{"properties":{"completedCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"costToDateMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycles":{"items":{"properties":{"agents":{"items":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"type":["string","null"]},"state":{"type":"string"}},"required":["id","name","role","state"],"type":"object"},"type":"array"},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycleId":{"type":["string","null"]},"displayId":{"type":"string"},"elapsedMs":{"type":["number","null"]},"handling":{"type":["string","null"]},"linearIssueIdentifier":{"type":["string","null"]},"linearIssueUrl":{"type":["string","null"]},"order":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"owner":{"anyOf":[{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},{"type":"null"}]},"quick":{"type":"boolean"},"requestedByUserId":{"type":["string","null"]},"setup":{"type":"boolean"},"source":{"type":["string","null"]},"status":{"enum":["triage","planned","running","review","done","failed","canceled"],"type":"string"},"taskDone":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"taskTotal":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"title":{"type":"string"}},"required":["cycleId","title","order","status","taskTotal","taskDone","costMicros","source","linearIssueIdentifier","linearIssueUrl","requestedByUserId","handling","quick","setup"],"type":"object"},"type":"array"},"requests":{"items":{"properties":{"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"decision":{"type":["string","null"]},"id":{"type":"string"},"linearIssueIdentifier":{"type":["string","null"]},"linearIssueUrl":{"type":["string","null"]},"resolvedAt":{"type":["string","null"]},"scope":{"type":"string"},"source":{"enum":["chat","client_portal","kanban","linear","github","api","branch","canvas"],"type":"string"},"status":{"enum":["pending","approved","denied"],"type":"string"},"title":{"type":"string"}},"required":["id","title","scope","source","linearIssueIdentifier","linearIssueUrl","createdAt","status","decision","resolvedAt","cycleId"],"type":"object"},"type":"array"},"totalCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["cycles","costToDateMicros","completedCount","totalCount","requests"],"type":"object"},"ProjectRow":{"properties":{"archivedAt":{"type":["string","null"]},"assignedUserId":{"type":["string","null"]},"branchNames":{"enum":["legacy","retiring","readable"],"type":"string"},"branchPrefix":{"type":["string","null"]},"branchPrefixLockedAt":{"type":["string","null"]},"brief":{"type":["string","null"]},"claudeMd":{"type":["string","null"]},"clientAccountId":{"type":["string","null"]},"completedAtLastRevision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"customDomain":{"type":["string","null"]},"cycleCap":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"environmentSnapshot":{"anyOf":[{"properties":{"createdAt":{"type":"string"},"environmentId":{"type":"string"},"imageVersion":{"type":"string"},"manifestHash":{"type":"string"},"runtimeHash":{"type":"string"}},"required":["environmentId","imageVersion","manifestHash","runtimeHash","createdAt"],"type":"object"},{"type":"null"}]},"extraUsage":{"anyOf":[{"enum":["allow","block"],"type":"string"},{"type":"null"}]},"growthAutopilot":{"type":"boolean"},"growthDailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"growthSendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"id":{"type":"string"},"initialProposalRequired":{"type":"boolean"},"iteration":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"kind":{"enum":["delivery","growth"],"type":"string"},"machineSize":{"anyOf":[{"enum":["small","standard","large"],"type":"string"},{"type":"null"}]},"maxRevisions":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"mobileTargetsInitialized":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"pausedAt":{"type":["string","null"]},"pausedByUserId":{"type":["string","null"]},"prUrl":{"type":["string","null"]},"previewCommand":{"type":["string","null"]},"previewMergedAt":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"round":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"runtime":{"properties":{"agents":{"items":{"enum":["claude-code","codex","opencode","goose","qwen-code","pi"],"type":"string"},"type":"array"},"aptPackages":{"items":{"type":"string"},"type":"array"},"deployment":{"oneOf":[{"properties":{"buildCommand":{"maxLength":10000,"minLength":1,"type":"string"},"kind":{"const":"static","type":"string"},"outDir":{"maxLength":2000,"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["repoId","kind","buildCommand","outDir"],"type":"object"},{"properties":{"kind":{"const":"server","type":"string"},"repoId":{"minLength":1,"type":"string"},"startCommand":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["repoId","kind","startCommand"],"type":"object"}]},"envOverrides":{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"type":"object"},"hash":{"type":"string"},"imageTag":{"type":["string","null"]},"linearProjectId":{"type":"string"},"linearTeamId":{"type":"string"},"notes":{"items":{"maxLength":2000,"type":"string"},"maxItems":100,"type":"array"},"preview":{"properties":{"command":{"maxLength":10000,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":1024,"type":"integer"}},"required":["command","port"],"type":"object"},"services":{"items":{"properties":{"name":{"enum":["mysql","postgres","redis"],"type":"string"},"ready":{"maxLength":10000,"type":"string"},"start":{"maxLength":10000,"type":"string"},"stop":{"maxLength":10000,"type":"string"}},"required":["name"],"type":"object"},"maxItems":3,"type":"array"},"setup":{"type":"string"},"source":{"additionalProperties":{"enum":["auto","person"],"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"toolchain":{"additionalProperties":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"number"},{"type":"boolean"}]},"properties":{"bun":{"type":["string","number"]},"node":{"type":["string","number"]},"playwright":{"type":"boolean"},"python":{"type":["string","number"]}},"type":"object"},"verifyCommand":{"maxLength":10000,"type":"string"}},"type":"object"},"setupReport":{"anyOf":[{"properties":{"finishedAt":{"type":"string"},"startedAt":{"type":"string"},"status":{"enum":["ok","partial"],"type":"string"},"steps":{"items":{"properties":{"name":{"type":"string"},"reason":{"type":"string"},"status":{"enum":["ok","fixed-by-override","failed"],"type":"string"}},"required":["name","status"],"type":"object"},"type":"array"}},"required":["startedAt","status","steps"],"type":"object"},{"type":"null"}]},"slug":{"type":"string"},"sources":{"properties":{"github":{"type":"boolean"},"linear":{"type":"boolean"}},"type":"object"},"stack":{"type":"string"},"stalledRevisions":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tier":{"anyOf":[{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"},{"type":"null"}]},"useWorkspaceBrand":{"type":"boolean"},"verifyCommand":{"type":["string","null"]}},"required":["id","organizationId","name","brief","slug","kind","growthSendingSchedule","growthDailyBudgetMicros","growthAutopilot","stack","claudeMd","runtime","mobileTargetsInitialized","setupReport","verifyCommand","previewCommand","previewPort","customDomain","detectedCommands","useWorkspaceBrand","initialProposalRequired","sources","extraUsage","tier","costCapMicros","maxRevisions","cycleCap","iteration","stalledRevisions","completedAtLastRevision","round","prUrl","machineSize","branchPrefix","branchPrefixLockedAt","branchNames","clientAccountId","createdAt","archivedAt","pausedAt","pausedByUserId","previewMergedAt","environmentSnapshot","assignedUserId"],"type":"object"},"ProjectStackSuggestion":{"properties":{"evidence":{"items":{"type":"string"},"type":"array"},"stack":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}]}},"required":["stack","evidence"],"type":"object"},"ProjectStarted":{"properties":{"started":{"const":true,"type":"boolean"}},"required":["started"],"type":"object"},"ProjectStatusSummary":{"properties":{"attention":{"items":{"properties":{"cycleId":{"type":["string","null"]},"id":{"type":["string","null"]},"kind":{"enum":["approval","plan","budget","resume","setup","vault","public_link_requested","merge"],"type":"string"},"name":{"type":["string","null"]},"reason":{"anyOf":[{"enum":["credit","limit","cap"],"type":"string"},{"type":"null"}]}},"required":["kind","id","cycleId","reason","name"],"type":"object"},"type":"array"},"currentCycle":{"anyOf":[{"properties":{"id":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["id","title","status"],"type":"object"},{"type":"null"}]},"cycles":{"items":{"properties":{"id":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["id","title","status"],"type":"object"},"type":"array"},"declined":{"items":{"properties":{"id":{"type":"string"},"reason":{"type":"string"},"title":{"type":"string"}},"required":["id","title","reason"],"type":"object"},"type":"array"},"delivery":{"properties":{"kind":{"enum":["pull_request","workspace"],"type":"string"},"prUrl":{"type":["string","null"]},"repo":{"type":["string","null"]}},"required":["kind","repo","prUrl"],"type":"object"},"lastActivityAt":{"type":["string","null"]},"needsYou":{"items":{"properties":{"description":{"type":"string"},"id":{"type":"string"},"kind":{"type":"string"},"title":{"type":"string"}},"required":["id","kind","title","description"],"type":"object"},"type":"array"},"pauseReason":{"anyOf":[{"enum":["credit","limit","usage","cap","agency"],"type":"string"},{"type":"null"}]},"pausedReason":{"type":["string","null"]},"pendingProposals":{"type":"number"},"previewUrl":{"type":["string","null"]},"progress":{"properties":{"done":{"type":"number"},"failed":{"type":"number"},"total":{"type":"number"}},"required":["done","failed","total"],"type":"object"},"project":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"status":{"enum":["idle","planning","building","checking","ready","paused_budget","stopped","archived"],"type":"string"}},"required":["project","status","progress","currentCycle","cycles","pendingProposals","needsYou","declined","pauseReason","attention","pausedReason","previewUrl","delivery","lastActivityAt"],"type":"object"},"ProjectStopped":{"properties":{"status":{"enum":["stopped","stopping"],"type":"string"},"stoppedCycles":{"items":{"type":"string"},"type":"array"}},"required":["status","stoppedCycles"],"type":"object"},"ProjectSummary":{"properties":{"activeCycles":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"agentCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"approvals":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"archivedAt":{"type":["string","null"]},"assignedUserId":{"type":["string","null"]},"attention":{"items":{"properties":{"cycleId":{"type":["string","null"]},"id":{"type":["string","null"]},"kind":{"enum":["approval","plan","budget","resume","setup","vault","public_link_requested","merge"],"type":"string"},"name":{"type":["string","null"]},"reason":{"anyOf":[{"enum":["credit","limit","cap"],"type":"string"},{"type":"null"}]}},"required":["kind","id","cycleId","reason","name"],"type":"object"},"type":"array"},"branchNames":{"enum":["legacy","retiring","readable"],"type":"string"},"branchPrefix":{"type":["string","null"]},"branchPrefixLockedAt":{"type":["string","null"]},"brief":{"type":["string","null"]},"claudeMd":{"type":["string","null"]},"clientAccountId":{"type":["string","null"]},"completedAtLastRevision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"customDomain":{"type":["string","null"]},"cycleCap":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycleCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cyclesDone":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"deliveryStatus":{"anyOf":[{"enum":["delivered","unmet","unknown"],"type":"string"},{"type":"null"}]},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"environmentSnapshot":{"anyOf":[{"properties":{"createdAt":{"type":"string"},"environmentId":{"type":"string"},"imageVersion":{"type":"string"},"manifestHash":{"type":"string"},"runtimeHash":{"type":"string"}},"required":["environmentId","imageVersion","manifestHash","runtimeHash","createdAt"],"type":"object"},{"type":"null"}]},"extraUsage":{"anyOf":[{"enum":["allow","block"],"type":"string"},{"type":"null"}]},"growthAutopilot":{"type":"boolean"},"growthDailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"growthSendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"id":{"type":"string"},"initialProposalRequired":{"type":"boolean"},"iteration":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"kind":{"enum":["delivery","growth"],"type":"string"},"lastActivityAt":{"type":["string","null"]},"latestCycleStatus":{"anyOf":[{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},{"type":"null"}]},"machineSize":{"anyOf":[{"enum":["small","standard","large"],"type":"string"},{"type":"null"}]},"maxRevisions":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"mobileTargetsInitialized":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"pauseReason":{"anyOf":[{"enum":["credit","limit","usage","cap","agency"],"type":"string"},{"type":"null"}]},"pausedAt":{"type":["string","null"]},"pausedByUserId":{"type":["string","null"]},"prUrl":{"type":["string","null"]},"previewCommand":{"type":["string","null"]},"previewMergedAt":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"repos":{"items":{"properties":{"cloneUrl":{"type":"string"},"connectionStatus":{"enum":["connecting","failed"],"type":"string"},"createdAt":{"type":"string"},"defaultBranch":{"type":"string"},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"githubInstallationId":{"type":["string","null"]},"githubRepoId":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"id":{"type":"string"},"isPrimary":{"type":"boolean"},"label":{"type":["string","null"]},"name":{"type":"string"},"organizationId":{"type":"string"},"owner":{"type":"string"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"projectId":{"type":"string"},"provider":{"type":"string"},"setupCommand":{"type":["string","null"]},"verifyCommand":{"type":["string","null"]}},"required":["id","organizationId","projectId","provider","owner","name","cloneUrl","defaultBranch","githubInstallationId","githubRepoId","label","isPrimary","setupCommand","verifyCommand","previewCommand","previewPort","detectedCommands","createdAt"],"type":"object"},"type":"array"},"round":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"runningAgents":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"runtime":{"properties":{"agents":{"items":{"enum":["claude-code","codex","opencode","goose","qwen-code","pi"],"type":"string"},"type":"array"},"aptPackages":{"items":{"type":"string"},"type":"array"},"deployment":{"oneOf":[{"properties":{"buildCommand":{"maxLength":10000,"minLength":1,"type":"string"},"kind":{"const":"static","type":"string"},"outDir":{"maxLength":2000,"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["repoId","kind","buildCommand","outDir"],"type":"object"},{"properties":{"kind":{"const":"server","type":"string"},"repoId":{"minLength":1,"type":"string"},"startCommand":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["repoId","kind","startCommand"],"type":"object"}]},"envOverrides":{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"type":"object"},"hash":{"type":"string"},"imageTag":{"type":["string","null"]},"linearProjectId":{"type":"string"},"linearTeamId":{"type":"string"},"notes":{"items":{"maxLength":2000,"type":"string"},"maxItems":100,"type":"array"},"preview":{"properties":{"command":{"maxLength":10000,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":1024,"type":"integer"}},"required":["command","port"],"type":"object"},"services":{"items":{"properties":{"name":{"enum":["mysql","postgres","redis"],"type":"string"},"ready":{"maxLength":10000,"type":"string"},"start":{"maxLength":10000,"type":"string"},"stop":{"maxLength":10000,"type":"string"}},"required":["name"],"type":"object"},"maxItems":3,"type":"array"},"setup":{"type":"string"},"source":{"additionalProperties":{"enum":["auto","person"],"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"toolchain":{"additionalProperties":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"number"},{"type":"boolean"}]},"properties":{"bun":{"type":["string","number"]},"node":{"type":["string","number"]},"playwright":{"type":"boolean"},"python":{"type":["string","number"]}},"type":"object"},"verifyCommand":{"maxLength":10000,"type":"string"}},"type":"object"},"setupReport":{"anyOf":[{"properties":{"finishedAt":{"type":"string"},"startedAt":{"type":"string"},"status":{"enum":["ok","partial"],"type":"string"},"steps":{"items":{"properties":{"name":{"type":"string"},"reason":{"type":"string"},"status":{"enum":["ok","fixed-by-override","failed"],"type":"string"}},"required":["name","status"],"type":"object"},"type":"array"}},"required":["startedAt","status","steps"],"type":"object"},{"type":"null"}]},"slug":{"type":"string"},"sources":{"properties":{"github":{"type":"boolean"},"linear":{"type":"boolean"}},"type":"object"},"stack":{"type":"string"},"stalledRevisions":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"status":{"enum":["idle","planning","building","checking","ready","paused_budget","stopped","archived"],"type":"string"},"tier":{"anyOf":[{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"},{"type":"null"}]},"totalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"useWorkspaceBrand":{"type":"boolean"},"verifyCommand":{"type":["string","null"]}},"required":["id","organizationId","name","brief","slug","kind","growthSendingSchedule","growthDailyBudgetMicros","growthAutopilot","stack","claudeMd","runtime","mobileTargetsInitialized","setupReport","verifyCommand","previewCommand","previewPort","customDomain","detectedCommands","useWorkspaceBrand","initialProposalRequired","sources","extraUsage","tier","costCapMicros","maxRevisions","cycleCap","iteration","stalledRevisions","completedAtLastRevision","round","prUrl","machineSize","branchPrefix","branchPrefixLockedAt","branchNames","clientAccountId","createdAt","archivedAt","pausedAt","pausedByUserId","previewMergedAt","environmentSnapshot","assignedUserId","repos","cycleCount","cyclesDone","deliveryStatus","agentCount","runningAgents","totalCostMicros","lastActivityAt","activeCycles","approvals","latestCycleStatus","status","pauseReason","attention"],"type":"object"},"ProjectSummaryRow":{"properties":{"activeCycles":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"agentCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"approvals":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"archivedAt":{"type":["string","null"]},"assignedUserId":{"type":["string","null"]},"attention":{"items":{"properties":{"cycleId":{"type":["string","null"]},"id":{"type":["string","null"]},"kind":{"enum":["approval","plan","budget","resume","setup","vault","public_link_requested","merge"],"type":"string"},"name":{"type":["string","null"]},"reason":{"anyOf":[{"enum":["credit","limit","cap"],"type":"string"},{"type":"null"}]}},"required":["kind","id","cycleId","reason","name"],"type":"object"},"type":"array"},"branchNames":{"enum":["legacy","retiring","readable"],"type":"string"},"branchPrefix":{"type":["string","null"]},"branchPrefixLockedAt":{"type":["string","null"]},"brief":{"type":["string","null"]},"claudeMd":{"type":["string","null"]},"clientAccountId":{"type":["string","null"]},"completedAtLastRevision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"costCapMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"customDomain":{"type":["string","null"]},"cycleCap":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"cycleCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cyclesDone":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"deliveryStatus":{"anyOf":[{"enum":["delivered","unmet","unknown"],"type":"string"},{"type":"null"}]},"detectedCommands":{"anyOf":[{"properties":{"apps":{"items":{"properties":{"command":{"type":"string"},"default":{"const":true,"type":"boolean"},"key":{"type":"string"},"kind":{"enum":["web","mobile"],"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"port":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["key","path","name","kind","command","port"],"type":"object"},"type":"array"},"mobile":{"type":"boolean"},"previewCommand":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"verifyCommand":{"type":["string","null"]}},"required":["previewCommand","previewPort","verifyCommand"],"type":"object"},{"type":"null"}]},"environmentSnapshot":{"anyOf":[{"properties":{"createdAt":{"type":"string"},"environmentId":{"type":"string"},"imageVersion":{"type":"string"},"manifestHash":{"type":"string"},"runtimeHash":{"type":"string"}},"required":["environmentId","imageVersion","manifestHash","runtimeHash","createdAt"],"type":"object"},{"type":"null"}]},"extraUsage":{"anyOf":[{"enum":["allow","block"],"type":"string"},{"type":"null"}]},"growthAutopilot":{"type":"boolean"},"growthDailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"growthSendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"id":{"type":"string"},"initialProposalRequired":{"type":"boolean"},"iteration":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"kind":{"enum":["delivery","growth"],"type":"string"},"lastActivityAt":{"type":["string","null"]},"latestCycleStatus":{"anyOf":[{"enum":["draft","interviewing","planning","building","review","pr_created","done","failed","triage","canceled"],"type":"string"},{"type":"null"}]},"machineSize":{"anyOf":[{"enum":["small","standard","large"],"type":"string"},{"type":"null"}]},"maxRevisions":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"mobileTargetsInitialized":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"pauseReason":{"anyOf":[{"enum":["credit","limit","usage","cap","agency"],"type":"string"},{"type":"null"}]},"pausedAt":{"type":["string","null"]},"pausedByUserId":{"type":["string","null"]},"prUrl":{"type":["string","null"]},"previewCommand":{"type":["string","null"]},"previewMergedAt":{"type":["string","null"]},"previewPort":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"round":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"runningAgents":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"runtime":{"properties":{"agents":{"items":{"enum":["claude-code","codex","opencode","goose","qwen-code","pi"],"type":"string"},"type":"array"},"aptPackages":{"items":{"type":"string"},"type":"array"},"deployment":{"oneOf":[{"properties":{"buildCommand":{"maxLength":10000,"minLength":1,"type":"string"},"kind":{"const":"static","type":"string"},"outDir":{"maxLength":2000,"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["repoId","kind","buildCommand","outDir"],"type":"object"},{"properties":{"kind":{"const":"server","type":"string"},"repoId":{"minLength":1,"type":"string"},"startCommand":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["repoId","kind","startCommand"],"type":"object"}]},"envOverrides":{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"type":"object"},"hash":{"type":"string"},"imageTag":{"type":["string","null"]},"linearProjectId":{"type":"string"},"linearTeamId":{"type":"string"},"notes":{"items":{"maxLength":2000,"type":"string"},"maxItems":100,"type":"array"},"preview":{"properties":{"command":{"maxLength":10000,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":1024,"type":"integer"}},"required":["command","port"],"type":"object"},"services":{"items":{"properties":{"name":{"enum":["mysql","postgres","redis"],"type":"string"},"ready":{"maxLength":10000,"type":"string"},"start":{"maxLength":10000,"type":"string"},"stop":{"maxLength":10000,"type":"string"}},"required":["name"],"type":"object"},"maxItems":3,"type":"array"},"setup":{"type":"string"},"source":{"additionalProperties":{"enum":["auto","person"],"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"toolchain":{"additionalProperties":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"number"},{"type":"boolean"}]},"properties":{"bun":{"type":["string","number"]},"node":{"type":["string","number"]},"playwright":{"type":"boolean"},"python":{"type":["string","number"]}},"type":"object"},"verifyCommand":{"maxLength":10000,"type":"string"}},"type":"object"},"setupReport":{"anyOf":[{"properties":{"finishedAt":{"type":"string"},"startedAt":{"type":"string"},"status":{"enum":["ok","partial"],"type":"string"},"steps":{"items":{"properties":{"name":{"type":"string"},"reason":{"type":"string"},"status":{"enum":["ok","fixed-by-override","failed"],"type":"string"}},"required":["name","status"],"type":"object"},"type":"array"}},"required":["startedAt","status","steps"],"type":"object"},{"type":"null"}]},"slug":{"type":"string"},"sources":{"properties":{"github":{"type":"boolean"},"linear":{"type":"boolean"}},"type":"object"},"stack":{"type":"string"},"stalledRevisions":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"status":{"enum":["idle","planning","building","checking","ready","paused_budget","stopped","archived"],"type":"string"},"tier":{"anyOf":[{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"},{"type":"null"}]},"totalCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"useWorkspaceBrand":{"type":"boolean"},"verifyCommand":{"type":["string","null"]}},"required":["id","organizationId","name","brief","slug","kind","growthSendingSchedule","growthDailyBudgetMicros","growthAutopilot","stack","claudeMd","runtime","mobileTargetsInitialized","setupReport","verifyCommand","previewCommand","previewPort","customDomain","detectedCommands","useWorkspaceBrand","initialProposalRequired","sources","extraUsage","tier","costCapMicros","maxRevisions","cycleCap","iteration","stalledRevisions","completedAtLastRevision","round","prUrl","machineSize","branchPrefix","branchPrefixLockedAt","branchNames","clientAccountId","createdAt","archivedAt","pausedAt","pausedByUserId","previewMergedAt","environmentSnapshot","assignedUserId","cycleCount","cyclesDone","deliveryStatus","agentCount","runningAgents","totalCostMicros","lastActivityAt","activeCycles","approvals","latestCycleStatus","status","pauseReason","attention"],"type":"object"},"ProjectTaskCharges":{"properties":{"billingMode":{"enum":["metered","tasks"],"type":"string"},"charges":{"items":{"properties":{"createdAt":{"type":"string"},"credits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cycleId":{"type":"string"},"id":{"type":"string"},"projectId":{"type":"string"},"reason":{"enum":["accepted","extra_rework"],"type":"string"},"round":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"size":{"anyOf":[{"enum":["simple","medium","complex"],"type":"string"},{"type":"null"}]},"status":{"enum":["shadow","sent"],"type":"string"},"taskId":{"type":"string"},"taskTitle":{"type":["string","null"]},"tier":{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"}},"required":["id","projectId","cycleId","taskId","taskTitle","tier","credits","size","reason","round","status","createdAt"],"type":"object"},"type":"array"},"creditsBySize":{"anyOf":[{"properties":{"complex":{"type":"number"},"medium":{"type":"number"},"simple":{"type":"number"}},"required":["simple","medium","complex"],"type":"object"},{"type":"null"}]},"creditsPerTask":{"type":"number"},"freeReworkRounds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"reviewRounds":{"items":{"properties":{"reviewRounds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"taskId":{"type":"string"}},"required":["taskId","reviewRounds"],"type":"object"},"type":"array"},"taskSizes":{"items":{"properties":{"credits":{"type":["number","null"]},"free":{"type":"boolean"},"size":{"enum":["simple","medium","complex"],"type":"string"},"taskId":{"type":"string"}},"required":["taskId","size","credits","free"],"type":"object"},"type":"array"},"tier":{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"}},"required":["billingMode","tier","creditsPerTask","creditsBySize","freeReworkRounds","charges","reviewRounds","taskSizes"],"type":"object"},"ProjectTeamInsights":{"properties":{"agentRuns":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cloudMachines":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"etaBasis":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"etaHighHours":{"type":["number","null"]},"etaLowHours":{"type":["number","null"]},"etaScope":{"anyOf":[{"enum":["project","workspace","plan"],"type":"string"},{"type":"null"}]},"finishedCycles":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"machineHours":{"type":"number"},"openCycles":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["cloudMachines","machineHours","agentRuns","openCycles","finishedCycles","etaLowHours","etaHighHours","etaBasis","etaScope"],"type":"object"},"ProjectTerminalAccess":{"properties":{"available":{"type":"boolean"},"environmentState":{"enum":["creating","absent"],"type":"string"},"expiresAt":{"type":"string"},"reason":{"type":"string"},"webTerminalUrl":{"type":"string"}},"required":["available"],"type":"object"},"ProjectWorkspaceExec":{"properties":{"command":{"maxLength":100000,"minLength":1,"type":"string"},"cwd":{"maxLength":4096,"minLength":1,"type":"string"},"timeoutMs":{"default":600000,"exclusiveMinimum":0,"maximum":1800000,"type":"integer"}},"required":["command"],"type":"object"},"ProjectWorkspaceFs":{"properties":{"content":{"type":"string"},"dest":{"maxLength":4096,"minLength":1,"type":"string"},"encoding":{"default":"utf8","enum":["utf8","base64"],"type":"string"},"op":{"enum":["read","write","append","delete","copy","move","mkdir","rmdir","readdir","exists","stat"],"type":"string"},"options":{"properties":{"extension":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"force":{"type":"boolean"},"maxDepth":{"maximum":100,"minimum":0,"type":"integer"},"overwrite":{"type":"boolean"},"recursive":{"type":"boolean"}},"type":"object"},"path":{"maxLength":4096,"minLength":1,"type":"string"}},"required":["op","path"],"type":"object"},"PromotionAnalyticsConsent":{"additionalProperties":false,"properties":{"granted":{"const":false,"type":"boolean"}},"required":["granted"],"type":"object"},"PromotionConsentRevoked":{"properties":{"revoked":{"const":true,"type":"boolean"}},"required":["revoked"],"type":"object"},"PromotionCurrent":{"properties":{"grant":{"anyOf":[{"properties":{"campaignId":{"type":"string"},"campaignName":{"type":"string"},"createdAt":{"type":"string"},"earnedMonths":{"type":"number"},"endsAt":{"type":["string","null"]},"id":{"type":"string"},"organizationId":{"type":"string"},"partnerId":{"type":["string","null"]},"policy":{"additionalProperties":false,"properties":{"amountCents":{"maximum":100000000,"minimum":0,"type":"integer"},"discountType":{"enum":["percentage","fixed"],"type":"string"},"duration":{"enum":["months","once","forever"],"type":"string"},"durationMonths":{"maximum":1200,"minimum":1,"type":"integer"},"eligiblePlans":{"items":{"enum":["pro","business","scale"],"type":"string"},"maxItems":3,"minItems":1,"type":"array"},"maxCodeRedemptions":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"maxRedemptions":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"newCustomersOnly":{"default":true,"type":"boolean"},"percentOffBps":{"maximum":10000,"minimum":0,"type":"integer"},"referralRewardMonths":{"maximum":1200,"minimum":0,"type":"integer"}},"required":["discountType","percentOffBps","amountCents","duration","durationMonths","eligiblePlans","maxRedemptions","maxCodeRedemptions","referralRewardMonths"],"type":"object"},"startsAt":{"type":["string","null"]},"state":{"enum":["claimed","active","expired","revoked"],"type":"string"},"subscriptionId":{"type":["string","null"]},"syncState":{"enum":["pending","applied","failed"],"type":"string"}},"required":["id","campaignId","campaignName","organizationId","partnerId","policy","state","startsAt","endsAt","earnedMonths","subscriptionId","syncState","createdAt"],"type":"object"},{"type":"null"}]},"offer":{"anyOf":[{"properties":{"campaignId":{"type":"string"},"kind":{"enum":["early_adopter","referral","custom"],"type":"string"},"name":{"type":"string"},"partner":{"anyOf":[{"properties":{"displayName":{"type":"string"},"id":{"type":"string"},"slug":{"type":"string"}},"required":["id","slug","displayName"],"type":"object"},{"type":"null"}]},"policy":{"additionalProperties":false,"properties":{"amountCents":{"maximum":100000000,"minimum":0,"type":"integer"},"discountType":{"enum":["percentage","fixed"],"type":"string"},"duration":{"enum":["months","once","forever"],"type":"string"},"durationMonths":{"maximum":1200,"minimum":1,"type":"integer"},"eligiblePlans":{"items":{"enum":["pro","business","scale"],"type":"string"},"maxItems":3,"minItems":1,"type":"array"},"maxCodeRedemptions":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"maxRedemptions":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"newCustomersOnly":{"default":true,"type":"boolean"},"percentOffBps":{"maximum":10000,"minimum":0,"type":"integer"},"referralRewardMonths":{"maximum":1200,"minimum":0,"type":"integer"}},"required":["discountType","percentOffBps","amountCents","duration","durationMonths","eligiblePlans","maxRedemptions","maxCodeRedemptions","referralRewardMonths"],"type":"object"},"quotes":{"items":{"properties":{"currency":{"const":"usd","type":"string"},"discountCents":{"type":"number"},"includedHlixDollars":{"type":"number"},"listPriceCents":{"type":"number"},"payableCents":{"type":"number"},"plan":{"enum":["pro","business","scale"],"type":"string"}},"required":["plan","listPriceCents","discountCents","payableCents","includedHlixDollars","currency"],"type":"object"},"type":"array"}},"required":["campaignId","name","kind","policy","partner","quotes"],"type":"object"},{"type":"null"}]}},"required":["grant","offer"],"type":"object"},"PromotionOffer":{"properties":{"campaignId":{"type":"string"},"kind":{"enum":["early_adopter","referral","custom"],"type":"string"},"name":{"type":"string"},"partner":{"anyOf":[{"properties":{"displayName":{"type":"string"},"id":{"type":"string"},"slug":{"type":"string"}},"required":["id","slug","displayName"],"type":"object"},{"type":"null"}]},"policy":{"additionalProperties":false,"properties":{"amountCents":{"maximum":100000000,"minimum":0,"type":"integer"},"discountType":{"enum":["percentage","fixed"],"type":"string"},"duration":{"enum":["months","once","forever"],"type":"string"},"durationMonths":{"maximum":1200,"minimum":1,"type":"integer"},"eligiblePlans":{"items":{"enum":["pro","business","scale"],"type":"string"},"maxItems":3,"minItems":1,"type":"array"},"maxCodeRedemptions":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"maxRedemptions":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"newCustomersOnly":{"default":true,"type":"boolean"},"percentOffBps":{"maximum":10000,"minimum":0,"type":"integer"},"referralRewardMonths":{"maximum":1200,"minimum":0,"type":"integer"}},"required":["discountType","percentOffBps","amountCents","duration","durationMonths","eligiblePlans","maxRedemptions","maxCodeRedemptions","referralRewardMonths"],"type":"object"},"quotes":{"items":{"properties":{"currency":{"const":"usd","type":"string"},"discountCents":{"type":"number"},"includedHlixDollars":{"type":"number"},"listPriceCents":{"type":"number"},"payableCents":{"type":"number"},"plan":{"enum":["pro","business","scale"],"type":"string"}},"required":["plan","listPriceCents","discountCents","payableCents","includedHlixDollars","currency"],"type":"object"},"type":"array"}},"required":["campaignId","name","kind","policy","partner","quotes"],"type":"object"},"PromotionPartnerSummary":{"properties":{"earnedMonths":{"type":"number"},"grant":{"anyOf":[{"properties":{"campaignId":{"type":"string"},"campaignName":{"type":"string"},"createdAt":{"type":"string"},"earnedMonths":{"type":"number"},"endsAt":{"type":["string","null"]},"id":{"type":"string"},"organizationId":{"type":"string"},"partnerId":{"type":["string","null"]},"policy":{"additionalProperties":false,"properties":{"amountCents":{"maximum":100000000,"minimum":0,"type":"integer"},"discountType":{"enum":["percentage","fixed"],"type":"string"},"duration":{"enum":["months","once","forever"],"type":"string"},"durationMonths":{"maximum":1200,"minimum":1,"type":"integer"},"eligiblePlans":{"items":{"enum":["pro","business","scale"],"type":"string"},"maxItems":3,"minItems":1,"type":"array"},"maxCodeRedemptions":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"maxRedemptions":{"anyOf":[{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},{"type":"null"}]},"newCustomersOnly":{"default":true,"type":"boolean"},"percentOffBps":{"maximum":10000,"minimum":0,"type":"integer"},"referralRewardMonths":{"maximum":1200,"minimum":0,"type":"integer"}},"required":["discountType","percentOffBps","amountCents","duration","durationMonths","eligiblePlans","maxRedemptions","maxCodeRedemptions","referralRewardMonths"],"type":"object"},"startsAt":{"type":["string","null"]},"state":{"enum":["claimed","active","expired","revoked"],"type":"string"},"subscriptionId":{"type":["string","null"]},"syncState":{"enum":["pending","applied","failed"],"type":"string"}},"required":["id","campaignId","campaignName","organizationId","partnerId","policy","state","startsAt","endsAt","earnedMonths","subscriptionId","syncState","createdAt"],"type":"object"},{"type":"null"}]},"paidReferralCount":{"type":"number"},"partner":{"anyOf":[{"properties":{"active":{"type":"boolean"},"campaignId":{"type":"string"},"createdAt":{"type":"string"},"displayName":{"type":"string"},"id":{"type":"string"},"organizationId":{"type":"string"},"ownerUserId":{"type":"string"},"region":{"enum":["us","eu"],"type":"string"},"slug":{"type":"string"}},"required":["id","campaignId","slug","displayName","ownerUserId","organizationId","region","active","createdAt"],"type":"object"},{"type":"null"}]},"referredCount":{"type":"number"},"rewards":{"items":{"properties":{"createdAt":{"type":"string"},"id":{"type":"string"},"months":{"type":"number"},"status":{"enum":["earned","applied","reversed"],"type":"string"}},"required":["id","months","status","createdAt"],"type":"object"},"type":"array"}},"required":["partner","referredCount","paidReferralCount","earnedMonths","grant","rewards"],"type":"object"},"PromotionResolveInput":{"additionalProperties":false,"properties":{"code":{"maxLength":128,"minLength":3,"type":"string"},"partnerSlug":{"maxLength":40,"minLength":3,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"type":"object"},"PublishBrandKit":{"properties":{"draft":{"properties":{"colors":{"properties":{"accent":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"background":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"primary":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]}},"required":["primary","accent","background","text"],"type":"object"},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"extractedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"headerMode":{"enum":["logo-and-name","logo-only"],"type":"string"},"iconTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"logoTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"provenance":{"additionalProperties":{"enum":["observed","inferred","edited"],"type":"string"},"default":{},"propertyNames":{"maxLength":80,"type":"string"},"type":"object"},"sourceUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"tagline":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"typography":{"properties":{"body":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]},"heading":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]}},"required":["heading","body"],"type":"object"},"voice":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"warnings":{"items":{"maxLength":300,"type":"string"},"maxItems":12,"type":"array"}},"required":["name","tagline","logoUrl","colors","typography","voice","description","sourceUrl","extractedAt","warnings"],"type":"object"},"portalEnabled":{"type":"boolean"}},"required":["draft","portalEnabled"],"type":"object"},"PublishDesignRevision":{"properties":{"context":{"properties":{"designMd":{"maxLength":100000,"type":"string"},"packVersion":{"maxLength":200,"type":"string"},"productMd":{"maxLength":100000,"type":"string"}},"type":"object"},"evidence":{"items":{"properties":{"flowId":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"note":{"maxLength":4000,"minLength":1,"type":"string"},"result":{"enum":["passed","failed"],"type":"string"}},"required":["flowId","result","note"],"type":"object"},"maxItems":100,"minItems":1,"type":"array"},"expectedRevisionId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"flows":{"items":{"properties":{"entryFrameId":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"frameIds":{"items":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"maxItems":100,"minItems":1,"type":"array"},"id":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"name":{"maxLength":160,"minLength":1,"type":"string"}},"required":["id","name","entryFrameId","frameIds"],"type":"object"},"maxItems":100,"minItems":1,"type":"array"},"frames":{"items":{"properties":{"height":{"maximum":10000,"minimum":240,"type":"integer"},"id":{"maxLength":120,"minLength":1,"pattern":"^[\\w-]+$","type":"string"},"name":{"maxLength":160,"minLength":1,"type":"string"},"route":{"pattern":"^#[\\w-]+$","type":"string"},"thumbnail":{"maxLength":200000,"pattern":"^data:image\\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/]+={0,2}$","type":"string"},"width":{"maximum":3840,"minimum":240,"type":"integer"}},"required":["id","name","route","width","height"],"type":"object"},"maxItems":100,"minItems":1,"type":"array"},"html":{"maxLength":2000000,"minLength":1,"type":"string"},"sourcePath":{"maxLength":300,"pattern":"^\\.hlix\\/designs\\/[\\w-]+\\/prototype\\.html$","type":"string"}},"required":["expectedRevisionId","html","frames","flows","context","evidence"],"type":"object"},"RebuildPreview":{"properties":{"projectId":{"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["projectId"],"type":"object"},"ReconnectCoderAccount":{"additionalProperties":false,"properties":{"baseUrl":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"credential":{"maxLength":20000,"minLength":1,"type":"string"}},"required":["credential"],"type":"object"},"RefineGrowthReply":{"additionalProperties":false,"properties":{"body":{"maxLength":5000,"type":"string"},"instruction":{"maxLength":1000,"minLength":1,"type":"string"}},"required":["body","instruction"],"type":"object"},"RepoAccess":{"additionalProperties":false,"properties":{"scope":{"enum":["read","write"],"type":"string"}},"required":["scope"],"type":"object"},"RepoAccessResponse":{"properties":{"cloneUrl":{"type":"string"},"defaultBranch":{"type":"string"},"expiresAt":{"type":"string"},"token":{"type":"string"}},"required":["cloneUrl","defaultBranch","token","expiresAt"],"type":"object"},"RepoHeadResponse":{"properties":{"branch":{"type":"string"},"commitSha":{"type":"string"},"isEmpty":{"type":"boolean"},"repoId":{"type":"string"}},"required":["repoId","branch","commitSha","isEmpty"],"type":"object"},"RequestDeliverableApproval":{"additionalProperties":false,"properties":{"reviewerId":{"minLength":1,"type":"string"}},"required":["reviewerId"],"type":"object"},"RequestRevision":{"properties":{"headSha":{"pattern":"^[0-9a-f]{40}$","type":"string"}},"required":["headSha"],"type":"object"},"RequestSubmitted":{"properties":{"adopted":{"type":"boolean"},"cycleId":{"type":["string","null"]},"requestId":{"type":["string","null"]},"submitted":{"const":true,"type":"boolean"}},"required":["submitted","adopted","requestId","cycleId"],"type":"object"},"RerunGrowth":{"additionalProperties":false,"properties":{"buyerDescription":{"anyOf":[{"maxLength":2000,"minLength":1,"type":"string"},{"type":"null"}]},"citeProjectIds":{"items":{"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"},"website":{"maxLength":2048,"pattern":"^https?:\\/\\/","type":"string"}},"type":"object"},"ResolveApproval":{"properties":{"decidedBy":{"maxLength":200,"type":"string"},"decision":{"maxLength":5000,"type":"string"},"feedback":{"maxLength":5000,"type":"string"},"status":{"enum":["approved","denied"],"type":"string"}},"required":["status"],"type":"object"},"ResolveDesignComment":{"properties":{"resolved":{"type":"boolean"}},"required":["resolved"],"type":"object"},"ResolveGrowthMessage":{"additionalProperties":false,"properties":{"sent":{"type":"boolean"}},"required":["sent"],"type":"object"},"ResolvedSettings":{"properties":{"cycle":{"properties":{"coder":{"enum":["claude-code","openai-agents","codex","aider","opencode","goose","qwen-code","pi","hlix"],"type":"string"},"coderScopeId":{"type":["string","null"]},"effort":{"anyOf":[{"enum":["low","medium","high"],"type":"string"},{"type":"null"}]},"funding":{"properties":{"accountId":{"type":["string","null"]},"mode":{"enum":["managed","api_key","subscription"],"type":"string"},"nativeModel":{"type":["string","null"]},"providerId":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["mode","accountId","nativeModel"],"type":"object"},"maxParallelCycles":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"model":{"type":["string","null"]},"source":{"properties":{"coder":{"enum":["task-override","agent","project-preference","organization-preference","system-default"],"type":"string"},"effort":{"enum":["task-override","agent","project-preference","organization-preference","system-default"],"type":"string"},"funding":{"enum":["task-override","agent","project-preference","organization-preference","system-default"],"type":"string"},"maxParallelCycles":{"enum":["task-override","agent","project-preference","organization-preference","system-default"],"type":"string"},"model":{"enum":["task-override","agent","project-preference","organization-preference","system-default"],"type":"string"}},"required":["coder","funding","model","effort","maxParallelCycles"],"type":"object"}},"required":["coder","funding","model","effort","maxParallelCycles","source","coderScopeId"],"type":"object"},"projectManager":{"properties":{"effort":{"anyOf":[{"enum":["low","medium","high"],"type":"string"},{"type":"null"}]},"model":{"type":["string","null"]},"source":{"properties":{"effort":{"enum":["task-override","agent","project-preference","organization-preference","system-default"],"type":"string"},"model":{"enum":["task-override","agent","project-preference","organization-preference","system-default"],"type":"string"}},"required":["model","effort"],"type":"object"}},"required":["model","effort","source"],"type":"object"}},"required":["projectManager","cycle"],"type":"object"},"Responses":{"additionalProperties":{},"properties":{"input":{"anyOf":[{"minLength":1,"type":"string"},{"items":{},"minItems":1,"type":"array"}]},"model":{"description":"A model ID from the models endpoint, or `default` to use the workspace coder model. `hlix/default` and an omitted model field have the same effect.","maxLength":200,"minLength":1,"type":"string"},"stream":{"type":"boolean"}},"required":["input"],"type":"object"},"ResponsesResult":{"additionalProperties":{},"properties":{"id":{"type":"string"},"model":{"type":"string"},"object":{"const":"response","type":"string"},"output":{"items":{},"type":"array"}},"required":["id","object","model","output"],"type":"object"},"RestoreCustomerAccess":{"additionalProperties":false,"properties":{"grants":{"default":[],"items":{"additionalProperties":false,"properties":{"canAccessCanvas":{"type":"boolean"},"canMessage":{"default":false,"type":"boolean"},"projectId":{"minLength":1,"type":"string"},"showProjectInsights":{"default":false,"type":"boolean"}},"required":["projectId"],"type":"object"},"maxItems":100,"type":"array"},"seat":{"type":"boolean"}},"required":["seat"],"type":"object"},"ReviewComment":{"properties":{"authorId":{"type":"string"},"body":{"type":"string"},"createdAt":{"type":"string"},"cycleId":{"type":"string"},"headSha":{"type":"string"},"id":{"type":"string"},"lineEnd":{"type":["number","null"]},"lineStart":{"type":["number","null"]},"path":{"type":["string","null"]},"projectId":{"type":"string"},"resolution":{"enum":["open","resolved"],"type":"string"},"resolvedAt":{"type":["string","null"]},"resolvedBy":{"type":["string","null"]},"revisionIteration":{"type":["number","null"]},"selectedText":{"type":["string","null"]},"side":{"anyOf":[{"enum":["base","head"],"type":"string"},{"type":"null"}]},"stale":{"type":"boolean"},"updatedAt":{"type":"string"}},"required":["id","cycleId","projectId","authorId","headSha","path","side","lineStart","lineEnd","selectedText","body","resolution","resolvedBy","resolvedAt","revisionIteration","createdAt","updatedAt","stale"],"type":"object"},"ReviewCommentList":{"properties":{"comments":{"items":{"properties":{"authorId":{"type":"string"},"body":{"type":"string"},"createdAt":{"type":"string"},"cycleId":{"type":"string"},"headSha":{"type":"string"},"id":{"type":"string"},"lineEnd":{"type":["number","null"]},"lineStart":{"type":["number","null"]},"path":{"type":["string","null"]},"projectId":{"type":"string"},"resolution":{"enum":["open","resolved"],"type":"string"},"resolvedAt":{"type":["string","null"]},"resolvedBy":{"type":["string","null"]},"revisionIteration":{"type":["number","null"]},"selectedText":{"type":["string","null"]},"side":{"anyOf":[{"enum":["base","head"],"type":"string"},{"type":"null"}]},"stale":{"type":"boolean"},"updatedAt":{"type":"string"}},"required":["id","cycleId","projectId","authorId","headSha","path","side","lineStart","lineEnd","selectedText","body","resolution","resolvedBy","resolvedAt","revisionIteration","createdAt","updatedAt","stale"],"type":"object"},"type":"array"},"cycleId":{"type":"string"},"headSha":{"type":["string","null"]},"visualContext":{"oneOf":[{"properties":{"enabled":{"const":true,"type":"boolean"}},"required":["enabled"],"type":"object"},{"properties":{"enabled":{"const":false,"type":"boolean"},"reason":{"type":"string"},"reasonCode":{"enum":["previews-disabled","boundary-unavailable","review-head-unavailable","no-live-preview","revision-mismatch","source-not-isolated","unsafe-source"],"type":"string"}},"required":["enabled","reasonCode","reason"],"type":"object"}]}},"required":["cycleId","headSha","comments"],"type":"object"},"ReviewMediaJob":{"properties":{"state":{"enum":["approved","rejected","unreviewed"],"type":"string"}},"required":["state"],"type":"object"},"ReviewRevisionRequest":{"properties":{"commentIds":{"items":{"type":"string"},"type":"array"},"cycleId":{"type":"string"},"feedback":{"type":"string"},"headSha":{"type":"string"},"iteration":{"type":"number"},"reason":{"type":["string","null"]},"staleSkipped":{"type":"number"},"started":{"type":"boolean"},"taskId":{"type":"string"}},"required":["cycleId","taskId","headSha","commentIds","staleSkipped","feedback","iteration","started","reason"],"type":"object"},"Role":{"properties":{"description":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name","description"],"type":"object"},"SaveBrandKit":{"properties":{"draft":{"properties":{"colors":{"properties":{"accent":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"background":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"primary":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]}},"required":["primary","accent","background","text"],"type":"object"},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"extractedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"headerMode":{"enum":["logo-and-name","logo-only"],"type":"string"},"iconTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"logoTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"provenance":{"additionalProperties":{"enum":["observed","inferred","edited"],"type":"string"},"default":{},"propertyNames":{"maxLength":80,"type":"string"},"type":"object"},"sourceUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"tagline":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"typography":{"properties":{"body":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]},"heading":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]}},"required":["heading","body"],"type":"object"},"voice":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"warnings":{"items":{"maxLength":300,"type":"string"},"maxItems":12,"type":"array"}},"required":["name","tagline","logoUrl","colors","typography","voice","description","sourceUrl","extractedAt","warnings"],"type":"object"}},"required":["draft"],"type":"object"},"SaveGrowthProviderKey":{"additionalProperties":false,"properties":{"apiKey":{"maxLength":10000,"minLength":1,"type":"string"},"metadata":{"additionalProperties":{"maxLength":500,"minLength":1,"type":"string"},"propertyNames":{"maxLength":64,"type":"string"},"type":"object"}},"required":["apiKey"],"type":"object"},"SaveMobileProviderKey":{"additionalProperties":false,"properties":{"apiKey":{"maxLength":4096,"minLength":8,"type":"string"}},"required":["apiKey"],"type":"object"},"SaveSlackAlertRoute":{"additionalProperties":false,"properties":{"channelId":{"pattern":"^[A-Z0-9]{2,32}$","type":"string"},"enabled":{"type":"boolean"},"kinds":{"items":{"enum":["reply.interested","delivery.unknown","request.pending","secrets.vault_unreachable","work.started","work.delivered","project.ready_for_approval","project.finished"],"type":"string"},"maxItems":8,"type":"array"},"teamId":{"pattern":"^[A-Z0-9]{2,32}$","type":"string"}},"required":["teamId","channelId","kinds","enabled"],"type":"object"},"SaveTelegramAlertRoute":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"kinds":{"items":{"enum":["reply.interested","delivery.unknown","request.pending","secrets.vault_unreachable","work.started","work.delivered","project.ready_for_approval","project.finished"],"type":"string"},"maxItems":8,"type":"array"}},"required":["kinds","enabled"],"type":"object"},"SaveToolConnection":{"additionalProperties":false,"properties":{"apiKey":{"maxLength":10000,"minLength":1,"type":"string"},"organizationId":{"maxLength":40,"pattern":"^\\d+$","type":"string"}},"required":["apiKey","organizationId"],"type":"object"},"SaveWebProviderKey":{"additionalProperties":false,"properties":{"apiKey":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["apiKey"],"type":"object"},"SaveWorkingFileResult":{"properties":{"path":{"type":"string"},"sha":{"type":"string"}},"required":["path","sha"],"type":"object"},"SecretEntries":{"properties":{"entries":{"items":{"properties":{"configLabel":{"type":"string"},"format":{"type":"string"},"key":{"type":"string"},"maskedValue":{"type":"string"},"provider":{"enum":["manual","infisical"],"type":"string"},"source":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["key","source","format","maskedValue","provider","configLabel","updatedAt"],"type":"object"},"type":"array"},"warnings":{"items":{"type":"string"},"type":"array"}},"required":["entries","warnings"],"type":"object"},"SecretEntriesWritten":{"properties":{"rejected":{"items":{"type":"string"},"type":"array"},"written":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["written","rejected"],"type":"object"},"SecretEntryDeleted":{"properties":{"removed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["removed"],"type":"object"},"SecretFilesImported":{"properties":{"imported":{"items":{"properties":{"entries":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"format":{"type":"string"},"kind":{"enum":["values","file"],"type":"string"},"path":{"type":"string"}},"required":["path","format","kind","entries"],"type":"object"},"type":"array"},"rejected":{"items":{"type":"string"},"type":"array"},"skipped":{"items":{"properties":{"path":{"type":"string"},"reason":{"type":"string"}},"required":["path","reason"],"type":"object"},"type":"array"},"warnings":{"items":{"type":"string"},"type":"array"},"written":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["imported","skipped","warnings","written","rejected"],"type":"object"},"SecretsConfig":{"properties":{"config":{"type":"string"},"createdAt":{"type":"string"},"envFilter":{"type":["string","null"]},"id":{"type":"string"},"isActive":{"type":"boolean"},"label":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"provider":{"enum":["infisical","manual"],"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","provider","label","config","envFilter","isActive","createdAt","updatedAt"],"type":"object"},"SecretsConfigSummary":{"properties":{"configSummary":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"createdAt":{"type":"string"},"envFilter":{"type":["string","null"]},"id":{"type":"string"},"isActive":{"type":"boolean"},"label":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"provider":{"enum":["infisical","manual"],"type":"string"},"remote":{"anyOf":[{"properties":{"fetchedAt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"lastErrorAt":{"type":["string","null"]}},"required":["fetchedAt","lastErrorAt","lastError"],"type":"object"},{"type":"null"}]},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","provider","label","envFilter","isActive","createdAt","updatedAt","configSummary","remote"],"type":"object"},"SecretsProbe":{"properties":{"count":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"keys":{"items":{"type":"string"},"type":"array"}},"required":["count","keys"],"type":"object"},"SecretsSyncLog":{"properties":{"action":{"enum":["machine_inject","github_sync"],"type":"string"},"createdAt":{"type":"string"},"error":{"type":["string","null"]},"id":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"secretCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"status":{"enum":["success","failed"],"type":"string"}},"required":["id","organizationId","projectId","action","secretCount","status","error","createdAt"],"type":"object"},"SendGrowthReply":{"additionalProperties":false,"properties":{"body":{"maxLength":5000,"minLength":1,"type":"string"}},"required":["body"],"type":"object"},"Sequence":{"properties":{"cycle":{"properties":{"id":{"type":"string"},"stage":{"type":"string"},"startedAt":{"type":["string","null"]},"title":{"type":"string"}},"required":["id","title","stage","startedAt"],"type":"object"},"events":{"items":{"properties":{"kind":{"enum":["milestone","setback"],"type":"string"},"label":{"type":"string"},"minute":{"type":"number"}},"required":["minute","label","kind"],"type":"object"},"type":"array"},"explainer":{"properties":{"edges":{"items":{"properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"type":"object"},"type":"array"},"nodes":{"items":{"properties":{"id":{"type":"string"},"label":{"type":"string"},"status":{"enum":["new","changed","same"],"type":"string"}},"required":["id","label","status"],"type":"object"},"type":"array"}},"required":["nodes","edges"],"type":"object"},"narration":{"items":{"properties":{"actor":{"anyOf":[{"properties":{"agentKind":{"type":"string"},"promptKey":{"type":["string","null"]}},"required":["promptKey","agentKind"],"type":"object"},{"type":"null"}]},"at":{"type":"string"},"kind":{"enum":["step","decision","milestone","setback"],"type":"string"},"simple":{"type":"string"},"technical":{"type":"string"}},"required":["at","kind","actor","technical","simple"],"type":"object"},"type":"array"},"progress":{"items":{"properties":{"minute":{"type":"number"},"value":{"type":"number"}},"required":["minute","value"],"type":"object"},"type":"array"},"status":{"properties":{"risk":{"type":["string","null"]},"spendMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"tasksDone":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"tasksTotal":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"testsPassed":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"testsTotal":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]}},"required":["tasksDone","tasksTotal","testsPassed","testsTotal","spendMicros","risk"],"type":"object"},"team":{"properties":{"edges":{"items":{"properties":{"count":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"type":"object"},"type":"array"},"nodes":{"items":{"properties":{"agentKind":{"type":"string"},"promptKey":{"type":["string","null"]}},"required":["promptKey","agentKind"],"type":"object"},"type":"array"}},"required":["nodes","edges"],"type":"object"},"timeOnTask":{"items":{"properties":{"agentKind":{"type":"string"},"promptKey":{"type":["string","null"]},"seconds":{"minimum":0,"type":"number"}},"required":["promptKey","agentKind","seconds"],"type":"object"},"type":"array"}},"required":["cycle","status","narration","progress","events","timeOnTask","explainer","team"],"type":"object"},"SetExtraUsage":{"additionalProperties":false,"properties":{"allow":{"type":["boolean","null"]}},"required":["allow"],"type":"object"},"SetProjectExtraUsage":{"additionalProperties":false,"properties":{"mode":{"enum":["inherit","allow","block"],"type":"string"}},"required":["mode"],"type":"object"},"SignedArtifactUrl":{"properties":{"key":{"type":"string"},"url":{"type":"string"}},"required":["url","key"],"type":"object"},"SlackChannelPage":{"properties":{"channels":{"items":{"properties":{"id":{"type":"string"},"isMember":{"type":"boolean"},"isPrivate":{"type":"boolean"},"memberCount":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"name":{"type":"string"}},"required":["id","name","isPrivate","isMember","memberCount"],"type":"object"},"type":"array"},"nextCursor":{"type":["string","null"]}},"required":["channels","nextCursor"],"type":"object"},"StageProbability":{"additionalProperties":false,"properties":{"percent":{"anyOf":[{"maximum":100,"minimum":0,"type":"integer"},{"type":"null"}]}},"required":["percent"],"type":"object"},"StartCoderConnect":{"additionalProperties":false,"properties":{"accountId":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"callbackPort":{"maximum":65535,"minimum":1024,"type":"integer"},"coder":{"enum":["claude-code","codex"],"type":"string"},"label":{"maxLength":80,"minLength":1,"type":"string"},"shared":{"default":false,"type":"boolean"}},"required":["coder","label"],"type":"object"},"StartEditBranch":{"properties":{"from":{"minLength":1,"type":"string"},"fromSha":{"pattern":"^[0-9a-f]{40}$","type":"string"},"repo":{"type":"string"}},"required":["from","fromSha"],"type":"object"},"StartProject":{"properties":{"brief":{"minLength":1,"type":"string"}},"required":["brief"],"type":"object"},"StoredArtifact":{"properties":{"key":{"type":"string"},"size":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"uploaded":{"type":"string"}},"required":["key","size","uploaded"],"type":"object"},"SubmitBatch":{"properties":{"endpoint":{"enum":["/v1/chat/completions","/v1/responses","/v1/messages","/v1/embeddings"],"type":"string"},"idempotencyKey":{"maxLength":200,"minLength":1,"type":"string"},"items":{"items":{"properties":{"body":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"customId":{"maxLength":200,"minLength":1,"type":"string"}},"required":["customId","body"],"type":"object"},"maxItems":50000,"minItems":1,"type":"array"},"kind":{"enum":["backfill","classification","enrichment","transcription","variation","evaluation"],"type":"string"},"model":{"enum":["claude-fable-5-1","claude-opus-5","claude-sonnet-5","claude-haiku-4-5","claude-haiku-5-5","gpt-6-astra","gpt-6.1-sol","gpt-6.1-terra","gpt-6-luna","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","jev-latest","gemini-3.8-flash","gemini-embedding-2","grok-4.6","kimi-k3.1-pro","kimi-k3","deepseek-v4-pro","deepseek-v4.1-flash","glm-5.3","glm-5.3-flash","qwen3.8-max","qwen3.8-flash","auto","pareto-code","fable-latest","opus-latest","sonnet-latest","haiku-latest","sol-latest","luna-latest","terra-latest","astra-latest","grok-latest","gemini-pro-latest","gemini-flash-latest","deepseek-pro-latest","deepseek-flash-latest","glm-latest","glm-flash-latest","kimi-latest","whisper-1","voxtral-mini-tts","seedream-4-5","veo-3-1"],"type":"string"},"policy":{"properties":{"approvalRef":{"maxLength":200,"minLength":1,"type":"string"},"sensitiveDataApproved":{"type":"boolean"}},"required":["sensitiveDataApproved"],"type":"object"},"projectId":{"minLength":1,"type":"string"}},"required":["kind","endpoint","model","items","idempotencyKey","policy"],"type":"object"},"SynthesizeSpeech":{"properties":{"format":{"enum":["mp3","pcm"],"type":"string"},"projectId":{"minLength":1,"type":"string"},"speed":{"maximum":4,"minimum":0.25,"type":"number"},"text":{"maxLength":10000,"minLength":1,"type":"string"},"voice":{"maxLength":100,"minLength":1,"type":"string"}},"required":["text","voice"],"type":"object"},"Task":{"properties":{"agentId":{"type":["string","null"]},"billableCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"createdAt":{"type":"string"},"currentStage":{"type":["string","null"]},"cycleId":{"type":["string","null"]},"deliveryEvidence":{"properties":{"candidateRevision":{"pattern":"^[a-f0-9]{40}$","type":"string"},"deliveredRevision":{"pattern":"^[a-f0-9]{40}$","type":"string"},"integratedRepos":{"items":{"type":"string"},"type":"array"},"integratedRevision":{"pattern":"^[a-f0-9]{40}$","type":"string"},"reason":{"enum":["awaiting_delivery","stale_receipt","unknown_evidence","required_checks_unmet","independent_review_unmet","durable_output_missing","durable_output_changed","durable_output_unknown","candidate_changed","repository_unknown","preview_unmet","pull_request_unmet","delivery_write_unmet"],"type":"string"},"status":{"enum":["delivered","unmet","unknown"],"type":"string"}},"required":["status"],"type":"object"},"description":{"type":"string"},"doingSince":{"type":["string","null"]},"doneWhen":{"type":["string","null"]},"headSha":{"type":["string","null"]},"id":{"type":"string"},"implementationPlan":{"type":["string","null"]},"iteration":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"metadata":{},"note":{"type":["string","null"]},"organizationId":{"type":"string"},"pipeline":{},"projectId":{"type":"string"},"repoId":{"type":["string","null"]},"requirementsSummary":{"type":["string","null"]},"reviewFeedback":{"type":["string","null"]},"reviewRounds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"sortOrder":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"source":{"enum":["project_manager","build","review","platform"],"type":"string"},"status":{"enum":["queued","blocked","building","testing","reviewing","approved","merging","resolving","merged","pr_created","ci_passing","done","failed"],"type":"string"},"title":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","organizationId","projectId","cycleId","repoId","agentId","title","description","doneWhen","status","headSha","costMicros","billableCostMicros","sortOrder","iteration","reviewRounds","reviewFeedback","note","doingSince","source","requirementsSummary","implementationPlan","pipeline","currentStage","metadata","createdAt","updatedAt"],"type":"object"},"TaskComment":{"properties":{"author":{"type":["string","null"]},"body":{"type":"string"},"createdAt":{"type":"string"},"id":{"type":"string"},"parts":{"items":{"oneOf":[{"properties":{"text":{"type":"string"},"type":{"const":"text","type":"string"}},"required":["type","text"],"type":"object"},{"properties":{"text":{"type":"string"},"type":{"const":"reasoning","type":"string"}},"required":["type","text"],"type":"object"},{"properties":{"producer":{"const":"roadmap-plan","type":"string"},"spec":{"additionalProperties":false,"properties":{"components":{"items":{"additionalProperties":{},"properties":{"component":{"enum":["Column","Row","Card","Heading","Text","Metric","Status","Progress","Link","Steps","Suggestions","Divider"],"type":"string"},"id":{"minLength":1,"type":"string"}},"required":["id","component"],"type":"object"},"maxItems":200,"minItems":1,"type":"array"},"data":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"surfaceId":{"maxLength":128,"minLength":1,"type":"string"}},"required":["surfaceId","components"],"type":"object"},"type":{"const":"presentation","type":"string"}},"required":["type","producer","spec"],"type":"object"},{"properties":{"error":{"type":"string"},"input":{},"output":{},"state":{"enum":["pending","done","error"],"type":"string"},"toolCallId":{"minLength":1,"type":"string"},"toolName":{"minLength":1,"type":"string"},"type":{"const":"tool","type":"string"}},"required":["type","toolCallId","toolName","state"],"type":"object"}]},"type":"array"},"replyTo":{"type":"string"},"role":{"enum":["user","assistant"],"type":"string"},"status":{"enum":["complete","error","aborted"],"type":"string"}},"required":["id","body","author","role","createdAt"],"type":"object"},"TestMobileProviderKey":{"additionalProperties":false,"properties":{"apiKey":{"maxLength":4096,"minLength":8,"type":"string"}},"type":"object"},"TestModelProvider":{"properties":{"apiKey":{"minLength":1,"type":"string"},"baseUrl":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}},"type":"object"},"ToggleMobileProvider":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"type":"object"},"ToggleWebProvider":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"type":"object"},"ToolCall":{"properties":{"accountingOwner":{"enum":["router","ai","web","external"],"type":"string"},"billedMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"costStatus":{"enum":["pending","known","unknown","native"],"type":"string"},"createdAt":{"type":"string"},"error":{"anyOf":[{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},{"type":"null"}]},"funding":{"enum":["auto","hlix","organization"],"type":"string"},"id":{"type":"string"},"projectId":{"type":["string","null"]},"providerCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"reservedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"result":{},"status":{"enum":["queued","running","pending","completed","failed","unknown"],"type":"string"},"toolId":{"type":"string"},"toolName":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","toolId","projectId","funding","accountingOwner","status","costStatus","reservedMicros","providerCostMicros","billedMicros","result","error","createdAt","updatedAt"],"type":"object"},"ToolCallInput":{"additionalProperties":false,"properties":{"funding":{"default":"auto","enum":["auto","hlix","organization"],"type":"string"},"idempotencyKey":{"maxLength":200,"minLength":1,"type":"string"},"input":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"maxCostMicros":{"description":"Provider reservation budget in USD micros. Actual settlement may exceed this amount.","format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"projectId":{"minLength":1,"type":"string"}},"required":["input","idempotencyKey"],"type":"object"},"ToolCallList":{"properties":{"calls":{"items":{"properties":{"accountingOwner":{"enum":["router","ai","web","external"],"type":"string"},"billedMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"costStatus":{"enum":["pending","known","unknown","native"],"type":"string"},"createdAt":{"type":"string"},"error":{"anyOf":[{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},{"type":"null"}]},"funding":{"enum":["auto","hlix","organization"],"type":"string"},"id":{"type":"string"},"projectId":{"type":["string","null"]},"providerCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"reservedMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"result":{},"status":{"enum":["queued","running","pending","completed","failed","unknown"],"type":"string"},"toolId":{"type":"string"},"toolName":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","toolId","projectId","funding","accountingOwner","status","costStatus","reservedMicros","providerCostMicros","billedMicros","result","error","createdAt","updatedAt"],"type":"object"},"type":"array"},"nextCursor":{"type":["string","null"]}},"required":["calls","nextCursor"],"type":"object"},"ToolConnection":{"properties":{"enabled":{"type":"boolean"},"hasApiKey":{"type":"boolean"},"organizationId":{"type":["string","null"]},"platformAvailable":{"type":"boolean"},"provider":{"const":"treg","type":"string"}},"required":["provider","hasApiKey","enabled","organizationId","platformAvailable"],"type":"object"},"ToolDescriptor":{"properties":{"accountingOwner":{"enum":["router","ai","web","external"],"type":"string"},"availability":{"properties":{"ready":{"type":"boolean"},"reason":{"anyOf":[{"enum":["connection_required","platform_unavailable","provider_disabled","unsupported_contract","authorization_required","discovery_required"],"type":"string"},{"type":"null"}]}},"required":["ready","reason"],"type":"object"},"description":{"type":"string"},"fundingModes":{"items":{"enum":["auto","hlix","organization"],"type":"string"},"type":"array"},"id":{"type":"string"},"inputSchema":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"name":{"type":"string"},"provider":{"type":"string"},"retry":{"properties":{"ambiguousDispatch":{"const":"reconcile_only","type":"string"},"sameKey":{"const":"returns_existing_call","type":"string"}},"required":["sameKey","ambiguousDispatch"],"type":"object"}},"required":["id","name","description","provider","inputSchema","accountingOwner","fundingModes","availability","retry"],"type":"object"},"ToolSearchResult":{"properties":{"tools":{"items":{"properties":{"accountingOwner":{"enum":["router","ai","web","external"],"type":"string"},"availability":{"properties":{"ready":{"type":"boolean"},"reason":{"anyOf":[{"enum":["connection_required","platform_unavailable","provider_disabled","unsupported_contract","authorization_required","discovery_required"],"type":"string"},{"type":"null"}]}},"required":["ready","reason"],"type":"object"},"description":{"type":"string"},"fundingModes":{"items":{"enum":["auto","hlix","organization"],"type":"string"},"type":"array"},"id":{"type":"string"},"inputSchema":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"name":{"type":"string"},"provider":{"type":"string"},"retry":{"properties":{"ambiguousDispatch":{"const":"reconcile_only","type":"string"},"sameKey":{"const":"returns_existing_call","type":"string"}},"required":["sameKey","ambiguousDispatch"],"type":"object"}},"required":["id","name","description","provider","inputSchema","accountingOwner","fundingModes","availability","retry"],"type":"object"},"type":"array"},"total":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"truncated":{"type":"boolean"}},"required":["tools","total","truncated"],"type":"object"},"TranscribeAudio":{"properties":{"artifactKey":{"maxLength":512,"minLength":1,"type":"string"},"format":{"enum":["wav","mp3","flac","m4a","ogg","webm","aac"],"type":"string"},"language":{"maxLength":16,"minLength":2,"type":"string"},"projectId":{"minLength":1,"type":"string"}},"required":["artifactKey","format"],"type":"object"},"TreeListing":{"properties":{"ignored":{"default":[],"items":{"type":"string"},"type":"array"},"paths":{"items":{"type":"string"},"type":"array"},"ref":{"properties":{"ref":{"type":"string"},"sha":{"type":["string","null"]}},"required":["ref","sha"],"type":"object"},"repoKey":{"type":"string"},"tree":{"type":["string","null"]},"truncated":{"type":"boolean"}},"required":["repoKey","ref","paths","truncated","tree"],"type":"object"},"Unfollowed":{"properties":{"unfollowed":{"const":true,"type":"boolean"}},"required":["unfollowed"],"type":"object"},"UpdateAgent":{"additionalProperties":false,"properties":{"avatarImageKey":{"anyOf":[{"maxLength":300,"minLength":1,"type":"string"},{"type":"null"}]},"avatarKey":{"anyOf":[{"enum":["nucleus","strand","codon","pheno","proof","telo","script","agent","spark","orbit","sprout","echo","pixel"],"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"coder":{"anyOf":[{"enum":["claude-code","codex","opencode","goose","qwen-code","pi","hlix"],"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"duty":{"enum":["build","triage"],"type":"string"},"instructions":{"anyOf":[{"maxLength":20000,"type":"string"},{"type":"null"}]},"modelOverride":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}]},"name":{"maxLength":32,"minLength":1,"type":"string"},"projectId":{"type":["string","null"]},"reviewSet":{"enum":["default","full","docs","security","lint"],"type":"string"},"runtimeVersion":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}]}},"type":"object"},"UpdateClientAccount":{"additionalProperties":false,"properties":{"billingEmail":{"anyOf":[{"format":"email","maxLength":320,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},{"type":"null"}]},"branding":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"currency":{"anyOf":[{"pattern":"^[A-Z]{3}$","type":"string"},{"type":"null"}]},"displayName":{"maxLength":200,"minLength":1,"type":"string"},"legalName":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}]},"portalSlug":{"maxLength":100,"minLength":1,"pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","type":"string"},"status":{"enum":["prospect","active","archived"],"type":"string"}},"type":"object"},"UpdateCustomSkill":{"properties":{"content":{"minLength":1,"type":"string"},"description":{"maxLength":1000,"minLength":1,"type":"string"},"enabled":{"type":"boolean"},"name":{"maxLength":200,"minLength":1,"type":"string"},"projectIds":{"items":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"maxItems":100,"type":"array"}},"type":"object"},"UpdateCycle":{"properties":{"description":{"maxLength":10000,"minLength":1,"type":"string"},"targetBranch":{"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"type":"object"},"UpdateCycleTask":{"properties":{"description":{"maxLength":5000,"minLength":1,"type":"string"},"doneWhen":{"anyOf":[{"maxLength":1000,"minLength":1,"pattern":"^[^\\r\\n]+$","type":"string"},{"type":"null"}]},"sortOrder":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"type":"object"},"UpdateDeal":{"additionalProperties":false,"properties":{"currency":{"anyOf":[{"pattern":"^[A-Z]{3}$","type":"string"},{"type":"null"}]},"expectedCloseOn":{"anyOf":[{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},{"type":"null"}]},"lostReason":{"maxLength":500,"minLength":1,"type":"string"},"nextStep":{"anyOf":[{"maxLength":500,"minLength":1,"type":"string"},{"type":"null"}]},"nextStepAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"ownerUserId":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}]},"stage":{"maxLength":100,"minLength":1,"type":"string"},"valueMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]}},"type":"object"},"UpdateEnvironment":{"properties":{"config":{"properties":{"files":{"items":{"properties":{"content":{"type":"string"},"encoding":{"enum":["utf8","base64"],"type":"string"},"executable":{"type":"boolean"},"path":{"type":"string"}},"required":["path","content"],"type":"object"},"type":"array"},"managedPaths":{"items":{"type":"string"},"type":"array"},"mcpServers":{"items":{},"type":"array"},"skills":{"items":{"type":"string"},"type":"array"},"vars":{"additionalProperties":{"type":"string"},"default":{},"propertyNames":{"type":"string"},"type":"object"}},"type":"object"},"isActive":{"type":"boolean"},"label":{"maxLength":100,"minLength":1,"type":"string"}},"type":"object"},"UpdateGrowthAutopilot":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"type":"object"},"UpdateGrowthChain":{"additionalProperties":false,"properties":{"order":{"anyOf":[{"items":{"maxLength":64,"minLength":1,"type":"string"},"maxItems":30,"minItems":1,"type":"array"},{"type":"null"}]}},"required":["order"],"type":"object"},"UpdateGrowthLead":{"additionalProperties":false,"properties":{"status":{"enum":["disqualified","new","queued"],"type":"string"}},"required":["status"],"type":"object"},"UpdateGrowthMailbox":{"additionalProperties":false,"properties":{"dailyLimit":{"maximum":500,"minimum":1,"type":"integer"},"rampStartedAt":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},"status":{"enum":["active","paused"],"type":"string"}},"type":"object"},"UpdateGrowthPlay":{"additionalProperties":false,"properties":{"angle":{"maxLength":600,"minLength":1,"type":"string"},"autoSendReplies":{"type":"boolean"},"budgetPinned":{"type":"boolean"},"dailyBudgetMicros":{"format":"int64","maximum":1000000000,"minimum":0,"type":"integer"},"exampleClients":{"items":{"maxLength":120,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"excludeDe":{"type":"boolean"},"excludeEu":{"type":"boolean"},"firstEmail":{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"},"gdprAcknowledged":{"type":"boolean"},"keywords":{"items":{"maxLength":80,"minLength":1,"type":"string"},"maxItems":30,"type":"array"},"language":{"enum":["auto","en","de","fr"],"type":"string"},"name":{"maxLength":120,"minLength":1,"type":"string"},"negativeCriteria":{"items":{"maxLength":300,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"positiveCriteria":{"items":{"maxLength":300,"minLength":1,"type":"string"},"maxItems":20,"type":"array"},"reviewFirstN":{"maximum":1000,"minimum":0,"type":"integer"},"sendingSchedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]},"sequence":{"anyOf":[{"additionalProperties":false,"properties":{"followUpDays":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"maximum":60,"minimum":1,"type":"integer"},{"maximum":90,"minimum":2,"type":"integer"}],"type":"array"},"followUps":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"},{"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"subject":{"maxLength":120,"minLength":1,"type":"string"}},"required":["subject","body"],"type":"object"}],"type":"array"}},"required":["followUpDays","followUps"],"type":"object"},{"type":"null"}]},"status":{"enum":["draft","active","paused","stopped"],"type":"string"},"who":{"properties":{"companySizes":{"items":{"enum":["1-10","11-50","51-200","201-1000","1000+"],"type":"string"},"maxItems":5,"minItems":1,"type":"array"},"countries":{"items":{"maxLength":2,"minLength":2,"type":"string"},"maxItems":30,"minItems":1,"type":"array"},"industries":{"items":{"maxLength":80,"minLength":1,"type":"string"},"maxItems":10,"minItems":1,"type":"array"},"localSearch":{"additionalProperties":false,"properties":{"location":{"maxLength":120,"minLength":1,"type":"string"},"query":{"maxLength":120,"minLength":1,"type":"string"}},"required":["query","location"],"type":"object"},"roles":{"items":{"maxLength":80,"minLength":1,"type":"string"},"maxItems":10,"minItems":1,"type":"array"}},"required":["countries","industries","companySizes","roles"],"type":"object"},"whyNow":{"properties":{"reason":{"maxLength":300,"minLength":1,"type":"string"},"signal":{"enum":["hiring","funding","new_company","launch","news","tech_change","other"],"type":"string"}},"required":["signal","reason"],"type":"object"}},"type":"object"},"UpdateGrowthProjectBudget":{"additionalProperties":false,"properties":{"dailyBudgetMicros":{"anyOf":[{"format":"int64","maximum":1000000000,"minimum":0,"type":"integer"},{"type":"null"}]}},"required":["dailyBudgetMicros"],"type":"object"},"UpdateGrowthProvider":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"metadata":{"additionalProperties":{"maxLength":500,"minLength":1,"type":"string"},"propertyNames":{"maxLength":64,"type":"string"},"type":"object"}},"type":"object"},"UpdateGrowthSendingSchedule":{"additionalProperties":false,"properties":{"schedule":{"anyOf":[{"additionalProperties":false,"properties":{"countryOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays","countryOverrides"],"type":"object"},{"type":"null"}]}},"required":["schedule"],"type":"object"},"UpdateGrowthSettings":{"additionalProperties":false,"properties":{"bookingUrl":{"anyOf":[{"maxLength":2048,"pattern":"^https:\\/\\/","type":"string"},{"type":"null"}]},"countrySendingOverrides":{"additionalProperties":{"additionalProperties":false,"properties":{"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["sendStartHour","sendEndHour","timeZone","sendDays"],"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"followUpDays":{"items":false,"maxItems":2,"minItems":2,"prefixItems":[{"maximum":60,"minimum":1,"type":"integer"},{"maximum":90,"minimum":2,"type":"integer"}],"type":"array"},"mailboxDailyMax":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}]},"monthlyCapMicros":{"anyOf":[{"format":"int64","maximum":1000000000000,"minimum":0,"type":"integer"},{"type":"null"}]},"sendDays":{"anyOf":[{"items":{"maximum":6,"minimum":0,"type":"integer"},"maxItems":7,"minItems":1,"type":"array"},{"type":"null"}]},"sendEndHour":{"maximum":24,"minimum":1,"type":"integer"},"sendStartHour":{"maximum":23,"minimum":0,"type":"integer"},"stopOnReply":{"type":"boolean"},"timeZone":{"anyOf":[{"maxLength":64,"minLength":1,"type":"string"},{"type":"null"}]}},"type":"object"},"UpdateMcpServer":{"properties":{"args":{"anyOf":[{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},{"type":"null"}]},"authentication":{"enum":["headers","oauth"],"type":"string"},"command":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"env":{"anyOf":[{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"maxLength":256,"minLength":1,"type":"string"},"type":"object"},{"type":"null"}]},"name":{"maxLength":100,"minLength":1,"type":"string"},"oauthClientId":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"oauthClientSecret":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"projectId":{"anyOf":[{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},{"type":"null"}]},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"anyOf":[{"anyOf":[{"format":"uri","maxLength":4000,"type":"string"},{"const":"","type":"string"}]},{"type":"null"}]}},"type":"object"},"UpdateMemory":{"properties":{"confidence":{"maximum":1,"minimum":0,"type":"number"},"status":{"enum":["tentative","approved","archived"],"type":"string"},"supersededById":{"type":["string","null"]},"supersededReason":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"value":{"maxLength":10000,"minLength":1,"type":"string"}},"type":"object"},"UpdatePack":{"properties":{"isActive":{"type":"boolean"}},"required":["isActive"],"type":"object"},"UpdatePlugin":{"additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"inputs":{"additionalProperties":{"anyOf":[{"maxLength":16384,"type":"string"},{"type":"null"}]},"propertyNames":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"type":"object"},"manifest":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"id":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"inputs":{"items":{"additionalProperties":false,"properties":{"description":{"maxLength":2000,"type":"string"},"key":{"pattern":"^[A-Z][A-Z0-9_]{0,63}$","type":"string"},"label":{"maxLength":120,"minLength":1,"type":"string"},"required":{"type":"boolean"},"secret":{"type":"boolean"}},"required":["key","label","required","secret"],"type":"object"},"maxItems":32,"type":"array"},"mcpServers":{"items":{"additionalProperties":false,"properties":{"args":{"items":{"maxLength":500,"type":"string"},"maxItems":64,"type":"array"},"command":{"maxLength":100,"type":"string"},"env":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"headers":{"additionalProperties":{"maxLength":2000,"type":"string"},"propertyNames":{"maxLength":100,"minLength":1,"type":"string"},"type":"object"},"name":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"},"transport":{"enum":["stdio","http","sse"],"type":"string"},"url":{"maxLength":2000,"type":"string"}},"required":["name","transport"],"type":"object"},"maxItems":20,"type":"array"},"name":{"maxLength":120,"minLength":1,"type":"string"},"schemaVersion":{"const":1,"type":"number"},"setup":{"maxLength":200000,"type":"string"},"skills":{"items":{"additionalProperties":false,"properties":{"files":{"items":{"additionalProperties":false,"properties":{"content":{"maxLength":200000,"type":"string"},"executable":{"type":"boolean"},"path":{"maxLength":300,"minLength":1,"type":"string"}},"required":["path","content"],"type":"object"},"maxItems":50,"minItems":1,"type":"array"},"slug":{"maxLength":48,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","type":"string"}},"required":["slug","files"],"type":"object"},"maxItems":20,"type":"array"},"source":{"additionalProperties":false,"properties":{"revision":{"maxLength":200,"type":"string"},"url":{"format":"uri","maxLength":2000,"type":"string"}},"required":["url"],"type":"object"},"version":{"maxLength":100,"minLength":1,"type":"string"}},"required":["schemaVersion","id","version","name","description","inputs","mcpServers","skills"],"type":"object"},"projectIds":{"anyOf":[{"items":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"maxItems":1000,"type":"array"},{"type":"null"}]}},"type":"object"},"UpdateProject":{"additionalProperties":false,"properties":{"branchPrefix":{"type":["string","null"]},"brief":{"anyOf":[{"maxLength":5000,"type":"string"},{"type":"null"}]},"claudeMd":{"type":"string"},"costCapMicros":{"anyOf":[{"exclusiveMinimum":0,"format":"int64","maximum":1000000000000,"type":"integer"},{"type":"null"}]},"cycleCap":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}]},"initialProposalRequired":{"type":"boolean"},"machineSize":{"anyOf":[{"enum":["small","standard","large"],"type":"string"},{"type":"null"}]},"maxRevisions":{"anyOf":[{"maximum":100,"minimum":2,"type":"integer"},{"type":"null"}]},"name":{"maxLength":100,"minLength":1,"type":"string"},"previewCommand":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]},"previewPort":{"anyOf":[{"maximum":65535,"minimum":1024,"type":"integer"},{"type":"null"}]},"runtime":{"additionalProperties":false,"properties":{"agents":{"items":{"enum":["claude-code","codex","opencode","goose","qwen-code","pi"],"type":"string"},"maxItems":8,"type":"array"},"aptPackages":{"items":{"maxLength":200,"minLength":1,"type":"string"},"maxItems":64,"type":"array"},"deployment":{"oneOf":[{"properties":{"buildCommand":{"maxLength":10000,"minLength":1,"type":"string"},"kind":{"const":"static","type":"string"},"outDir":{"maxLength":2000,"minLength":1,"type":"string"},"repoId":{"minLength":1,"type":"string"}},"required":["repoId","kind","buildCommand","outDir"],"type":"object"},{"properties":{"kind":{"const":"server","type":"string"},"repoId":{"minLength":1,"type":"string"},"startCommand":{"maxLength":10000,"minLength":1,"type":"string"}},"required":["repoId","kind","startCommand"],"type":"object"}]},"envOverrides":{"additionalProperties":{"maxLength":10000,"type":"string"},"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"type":"object"},"notes":{"items":{"maxLength":2000,"type":"string"},"maxItems":100,"type":"array"},"preview":{"properties":{"command":{"maxLength":10000,"minLength":1,"type":"string"},"port":{"maximum":65535,"minimum":1024,"type":"integer"}},"required":["command","port"],"type":"object"},"services":{"items":{"properties":{"name":{"enum":["mysql","postgres","redis"],"type":"string"},"ready":{"maxLength":10000,"type":"string"},"start":{"maxLength":10000,"type":"string"},"stop":{"maxLength":10000,"type":"string"}},"required":["name"],"type":"object"},"maxItems":3,"type":"array"},"setup":{"maxLength":50000,"type":"string"},"toolchain":{"additionalProperties":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"number"},{"type":"boolean"}]},"properties":{"bun":{"type":["string","number"]},"node":{"type":["string","number"]},"playwright":{"type":"boolean"},"python":{"type":["string","number"]}},"type":"object"},"verifyCommand":{"maxLength":10000,"type":"string"}},"type":"object"},"sources":{"additionalProperties":false,"properties":{"github":{"type":"boolean"},"linear":{"type":"boolean"}},"type":"object"},"stack":{"maxLength":200,"minLength":1,"type":"string"},"tier":{"anyOf":[{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"},{"type":"null"}]},"useWorkspaceBrand":{"type":"boolean"},"verifyCommand":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]}},"type":"object"},"UpdateProjectRepo":{"additionalProperties":false,"properties":{"defaultBranch":{"maxLength":200,"minLength":1,"type":"string"},"label":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}]},"previewCommand":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]},"previewPort":{"anyOf":[{"maximum":65535,"minimum":1024,"type":"integer"},{"type":"null"}]},"setupCommand":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]},"verifyCommand":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}]}},"type":"object"},"UpdateReviewComment":{"properties":{"resolution":{"enum":["open","resolved"],"type":"string"}},"required":["resolution"],"type":"object"},"UpdateSecretsConfig":{"properties":{"config":{"additionalProperties":{},"description":"For an Infisical config, the fields to change (clientId, clientSecret, projectId, environment, siteUrl, secretPath, recursive); a field left out keeps its stored value. For a manual config, the whole config.","propertyNames":{"type":"string"},"type":"object"},"envFilter":{"type":["string","null"]},"isActive":{"type":"boolean"},"label":{"maxLength":100,"minLength":1,"type":"string"}},"type":"object"},"UpdateTask":{"properties":{"description":{"maxLength":5000,"minLength":1,"type":"string"},"doneWhen":{"anyOf":[{"maxLength":1000,"minLength":1,"pattern":"^[^\\r\\n]+$","type":"string"},{"type":"null"}]},"status":{"enum":["queued","blocked","building","testing","reviewing","approved","merging","merged","pr_created","ci_passing","done","failed"],"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"type":"object"},"UploadGrowthLeadList":{"additionalProperties":false,"properties":{"csv":{"maxLength":2000000,"minLength":1,"type":"string"},"fileName":{"maxLength":255,"minLength":1,"type":"string"}},"required":["fileName","csv"],"type":"object"},"UpsertBillingProfile":{"additionalProperties":false,"properties":{"address":{"maxLength":1000,"minLength":1,"type":"string"},"brandColor":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"contactEmail":{"anyOf":[{"format":"email","maxLength":320,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},{"type":"null"}]},"defaultPaymentTerms":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]},"invoiceFooter":{"anyOf":[{"maxLength":2000,"minLength":1,"type":"string"},{"type":"null"}]},"legalName":{"maxLength":200,"minLength":1,"type":"string"},"logo":{"anyOf":[{"additionalProperties":false,"properties":{"data":{"maxLength":699052,"minLength":1,"pattern":"^[A-Za-z0-9+/]+={0,2}$","type":"string"},"mediaType":{"enum":["image/png","image/jpeg"],"type":"string"}},"required":["mediaType","data"],"type":"object"},{"type":"null"}]},"taxId":{"anyOf":[{"maxLength":100,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["legalName","address"],"type":"object"},"UpsertDeliverable":{"additionalProperties":false,"properties":{"clientStatus":{"enum":["draft","in_review","delivered","accepted"],"type":"string"},"dueDate":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"summary":{"anyOf":[{"maxLength":10000,"type":"string"},{"type":"null"}]},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title"],"type":"object"},"UpsertProvider":{"properties":{"apiKey":{"type":["string","null"]},"baseUrl":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"metadata":{"anyOf":[{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},{"type":"null"}]},"provider":{"enum":["openai","anthropic","openrouter","moonshot","deepseek","zai","google","xai","mistral","groq"],"type":"string"}},"required":["provider"],"type":"object"},"UpsertSecretEntries":{"properties":{"entries":{"items":{"properties":{"key":{"maxLength":256,"minLength":1,"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","type":"string"},"source":{"maxLength":512,"minLength":1,"type":"string"},"value":{"type":"string"}},"required":["key","value"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"}},"required":["entries"],"type":"object"},"UpsertSettings":{"additionalProperties":false,"properties":{"coder":{"anyOf":[{"enum":["claude-code","codex","opencode","goose","qwen-code","pi","hlix"],"type":"string"},{"type":"null"}]},"effort":{"anyOf":[{"enum":["low","medium","high"],"type":"string"},{"type":"null"}]},"funding":{"anyOf":[{"additionalProperties":false,"properties":{"accountId":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]},"mode":{"enum":["managed","api_key","subscription"],"type":"string"},"nativeModel":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]},"providerId":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]}},"required":["mode","accountId","nativeModel"],"type":"object"},{"type":"null"}]},"maxParallelCycles":{"anyOf":[{"maximum":20,"minimum":1,"type":"integer"},{"type":"null"}]},"model":{"anyOf":[{"maxLength":200,"minLength":1,"type":"string"},{"type":"null"}]}},"type":"object"},"UsageLimit":{"properties":{"capMillicents":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["capMillicents"],"type":"object"},"UsageLimitResponse":{"properties":{"capMillicents":{"type":["number","null"]}},"required":["capMillicents"],"type":"object"},"UsageReport":{"properties":{"generatedAt":{"type":"string"},"period":{"properties":{"days":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to","days"],"type":"object"},"usage":{"properties":{"costMicros":{"format":"int64","maximum":9007199254740991,"minimum":0,"type":"integer"},"runs":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"tokensIn":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"tokensOut":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["costMicros","runs","tokensIn","tokensOut"],"type":"object"}},"required":["generatedAt","period","usage"],"type":"object"},"ValidationError":{"properties":{"error":{"properties":{"message":{"type":"string"},"name":{"type":"string"}},"required":["name","message"],"type":"object"},"success":{"const":false,"type":"boolean"}},"required":["success","error"],"type":"object"},"VoidBillable":{"additionalProperties":false,"properties":{"reason":{"maxLength":500,"minLength":1,"type":"string"}},"required":["reason"],"type":"object"},"VoidInvoice":{"additionalProperties":false,"properties":{"reason":{"maxLength":500,"minLength":1,"type":"string"}},"required":["reason"],"type":"object"},"WebProviderState":{"properties":{"capabilities":{"items":{"enum":["search","read"],"type":"string"},"type":"array"},"credentialSource":{"enum":["organization","hlix"],"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"},"hasApiKey":{"type":"boolean"},"label":{"type":"string"},"platformAvailable":{"type":"boolean"},"provider":{"enum":["jina","firecrawl"],"type":"string"}},"required":["provider","label","description","capabilities","hasApiKey","enabled","credentialSource","platformAvailable"],"type":"object"},"WireMessage":{"properties":{"agentId":{"type":["string","null"]},"author":{"anyOf":[{"properties":{"image":{"type":["string","null"]},"name":{"type":["string","null"]},"role":{"type":["string","null"]},"userId":{"type":"string"}},"required":["userId","name","image","role"],"type":"object"},{"type":"null"}]},"content":{"type":"string"},"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"delivery":{"const":"queued","type":"string"},"id":{"type":"string"},"metadata":{"properties":{"agentId":{"type":["string","null"]},"requestId":{"type":["string","null"]},"runId":{"type":["string","null"]},"traceId":{"type":["string","null"]},"userId":{"type":["string","null"]}},"required":["requestId","traceId","runId","userId","agentId"],"type":"object"},"parts":{"items":{"oneOf":[{"properties":{"text":{"type":"string"},"type":{"const":"text","type":"string"}},"required":["type","text"],"type":"object"},{"properties":{"text":{"type":"string"},"type":{"const":"reasoning","type":"string"}},"required":["type","text"],"type":"object"},{"properties":{"producer":{"const":"roadmap-plan","type":"string"},"spec":{"additionalProperties":false,"properties":{"components":{"items":{"additionalProperties":{},"properties":{"component":{"enum":["Column","Row","Card","Heading","Text","Metric","Status","Progress","Link","Steps","Suggestions","Divider"],"type":"string"},"id":{"minLength":1,"type":"string"}},"required":["id","component"],"type":"object"},"maxItems":200,"minItems":1,"type":"array"},"data":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"surfaceId":{"maxLength":128,"minLength":1,"type":"string"}},"required":["surfaceId","components"],"type":"object"},"type":{"const":"presentation","type":"string"}},"required":["type","producer","spec"],"type":"object"},{"properties":{"error":{"type":"string"},"input":{},"output":{},"state":{"enum":["pending","done","error"],"type":"string"},"toolCallId":{"minLength":1,"type":"string"},"toolName":{"minLength":1,"type":"string"},"type":{"const":"tool","type":"string"}},"required":["type","toolCallId","toolName","state"],"type":"object"}]},"type":"array"},"replyTo":{"type":"string"},"role":{"type":"string"},"status":{"enum":["complete","error","aborted"],"type":"string"}},"required":["id","cycleId","agentId","role","content","metadata","author","createdAt"],"type":"object"},"WireMessagePage":{"properties":{"activeTurnId":{"type":["string","null"]},"messages":{"items":{"properties":{"agentId":{"type":["string","null"]},"author":{"anyOf":[{"properties":{"image":{"type":["string","null"]},"name":{"type":["string","null"]},"role":{"type":["string","null"]},"userId":{"type":"string"}},"required":["userId","name","image","role"],"type":"object"},{"type":"null"}]},"content":{"type":"string"},"createdAt":{"type":"string"},"cycleId":{"type":["string","null"]},"delivery":{"const":"queued","type":"string"},"id":{"type":"string"},"metadata":{"properties":{"agentId":{"type":["string","null"]},"requestId":{"type":["string","null"]},"runId":{"type":["string","null"]},"traceId":{"type":["string","null"]},"userId":{"type":["string","null"]}},"required":["requestId","traceId","runId","userId","agentId"],"type":"object"},"parts":{"items":{"oneOf":[{"properties":{"text":{"type":"string"},"type":{"const":"text","type":"string"}},"required":["type","text"],"type":"object"},{"properties":{"text":{"type":"string"},"type":{"const":"reasoning","type":"string"}},"required":["type","text"],"type":"object"},{"properties":{"producer":{"const":"roadmap-plan","type":"string"},"spec":{"additionalProperties":false,"properties":{"components":{"items":{"additionalProperties":{},"properties":{"component":{"enum":["Column","Row","Card","Heading","Text","Metric","Status","Progress","Link","Steps","Suggestions","Divider"],"type":"string"},"id":{"minLength":1,"type":"string"}},"required":["id","component"],"type":"object"},"maxItems":200,"minItems":1,"type":"array"},"data":{"additionalProperties":{},"propertyNames":{"type":"string"},"type":"object"},"surfaceId":{"maxLength":128,"minLength":1,"type":"string"}},"required":["surfaceId","components"],"type":"object"},"type":{"const":"presentation","type":"string"}},"required":["type","producer","spec"],"type":"object"},{"properties":{"error":{"type":"string"},"input":{},"output":{},"state":{"enum":["pending","done","error"],"type":"string"},"toolCallId":{"minLength":1,"type":"string"},"toolName":{"minLength":1,"type":"string"},"type":{"const":"tool","type":"string"}},"required":["type","toolCallId","toolName","state"],"type":"object"}]},"type":"array"},"replyTo":{"type":"string"},"role":{"type":"string"},"status":{"enum":["complete","error","aborted"],"type":"string"}},"required":["id","cycleId","agentId","role","content","metadata","author","createdAt"],"type":"object"},"type":"array"},"nextCursor":{"type":["string","null"]}},"required":["messages","nextCursor"],"type":"object"},"WorkspaceBrandKitState":{"properties":{"draft":{"anyOf":[{"properties":{"colors":{"properties":{"accent":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"background":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"primary":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]}},"required":["primary","accent","background","text"],"type":"object"},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"extractedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"headerMode":{"enum":["logo-and-name","logo-only"],"type":"string"},"iconTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"logoTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"provenance":{"additionalProperties":{"enum":["observed","inferred","edited"],"type":"string"},"default":{},"propertyNames":{"maxLength":80,"type":"string"},"type":"object"},"sourceUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"tagline":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"typography":{"properties":{"body":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]},"heading":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]}},"required":["heading","body"],"type":"object"},"voice":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"warnings":{"items":{"maxLength":300,"type":"string"},"maxItems":12,"type":"array"}},"required":["name","tagline","logoUrl","colors","typography","voice","description","sourceUrl","extractedAt","warnings"],"type":"object"},{"type":"null"}]},"portalEnabled":{"type":"boolean"},"published":{"anyOf":[{"properties":{"colors":{"properties":{"accent":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"background":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"primary":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]},"text":{"anyOf":[{"pattern":"^#[0-9a-fA-F]{6}$","type":"string"},{"type":"null"}]}},"required":["primary","accent","background","text"],"type":"object"},"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"extractedAt":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$","type":"string"},{"type":"null"}]},"headerMode":{"enum":["logo-and-name","logo-only"],"type":"string"},"iconTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"logoTone":{"anyOf":[{"enum":["light","dark","solid"],"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"name":{"maxLength":120,"minLength":1,"type":"string"},"provenance":{"additionalProperties":{"enum":["observed","inferred","edited"],"type":"string"},"default":{},"propertyNames":{"maxLength":80,"type":"string"},"type":"object"},"sourceUrl":{"anyOf":[{"format":"uri","maxLength":2048,"type":"string"},{"type":"null"}]},"tagline":{"anyOf":[{"maxLength":240,"type":"string"},{"type":"null"}]},"typography":{"properties":{"body":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]},"heading":{"anyOf":[{"maxLength":100,"pattern":"^[\\p{L}\\p{N} _.,'-]+$","type":"string"},{"type":"null"}]}},"required":["heading","body"],"type":"object"},"voice":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}]},"warnings":{"items":{"maxLength":300,"type":"string"},"maxItems":12,"type":"array"}},"required":["name","tagline","logoUrl","colors","typography","voice","description","sourceUrl","extractedAt","warnings"],"type":"object"},{"type":"null"}]},"publishedAt":{"type":["string","null"]},"revision":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["draft","published","portalEnabled","publishedAt","revision"],"type":"object"},"WorkspaceExecResult":{"properties":{"exitCode":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"stderr":{"type":"string"},"stdout":{"type":"string"}},"required":["exitCode","stdout","stderr"],"type":"object"},"WorkspaceExtraUsage":{"properties":{"allowed":{"type":"boolean"},"canEnable":{"type":"boolean"},"cannotEnableReason":{"anyOf":[{"enum":["payment_method_required","not_metered","upgrade_required"],"type":"string"},{"type":"null"}]},"setting":{"type":["boolean","null"]},"source":{"enum":["project","organization","default"],"type":"string"}},"required":["allowed","source","canEnable","cannotEnableReason","setting"],"type":"object"},"WorkspaceFsResult":{"properties":{"result":{"anyOf":[{"type":"null"},{"type":"boolean"},{"properties":{"content":{"type":"string"},"encoding":{"enum":["utf8","base64"],"type":"string"}},"required":["content","encoding"],"type":"object"},{"items":{"properties":{"isSymlink":{"type":"boolean"},"name":{"type":"string"},"size":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"symlinkTarget":{"type":"string"},"type":{"enum":["file","directory"],"type":"string"}},"required":["name","type"],"type":"object"},"type":"array"},{"properties":{"createdAt":{"type":"string"},"mimeType":{"type":"string"},"modifiedAt":{"type":"string"},"name":{"type":"string"},"path":{"type":"string"},"size":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"type":{"enum":["file","directory"],"type":"string"}},"required":["name","path","type","size","createdAt","modifiedAt"],"type":"object"}]}},"required":["result"],"type":"object"},"WorkspaceHosting":{"properties":{"canCreateWorkspace":{"type":"boolean"},"currentRegion":{"enum":["eu","us"],"type":"string"},"hostingRegion":{"enum":["eu","us"],"type":"string"},"identityRegion":{"enum":["eu","us"],"type":"string"},"regions":{"items":{"properties":{"apiUrl":{"type":["string","null"]},"appUrl":{"type":["string","null"]},"available":{"type":"boolean"},"id":{"enum":["eu","us"],"type":"string"}},"required":["id","available","appUrl","apiUrl"],"type":"object"},"type":"array"},"sharedLogin":{"type":"boolean"}},"required":["currentRegion","identityRegion","sharedLogin","regions","hostingRegion","canCreateWorkspace"],"type":"object"},"WorkspaceMembership":{"properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug","role"],"type":"object"},"WorkspacePortal":{"properties":{"agencyName":{"type":"string"},"agencySlug":{"type":"string"},"canCreateProjects":{"type":"boolean"},"href":{"type":"string"},"logo":{"type":["string","null"]},"organizationId":{"type":"string"},"role":{"const":"client","type":"string"}},"required":["organizationId","agencySlug","agencyName","logo","href","role","canCreateProjects"],"type":"object"},"WorkspacePortalClient":{"properties":{"canCreateProjects":{"type":"boolean"},"canCreateProjectsOverride":{"type":["boolean","null"]},"clientAccountIds":{"items":{"type":"string"},"type":"array"},"email":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"},"projectGrants":{"items":{"properties":{"canAccessCanvas":{"type":"boolean"},"canMessage":{"type":"boolean"},"projectId":{"type":"string"},"showProjectInsights":{"type":"boolean"}},"required":["projectId","canMessage","canAccessCanvas","showProjectInsights"],"type":"object"},"type":"array"},"role":{"const":"client","type":"string"},"userId":{"type":"string"}},"required":["userId","name","email","role","canCreateProjects","canCreateProjectsOverride","image","clientAccountIds","projectGrants"],"type":"object"},"WorkspacePortalClientPermissions":{"properties":{"canCreateProjects":{"type":"boolean"},"canCreateProjectsOverride":{"type":["boolean","null"]},"email":{"type":"string"},"name":{"type":"string"},"role":{"const":"client","type":"string"},"userId":{"type":"string"}},"required":["userId","name","email","role","canCreateProjects","canCreateProjectsOverride"],"type":"object"},"WorkspacePortalInvitation":{"properties":{"canCreateProjects":{"type":["boolean","null"]},"clientAccountId":{"type":["string","null"]},"email":{"type":"string"},"expiresAt":{"type":"string"},"href":{"type":"string"},"id":{"type":"string"},"projectGrants":{"items":{"properties":{"canAccessCanvas":{"type":"boolean"},"canMessage":{"type":"boolean"},"projectId":{"type":"string"},"showProjectInsights":{"type":"boolean"}},"required":["projectId","canMessage","canAccessCanvas","showProjectInsights"],"type":"object"},"type":"array"},"status":{"type":"string"}},"required":["id","email","status","expiresAt","canCreateProjects","clientAccountId","projectGrants","href"],"type":"object"},"WorkspacePortalInvitationCreated":{"properties":{"acceptUrl":{"type":"string"},"canCreateProjects":{"type":["boolean","null"]},"clientAccountId":{"type":["string","null"]},"email":{"type":"string"},"emailSent":{"type":"boolean"},"expiresAt":{"type":"string"},"href":{"type":"string"},"id":{"type":"string"},"projectGrants":{"items":{"properties":{"canAccessCanvas":{"type":"boolean"},"canMessage":{"type":"boolean"},"projectId":{"type":"string"},"showProjectInsights":{"type":"boolean"}},"required":["projectId","canMessage","canAccessCanvas","showProjectInsights"],"type":"object"},"type":"array"},"status":{"type":"string"}},"required":["id","email","status","expiresAt","canCreateProjects","clientAccountId","projectGrants","href","acceptUrl","emailSent"],"type":"object"},"WorkspacePortalMember":{"additionalProperties":false,"properties":{"canCreateProjects":{"type":["boolean","null"]}},"required":["canCreateProjects"],"type":"object"},"WorkspacePortalSettings":{"additionalProperties":false,"properties":{"defaultCanCreateProjects":{"type":"boolean"}},"required":["defaultCanCreateProjects"],"type":"object"},"WorkspaceTaskCharges":{"properties":{"billingMode":{"enum":["metered","tasks"],"type":"string"},"charges":{"items":{"properties":{"createdAt":{"type":"string"},"credits":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"cycleId":{"type":"string"},"id":{"type":"string"},"projectId":{"type":"string"},"projectName":{"type":["string","null"]},"reason":{"enum":["accepted","extra_rework"],"type":"string"},"round":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"size":{"anyOf":[{"enum":["simple","medium","complex"],"type":"string"},{"type":"null"}]},"status":{"enum":["shadow","sent"],"type":"string"},"taskId":{"type":"string"},"taskTitle":{"type":["string","null"]},"tier":{"enum":["auto","frontier","frontierMax","ownSubscription"],"type":"string"}},"required":["id","projectId","cycleId","taskId","taskTitle","tier","credits","size","reason","round","status","createdAt","projectName"],"type":"object"},"type":"array"}},"required":["billingMode","charges"],"type":"object"},"WorkspaceUsage":{"properties":{"byDay":{"items":{"properties":{"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"The price in micros of the usage (cost plus markup). In metered billing it is what the workspace is charged and what the meter is sent; in task billing the workspace pays per accepted task, so it is the price equivalent of the usage, not a charge. Requests on the workspace's own key or login are in no total. Null when a request has no price yet."},"day":{"type":"string"},"incompleteUsageRuns":{"type":"number"}},"required":["day","costMicros","incompleteUsageRuns"],"type":"object"},"type":"array"},"byModel":{"items":{"properties":{"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"The price in micros of the usage (cost plus markup). In metered billing it is what the workspace is charged and what the meter is sent; in task billing the workspace pays per accepted task, so it is the price equivalent of the usage, not a charge. Requests on the workspace's own key or login are in no total. Null when a request has no price yet."},"model":{"type":"string"},"runs":{"type":"number"}},"required":["model","costMicros","runs"],"type":"object"},"type":"array"},"byProject":{"items":{"properties":{"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"The price in micros of the usage (cost plus markup). In metered billing it is what the workspace is charged and what the meter is sent; in task billing the workspace pays per accepted task, so it is the price equivalent of the usage, not a charge. Requests on the workspace's own key or login are in no total. Null when a request has no price yet."},"projectId":{"type":"string"},"projectName":{"type":"string"},"runs":{"type":"number"}},"required":["projectId","projectName","costMicros","runs"],"type":"object"},"type":"array"},"entitlement":{"anyOf":[{"properties":{"kind":{"const":"override","type":"string"}},"required":["kind"],"type":"object"},{"properties":{"kind":{"const":"subscription","type":"string"},"subscription":{"properties":{"creditedMillicents":{"type":["number","null"]},"currentPeriodEnd":{"type":["string","null"]},"includedCreditMillicents":{"type":["number","null"]},"meteredMillicents":{"type":["number","null"]},"orgCapMillicents":{"type":["number","null"]},"planName":{"type":["string","null"]},"planSlug":{"anyOf":[{"enum":["free","pro","business","scale"],"type":"string"},{"type":"null"}]},"rolledOverMillicents":{"type":["number","null"]},"status":{"type":["string","null"]}},"required":["planName","planSlug","status","currentPeriodEnd","includedCreditMillicents","orgCapMillicents","meteredMillicents","rolledOverMillicents","creditedMillicents"],"type":"object"}},"required":["kind","subscription"],"type":"object"},{"properties":{"credit":{"properties":{"creditCapMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"creditUsedMicros":{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectLimit":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"resetsAt":{"type":"string"}},"required":["creditUsedMicros","creditCapMicros","resetsAt","projectLimit"],"type":"object"},"kind":{"const":"free","type":"string"},"orgCapOnlyMillicents":{"type":["number","null"]}},"required":["kind","credit","orgCapOnlyMillicents"],"type":"object"},{"properties":{"kind":{"const":"none","type":"string"},"orgCapOnlyMillicents":{"type":["number","null"]},"reason":{"const":"not_configured","type":"string"}},"required":["kind","reason","orgCapOnlyMillicents"],"type":"object"},{"properties":{"kind":{"const":"unknown","type":"string"},"reason":{"enum":["provider_outage","usage_read_failed"],"type":"string"}},"required":["kind","reason"],"type":"object"}]},"environmentRuntimeCostMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"The price in micros of machine time and environment storage in the window (cost plus markup). In metered billing it is what the workspace is charged and what the meter is sent; in task billing the workspace pays per accepted task, so it is the price equivalent of the usage, not a charge."},"runs":{"items":{"properties":{"accountingSource":{"anyOf":[{"enum":["proxy","driver"],"type":"string"},{"type":"null"}]},"agentKind":{"enum":["plan","build","review","project_manager"],"type":"string"},"billedTo":{"anyOf":[{"enum":["workspace_key","hlix"],"type":"string"},{"type":"null"}]},"coderAccountId":{"type":["string","null"]},"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"What this run is priced at in micros (Hlix-funded runs at cost plus markup). In metered billing it is what the workspace is charged and what the meter is sent; in task billing the workspace pays per accepted task, so it is the price equivalent of the usage, not a charge. A run on the workspace's own key shows its own cost, flagged by billedTo; a run on a coding login has none."},"credentialKind":{"anyOf":[{"enum":["api_key","subscription"],"type":"string"},{"type":"null"}]},"fundingMode":{"anyOf":[{"enum":["managed","api_key","subscription"],"type":"string"},{"type":"null"}]},"id":{"type":"string"},"model":{"type":"string"},"projectName":{"type":["string","null"]},"promptKey":{"type":["string","null"]},"startedAt":{"type":"string"},"tokensIn":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"tokensOut":{"anyOf":[{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}]},"usageCompleteness":{"anyOf":[{"enum":["unknown","partial","complete"],"type":"string"},{"type":"null"}]}},"required":["id","startedAt","agentKind","promptKey","billedTo","fundingMode","coderAccountId","credentialKind","accountingSource","usageCompleteness","tokensIn","tokensOut","model","costMicros","projectName"],"type":"object"},"type":"array"},"totals":{"properties":{"costMicros":{"anyOf":[{"format":"int64","maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},{"type":"null"}],"description":"The price in micros of the usage (cost plus markup). In metered billing it is what the workspace is charged and what the meter is sent; in task billing the workspace pays per accepted task, so it is the price equivalent of the usage, not a charge. Requests on the workspace's own key or login are in no total. Null when a request has no price yet."},"incompleteUsageRuns":{"type":"number"},"runs":{"type":"number"},"tokensIn":{"type":"number"},"tokensOut":{"type":"number"}},"required":["runs","costMicros","tokensIn","tokensOut","incompleteUsageRuns"],"type":"object"}},"required":["totals","byProject","byModel","byDay","runs","entitlement","environmentRuntimeCostMicros"],"type":"object"},"WriteWorkingFile":{"properties":{"base":{"anyOf":[{"pattern":"^[0-9a-f]{40}$","type":"string"},{"type":"null"}]},"content":{"type":"string"},"cycleId":{"minLength":1,"type":"string"},"path":{"minLength":1,"type":"string"},"repo":{"type":"string"}},"required":["cycleId","path","content","base"],"type":"object"}},"securitySchemes":{"apiKey":{"description":"An API key issued through `/v1/api/auth/api-key/*`. Browser clients can use their session cookie instead.","in":"header","name":"x-api-key","type":"apiKey"},"sessionCookie":{"description":"The complete session Cookie header issued by sign-in at the selected API host. Cookie names vary by hosting region and environment; preserve the issued name and value. Browsers send these HTTP-only cookies automatically. Session-only operations require this user session and do not accept an API key.","in":"header","name":"Cookie","type":"apiKey"}}},"info":{"description":"Explore the Hlix API for projects, agent teams, and delivery workflows. Authenticate with `x-api-key` and select a Workspace with `X-Organization-Id`. Session-only operations require a signed-in user session. [Authentication setup](/getting-started/authentication/).","title":"API reference","version":"1.0.0"},"openapi":"3.1.0","paths":{"/v1/api/agent-runs/cycle/{cycleId}":{"get":{"operationId":"listCycleAgentRuns","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentRunSummary"},"type":"array"}}},"description":"Cost and timing per run, start-ordered. Snapshots are not included."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the runs of every task in a cycle","tags":["agent-runs"]}},"/v1/api/agent-runs/project/{projectId}":{"get":{"operationId":"listProjectAgentRuns","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentRunSummary"},"type":"array"}}},"description":"Task-execution runs plus the planning and chat runs attributed to the project directly."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List every run of a project","tags":["agent-runs"]}},"/v1/api/agent-runs/task/{taskId}":{"get":{"operationId":"listTaskAgentRuns","parameters":[{"in":"path","name":"taskId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentRun"},"type":"array"}}},"description":"Every run on the task, whole rows. Empty when the task never ran."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the runs recorded against one task","tags":["agent-runs"]}},"/v1/api/agent-runs/task/{taskId}/timeline":{"get":{"operationId":"listTaskAgentRunTimeline","parameters":[{"in":"path","name":"taskId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentRun"},"type":"array"}}},"description":"The same rows as the task list, ordered oldest-first by start time."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List one task's runs in start order","tags":["agent-runs"]}},"/v1/api/agent-runs/{id}/snapshot":{"get":{"operationId":"getAgentRunSnapshot","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRunSnapshot"}}},"description":"The run, with the text its coder recorded."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such run in this workspace."}},"summary":"Get one run's recorded input and output","tags":["agent-runs"]}},"/v1/api/agents":{"get":{"operationId":"listAgents","parameters":[{"description":"With `projectId`, returns that project's agents and workspace-wide agents. Without it, returns all active workspace agents. Deactivated agents remain readable by ID.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Agent"},"type":"array"}}},"description":"The matching agents."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspace's agents","tags":["agents"]},"post":{"operationId":"createAgent","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgent"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"The stored agent. `createdByUserId` and `isBuiltIn` are assigned by the server and cannot be supplied by callers."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Creating a workspace-wide agent requires owner or admin access. Creating a project-scoped agent requires `manage` access to that project. Client collaborators cannot create agents."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such agent in this workspace — or no such project to scope it to."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Another agent in this scope already holds that name, or the scope already has a triage agent — there is exactly one per scope."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agent could not be written."}},"summary":"Create an agent","tags":["agents"]}},"/v1/api/agents/avatar-image":{"get":{"operationId":"getAgentAvatarImage","parameters":[{"description":"The generated avatar key returned by this workspace.","in":"query","name":"key","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentAvatarImage"}}},"description":"Image data URL."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No accessible avatar image exists for this key."}},"summary":"Read a generated avatar in this workspace","tags":["agents"]},"post":{"operationId":"generateAgentAvatar","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateAgentAvatar"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratedAgentAvatar"}}},"description":"Preview image and persistent avatar key. Save the key on an agent to apply it."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only agency members may generate avatars; client collaborators cannot."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Image generation refused by policy."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Image generation failed."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Image generation is disabled."}},"summary":"Generate a custom avatar using the Hlix avatar skill","tags":["agents"]}},"/v1/api/agents/roles":{"get":{"operationId":"listAgentRoles","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Role"},"type":"array"}}},"description":"The built-in roles, read-only. A workspace's own agents are listed by `listAgents`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the role library the project manager hires from","tags":["agents"]}},"/v1/api/agents/{id}":{"get":{"operationId":"getAgent","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"The agent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such agent in this workspace — or no such project to scope it to."}},"summary":"Get one agent","tags":["agents"]},"patch":{"operationId":"updateAgent","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAgent"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"The updated agent."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Creating a workspace-wide agent requires owner or admin access. Creating a project-scoped agent requires `manage` access to that project. Client collaborators cannot create agents."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such agent in this workspace — or no such project to scope it to."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Built-in agent definitions cannot be edited; fork the agent to customize it. This status also covers a duplicate agent name or a second triage agent in the same scope."}},"summary":"Update an agent","tags":["agents"]}},"/v1/api/agents/{id}/deactivate":{"post":{"operationId":"deactivateAgent","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"The agent is now inactive. Built-in agents can be deactivated without changing their definitions."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Creating a workspace-wide agent requires owner or admin access. Creating a project-scoped agent requires `manage` access to that project. Client collaborators cannot create agents."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such agent in this workspace — or no such project to scope it to."}},"summary":"Deactivate an agent","tags":["agents"]}},"/v1/api/agents/{id}/fork":{"post":{"operationId":"forkAgent","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForkAgent"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}},"description":"The forked agent. `duty` is inherited, allowing a project-specific triage agent. `isBuiltIn` and authorship are not inherited; the fork is a custom agent."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Creating a workspace-wide agent requires owner or admin access. Creating a project-scoped agent requires `manage` access to that project. Client collaborators cannot create agents."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such agent in this workspace — or no such project to scope it to."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Another agent in this scope already holds that name, or the scope already has a triage agent — there is exactly one per scope."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The fork could not be written."}},"summary":"Fork an agent into a new custom one","tags":["agents"]}},"/v1/api/ai/assets/{key}":{"get":{"operationId":"getAiAsset","parameters":[{"in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Set to `1` to download artifact bytes when a signed URL cannot be issued. The default JSON response then provides this route with `download=1` in its `url`. When a signed URL is available, the endpoint returns that URL as JSON regardless of this parameter. Other values, including an omitted parameter, return JSON.","in":"query","name":"download","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedArtifactUrl"}},"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"A signed URL where this deployment can issue one, otherwise this same route with `download=1` already appended — following it returns the object's own bytes."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such artifact. A key outside this workspace's own AI storage answers the same 404 — its existence is not confirmed."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The download could not be prepared."}},"summary":"Fetch one stored AI artifact","tags":["ai"]}},"/v1/api/ai/batches":{"post":{"operationId":"submitAiBatch","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitBatch"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiBatchAccepted"}}},"description":"The provider accepted the batch. Results are collected by scheduled polling. Reusing the same `idempotencyKey` returns the original job without another provider request."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not an owner or admin of this workspace — or a client collaborator, for whom the whole family is closed."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The `projectId` names no project in this workspace. A project belonging to another workspace answers identically (`code: \"project_not_found\"`) — its existence is not confirmed."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiInputRefused"}}},"description":"The request was understood and refused — a blocked URL, a source that is not a parseable document, an artifact key outside this workspace, or a policy this capability will not waive."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiUpstreamFailed"}}},"description":"The AI provider could not complete the request. The provider's own message is deliberately not forwarded."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiCapabilityDisabled"}}},"description":"This capability is switched off for this deployment."}},"summary":"Submit a batch of offline requests","tags":["ai"]}},"/v1/api/ai/batches/{id}":{"get":{"operationId":"getAiBatch","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Page size, 1–1000; default 200. Invalid values are rejected rather than clamped.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"The previous page's `nextCursor`, verbatim — the last `customId` it returned. Omit for the first page.","in":"query","name":"after","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiBatchRead"}}},"description":"The batch and one page of items, ordered by `customId`. Each item references its stored result rather than including the completion. `nextCursor` is null on the last page."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The query failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such batch in this workspace."}},"summary":"Read one batch and a page of its items","tags":["ai"]}},"/v1/api/ai/batches/{id}/poll":{"post":{"operationId":"pollAiBatch","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiBatchPoll"}}},"description":"The batch after polling. `polled` is false if the batch was already settled or never submitted, in which case the provider was not contacted. Scheduled polling normally collects results automatically."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such batch in this workspace."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiUpstreamFailed"}}},"description":"The AI provider could not complete the request. The provider's own message is deliberately not forwarded."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiCapabilityDisabled"}}},"description":"This capability is switched off for this deployment."}},"summary":"Poll one batch now","tags":["ai"]}},"/v1/api/ai/documents":{"get":{"operationId":"listAiDocuments","parameters":[{"description":"How many rows to return, newest first. Clamped to 200; anything unparseable falls back to 50.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AiDocument"},"type":"array"}}},"description":"The workspace's most recent parses, newest first. The extraction itself is not inlined — read one document for a followable address."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List recently parsed documents","tags":["ai"]},"post":{"operationId":"parseAiDocument","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseDocument"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiDocumentParsed"}}},"description":"The parse ran and the row is final. `reused` is true when the same bytes through the same engine had already been parsed — a lookup, not a second bill. A document declared `critical` lands `review_required`, not `succeeded`."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Either the `projectId` names no project in this workspace (`code: \"project_not_found\"`, and a project belonging to another workspace answers identically), or the parsed row could not be read back."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiInputRefused"}}},"description":"The request was understood and refused — a blocked URL, a source that is not a parseable document, an artifact key outside this workspace, or a policy this capability will not waive."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiUpstreamFailed"}}},"description":"The AI provider could not complete the request. The provider's own message is deliberately not forwarded."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiCapabilityDisabled"}}},"description":"This capability is switched off for this deployment."}},"summary":"Parse a document into markdown","tags":["ai"]}},"/v1/api/ai/documents/{id}":{"get":{"operationId":"getAiDocument","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiDocumentRead"}}},"description":"The row, plus `extractedUrl` — a followable address for the extracted markdown, or null while there is nothing to fetch."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such document in this workspace."}},"summary":"Read one parsed document","tags":["ai"]}},"/v1/api/ai/media/analyze":{"post":{"operationId":"analyzeAiMedia","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeMedia"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiTextResult"}}},"description":"The answer and what it consumed."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The `projectId` names no project in this workspace. A project belonging to another workspace answers identically (`code: \"project_not_found\"`) — its existence is not confirmed."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiInputRefused"}}},"description":"The request was understood and refused — a blocked URL, a source that is not a parseable document, an artifact key outside this workspace, or a policy this capability will not waive."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiUpstreamFailed"}}},"description":"The AI provider could not complete the request. The provider's own message is deliberately not forwarded."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiCapabilityDisabled"}}},"description":"This capability is switched off for this deployment."}},"summary":"Ask a question about an image or a video","tags":["ai"]}},"/v1/api/ai/media/images":{"post":{"operationId":"generateAiImages","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateImages"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiGeneratedImages"}}},"description":"Stored images. The provider may return fewer images than requested. `keys` lists the stored images and `urls` uses the same ordering."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The `projectId` names no project in this workspace. A project belonging to another workspace answers identically (`code: \"project_not_found\"`) — its existence is not confirmed."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiInputRefused"}}},"description":"The request was understood and refused — a blocked URL, a source that is not a parseable document, an artifact key outside this workspace, or a policy this capability will not waive."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiUpstreamFailed"}}},"description":"The AI provider could not complete the request. The provider's own message is deliberately not forwarded."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiCapabilityDisabled"}}},"description":"This capability is switched off for this deployment."}},"summary":"Generate images","tags":["ai"]}},"/v1/api/ai/media/speech":{"post":{"operationId":"synthesizeAiSpeech","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SynthesizeSpeech"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiSpeech"}}},"description":"The stored audio."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The `projectId` names no project in this workspace. A project belonging to another workspace answers identically (`code: \"project_not_found\"`) — its existence is not confirmed."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiInputRefused"}}},"description":"The request was understood and refused — a blocked URL, a source that is not a parseable document, an artifact key outside this workspace, or a policy this capability will not waive."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiUpstreamFailed"}}},"description":"The AI provider could not complete the request. The provider's own message is deliberately not forwarded."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiCapabilityDisabled"}}},"description":"This capability is switched off for this deployment."}},"summary":"Synthesize speech","tags":["ai"]}},"/v1/api/ai/media/transcriptions":{"post":{"operationId":"transcribeAiAudio","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscribeAudio"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiTextResult"}}},"description":"The transcript and what it consumed."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The `projectId` names no project in this workspace. A project belonging to another workspace answers identically (`code: \"project_not_found\"`) — its existence is not confirmed."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiInputRefused"}}},"description":"The request was understood and refused — a blocked URL, a source that is not a parseable document, an artifact key outside this workspace, or a policy this capability will not waive."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiUpstreamFailed"}}},"description":"The AI provider could not complete the request. The provider's own message is deliberately not forwarded."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiCapabilityDisabled"}}},"description":"This capability is switched off for this deployment."}},"summary":"Transcribe stored audio","tags":["ai"]}},"/v1/api/ai/media/video":{"post":{"operationId":"generateAiVideo","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateVideo"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiMediaJobAccepted"}}},"description":"The video job was recorded. Read `job.status` for progress: a provider submission failure is recorded as `failed` with an `error`. Reusing the same `idempotencyKey` returns the original job without a second charge."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The `projectId` names no project in this workspace. A project belonging to another workspace answers identically (`code: \"project_not_found\"`) — its existence is not confirmed."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiInputRefused"}}},"description":"The request was understood and refused — a blocked URL, a source that is not a parseable document, an artifact key outside this workspace, or a policy this capability will not waive."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiCapabilityDisabled"}}},"description":"This capability is switched off for this deployment."}},"summary":"Submit a video generation","tags":["ai"]}},"/v1/api/ai/media/video/{id}":{"get":{"operationId":"getAiVideoJob","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiMediaJobRead"}}},"description":"The job, plus `outputUrl` once the finished video has been collected."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not entitled to this endpoint. The whole `/v1/api/ai` family is agency-only: a client collaborator is refused every operation in it, on every project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such media job in this workspace."}},"summary":"Read one video job","tags":["ai"]}},"/v1/api/ai/media/video/{id}/review":{"post":{"operationId":"reviewAiVideoJob","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewMediaJob"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiMediaJobRead"}}},"description":"The job with its new review state."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not an owner or admin of this workspace — or a client collaborator, for whom the whole family is closed."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such media job in this workspace."}},"summary":"Record a review verdict on a generated video","tags":["ai"]}},"/v1/api/ai/w/{workspaceId}/chat/completions":{"post":{"operationId":"createHlixCodeChatCompletion","parameters":[{"in":"path","name":"workspaceId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletions"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletion"}},"text/event-stream":{"schema":{"type":"string"}}},"description":"The provider's own completion, forwarded unchanged. A request with `stream: true` answers `text/event-stream` and the provider's SSE frames are passed through byte-for-byte, ending with a usage frame; anything else answers the JSON body."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/OpenAiError"}]}}},"description":"The body failed validation, the request named no workspace, or the requested model is not one the deployment's governance allowlist names — the allowed models are listed in the message."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAiError"}}},"description":"The workspace's credit, its plan's included usage or its own monthly usage limit is used up. The message names which, and how to continue."},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/OpenAiError"}]}}},"description":"The credential is not a member of the workspace named in the path, or belongs to a client collaborator — this family is agency-only, and this endpoint spends the agency's own model budget."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAiError"}}},"description":"The workspace has no usable model credential, or the provider could not complete the request. The provider's own message is deliberately not forwarded; the status it answered is named instead."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAiError"}}},"description":"Usage could not be verified, so no new spending starts until the meter is available again."}},"summary":"Run an OpenAI-compatible chat completion on the workspace's own model budget","tags":["ai"]}},"/v1/api/ai/w/{workspaceId}/models":{"get":{"operationId":"listHlixCodeModels","parameters":[{"in":"path","name":"workspaceId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HlixCodeModels"}}},"description":"The catalog's chat models, restricted to the deployment's allowed models when configured, plus a `default` entry for the workspace coder model. Send `default` as the model ID to keep using the workspace's configured selection."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/OpenAiError"}]}}},"description":"The credential is not a member of the workspace named in the path, or belongs to a client collaborator — this family is agency-only."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the models a Hlix Code session may run, and the workspace default","tags":["ai"]}},"/v1/api/ai/w/{workspaceId}/responses":{"post":{"operationId":"createHlixCodeResponse","parameters":[{"in":"path","name":"workspaceId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Responses"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsesResult"}},"text/event-stream":{"schema":{"type":"string"}}},"description":"The provider's own response, forwarded unchanged. A request with `stream: true` answers `text/event-stream` and the provider's SSE events are passed through byte-for-byte, ending with `response.completed`; anything else answers the JSON body."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/OpenAiError"}]}}},"description":"The body failed validation, the request named no workspace, or the requested model is not one the deployment's governance allowlist names — the allowed models are listed in the message."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAiError"}}},"description":"The workspace's credit, its plan's included usage or its own monthly usage limit is used up. The message names which, and how to continue."},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/OpenAiError"}]}}},"description":"The credential is not a member of the workspace named in the path, or belongs to a client collaborator — this family is agency-only, and this endpoint spends the agency's own model budget."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAiError"}}},"description":"The workspace has no usable model credential, or the provider could not complete the request. The provider's own message is deliberately not forwarded; the status it answered is named instead."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenAiError"}}},"description":"Usage could not be verified, so no new spending starts until the meter is available again."}},"summary":"Run an OpenAI Responses request on the workspace's own model budget","tags":["ai"]}},"/v1/api/ai/w/{workspaceId}/v1/messages":{"post":{"operationId":"createHlixCodeMessage","parameters":[{"in":"path","name":"workspaceId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicMessages"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicMessage"}},"text/event-stream":{"schema":{"type":"string"}}},"description":"The provider's own message, forwarded unchanged. A request with `stream: true` answers `text/event-stream` and the provider's SSE events are passed through byte-for-byte; anything else answers the JSON body."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/AnthropicError"}]}}},"description":"The body failed validation, the request named no workspace, or the requested model is not one the deployment's governance allowlist names — the allowed models are listed in the message."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicError"}}},"description":"The workspace's credit, its plan's included usage or its own monthly usage limit is used up. The message names which, and how to continue."},"403":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/AnthropicError"}]}}},"description":"The credential is not a member of the workspace named in the path, or belongs to a client collaborator — this family is agency-only, and this endpoint spends the agency's own model budget."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicError"}}},"description":"The workspace has no usable model credential, or the provider could not complete the request. The provider's own message is deliberately not forwarded; the status it answered is named instead."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicError"}}},"description":"Usage could not be verified, so no new spending starts until the meter is available again."}},"summary":"Run an Anthropic Messages request on the workspace's own model budget","tags":["ai"]}},"/v1/api/alerts":{"get":{"operationId":"getAlertSettings","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSettings"}}},"description":"Connected Slack workspaces (with any alert scopes they lack), the Slack route, the linked Telegram chats and their route. With chats linked and nothing saved, the Telegram route is the implied default: every kind, enabled."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not a workspace owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Get where workspace alerts are posted","tags":["alerts"]}},"/v1/api/alerts/slack":{"delete":{"operationId":"deleteSlackAlertRoute","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRouteRemoved"}}},"description":"`removed` is false when no Slack channel was chosen."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not a workspace owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Stop posting alerts to Slack","tags":["alerts"]},"put":{"operationId":"saveSlackAlertRoute","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveSlackAlertRoute"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRoute"}}},"description":"The saved route. Saving resets its health to `ok`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body is malformed."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not a workspace owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"That Slack workspace is not connected to this workspace (`code: not_connected`)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The Slack install predates alerts or its token was revoked; reconnect Slack (`code: needs_reconnect`)."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The channel does not exist, or it is private and the bot is not in it."}},"summary":"Choose the Slack channel and alert kinds","tags":["alerts"]}},"/v1/api/alerts/slack/channels":{"get":{"operationId":"listSlackAlertChannels","parameters":[{"description":"The connected Slack workspace (`team_id`).","in":"query","name":"teamId","required":true,"schema":{"type":"string"}},{"description":"Only channels whose name contains this (a leading `#` is ignored).","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"`nextCursor` from the previous page.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackChannelPage"}}},"description":"Public channels and private channels to which the Slack bot was invited. The bot can post to a public channel without joining it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"A parameter is unknown or malformed."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not a workspace owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"That Slack workspace is not connected to this workspace (`code: not_connected`)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The Slack install predates alerts or its token was revoked; reconnect Slack (`code: needs_reconnect`)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Slack refused the lookup for another reason."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Slack is rate limiting; retry after the `Retry-After` header."}},"summary":"List Slack channels the bot can post alerts to","tags":["alerts"]}},"/v1/api/alerts/slack/test":{"post":{"operationId":"testSlackAlertRoute","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertTestResult"}}},"description":"Whether Slack accepted it. A refusal that proves the channel or token is gone marks the route broken, and `route` shows that."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not a workspace owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No Slack channel has been chosen."}},"summary":"Send a test alert to the Slack channel","tags":["alerts"]}},"/v1/api/alerts/telegram":{"put":{"operationId":"saveTelegramAlertRoute","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveTelegramAlertRoute"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertRoute"}}},"description":"The saved route."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body is malformed."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not a workspace owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No Telegram chat is linked to this workspace."}},"summary":"Choose which alerts the linked Telegram chats receive","tags":["alerts"]}},"/v1/api/alerts/telegram/test":{"post":{"operationId":"testTelegramAlertRoute","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertTestResult"}}},"description":"Whether at least one linked chat accepted it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not a workspace owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No Telegram chat is linked to this workspace."}},"summary":"Send a test alert to the linked Telegram chats","tags":["alerts"]}},"/v1/api/approvals":{"get":{"operationId":"listApprovals","parameters":[{"description":"`pending` | `approved` | `denied` | `cancelled`. Omitted, every status is listed.","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"description":"Only requests raised against this cycle.","in":"query","name":"cycleId","required":false,"schema":{"type":"string"}},{"description":"Only requests raised against this task.","in":"query","name":"taskId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApprovalListItem"},"type":"array"}}},"description":"The matching requests, each with the project it waits in."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List requests awaiting a decision","tags":["approvals"]}},"/v1/api/approvals/client-question":{"post":{"operationId":"askClientQuestion","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AskClientQuestion"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Approval"}}},"description":"The stored nonblocking request. Dispatch does not wait for it. `approvalType` and `requiredActor` are assigned by the server."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Client collaborators cannot create customer approval requests. This action is restricted to agency members."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace."}},"summary":"Ask the customer a question","tags":["approvals"]}},"/v1/api/approvals/{id}":{"get":{"operationId":"getApproval","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Approval"}}},"description":"The request."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such request in this workspace — or the caller may not decide it, which answers the same 404 rather than confirming it exists."}},"summary":"Get one request","tags":["approvals"]}},"/v1/api/approvals/{id}/cancel":{"post":{"operationId":"cancelApproval","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Approval"}}},"description":"The request was cancelled. A blocking dispatch request is treated as denied, so the cycle fails and the project can continue."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The request is no longer `pending` (it was already approved, denied or cancelled), the JSON body failed validation, or the request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such request in this workspace — or the caller may not decide it, which answers the same 404 rather than confirming it exists."}},"summary":"Cancel a request nobody will decide","tags":["approvals"]}},"/v1/api/approvals/{id}/resolve":{"post":{"operationId":"resolveApproval","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveApproval"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Approval"}}},"description":"The decided request. For client collaborators, `decidedBy` is resolved by the server; a value supplied in the body is ignored."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The request is no longer `pending` (it was already approved, denied or cancelled), the JSON body failed validation, or the request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such request in this workspace — or the caller may not decide it, which answers the same 404 rather than confirming it exists."}},"summary":"Approve or deny a request","tags":["approvals"]}},"/v1/api/attention":{"get":{"operationId":"getAttentionInbox","parameters":[{"description":"Page size, clamped to 1–500; 100 when omitted or not an integer.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"Items to skip, most urgent kind first and newest first within a kind. `total` and `countsByKind` count every item, so they say how many pages there are.","in":"query","name":"offset","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttentionSummary"}}},"description":"One page of open items, their total count and whether that count is exact. When `truncated` is true, `total` is a lower bound."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the attention inbox is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Get the operator attention inbox","tags":["attention"]}},"/v1/api/audit-log":{"get":{"operationId":"listAuditLog","parameters":[{"description":"Page size, clamped to 1–200. Defaults to 50.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"The previous page's `nextCursor`, verbatim. Opaque — never construct one.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"`user` | `api_key` | `agent` | `system`.","in":"query","name":"actorType","required":false,"schema":{"type":"string"}},{"description":"Exact id of the actor.","in":"query","name":"actorId","required":false,"schema":{"type":"string"}},{"description":"Exact action name, such as `project.create`. Unknown actions are ignored and leave the results unfiltered.","in":"query","name":"action","required":false,"schema":{"type":"string"}},{"description":"`create` | `read` | `update` | `delete` | `execute` | `auth` | `export`.","in":"query","name":"category","required":false,"schema":{"type":"string"}},{"description":"Exact resource type, such as `project`.","in":"query","name":"resourceType","required":false,"schema":{"type":"string"}},{"description":"Exact resource id.","in":"query","name":"resourceId","required":false,"schema":{"type":"string"}},{"description":"`success` | `failure` | `denied`.","in":"query","name":"outcome","required":false,"schema":{"type":"string"}},{"description":"`info` | `notice` | `warning` | `critical`.","in":"query","name":"severity","required":false,"schema":{"type":"string"}},{"description":"Where the action came in: `web` | `api` | `cli` | `telegram` | `linear` | `github` | `webhook` | `internal` | `system`.","in":"query","name":"source","required":false,"schema":{"type":"string"}},{"description":"Correlation id of one request.","in":"query","name":"requestId","required":false,"schema":{"type":"string"}},{"description":"Correlation id shared with the other planes.","in":"query","name":"traceId","required":false,"schema":{"type":"string"}},{"description":"Inclusive lower bound on `occurredAt`, as an ISO timestamp. Unparseable values are ignored.","in":"query","name":"from","required":false,"schema":{"type":"string"}},{"description":"Inclusive upper bound on `occurredAt`, ISO.","in":"query","name":"to","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditPage"}}},"description":"One keyset page of audit rows, newest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not an owner or admin of this workspace — or is not a member of it at all."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspace's audit trail","tags":["audit-log"]}},"/v1/api/audit-log/projects/{projectId}":{"get":{"operationId":"listProjectAuditLog","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Page size, clamped to 1–200. Defaults to 50.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"The previous page's `nextCursor`, verbatim. Opaque — never construct one.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Exact action name.","in":"query","name":"action","required":false,"schema":{"type":"string"}},{"description":"`user` | `api_key` | `agent` | `system`.","in":"query","name":"actorType","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditPage"}}},"description":"Rows where the project is the resource, the parent resource, or the value of `metadata.projectId`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not an owner or admin of this workspace — or is not a member of it at all."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."}},"summary":"List one project's audit trail","tags":["audit-log"]}},"/v1/api/audit-log/verify":{"get":{"operationId":"verifyAuditChain","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditChainVerification"}}},"description":"Hash-chain verification result. Check `ok`; HTTP 200 alone does not confirm chain integrity."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not an owner or admin of this workspace — or is not a member of it at all."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Verify the tamper-evidence hash chain","tags":["audit-log"]}},"/v1/api/audit-log/{id}":{"get":{"operationId":"getAuditEntry","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditEntryDetail"}}},"description":"The entry, plus the events, agent runs and log lines sharing its trace id."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is not an owner or admin of this workspace — or is not a member of it at all."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such audit entry in this workspace."}},"summary":"Get one audit entry and its correlated rows","tags":["audit-log"]}},"/v1/api/billing":{"get":{"operationId":"getOrgBilling","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgBillingState"}}},"description":"The workspace billing state and entitlement. `configured: false` confirms that no billing provider is configured. `entitlement.kind` distinguishes a full-access override, subscription, free tier, unconfigured provider and failed lookup. A failed lookup is not evidence that no subscription exists."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Billing is agency-only — an external `client` collaborator may not read the agency's plan or invoices."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The billing provider did not answer. The workspace's plan is unknown, not absent."}},"summary":"Read the workspace's plan, meters, orders and entitlement","tags":["billing"]}},"/v1/api/billing/checkout":{"post":{"operationId":"createOrgBillingCheckout","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCheckout"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCheckoutSession"}}},"description":"A Hlix billing checkout URL bound to the workspace as the billing customer. `plan: \"free\"` opens the US$0 Hlix-Free product so a workspace on the Free plan can add a payment method."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), the request named no active organization, or no billing product is configured for the requested plan on this deployment (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may open a checkout or a customer portal."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace's own state blocks the checkout — it has no member to bill, or the owner's email is already the billing contact for another workspace and no per-workspace alias can be formed. Not retryable; the message names the change that would fix it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The billing provider did not answer. The workspace's plan is unknown, not absent."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Billing is not configured for this deployment."}},"summary":"Open a hlix billing checkout billed to the workspace","tags":["billing"]}},"/v1/api/billing/credits":{"get":{"operationId":"getOrgCredits","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditsState"}}},"description":"Hlix Dollars per task for each tier, included review rounds, and the Hlix Dollar balance. `balance` is null when a balance is unavailable, including an unconfigured provider, a failed lookup or a full-access override. Display null as unavailable rather than zero."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Billing is agency-only — an external `client` collaborator may not read the agency's plan or invoices."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Read per-task prices and the remaining Hlix Dollars","tags":["billing"]}},"/v1/api/billing/extra-usage":{"get":{"operationId":"getOrgExtraUsage","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceExtraUsage"}}},"description":"The resolved workspace setting, its source, and whether it can be turned on (it needs an active subscription)."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Billing is agency-only — an external `client` collaborator may not read the agency's plan or invoices."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace's subscription could not be verified, so the setting's effect is unknown. Nothing changed."}},"summary":"Read whether work may continue past the included usage","tags":["billing"]},"put":{"operationId":"setOrgExtraUsage","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetExtraUsage"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceExtraUsage"}}},"description":"The resolved setting after the write. `allow: null` returns it to the plan's default."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may change extra usage."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Extra usage cannot be turned on: the workspace has no active subscription to charge (`code: \"payment_method_required\"`), its usage is not metered (`code: \"not_metered\"`), or, on task billing, it is on the free plan (`code: \"upgrade_required\"`). Turning it off always succeeds."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace's subscription could not be verified, so the setting's effect is unknown. Nothing changed."}},"summary":"Allow or stop usage past the included credit for the workspace","tags":["billing"]}},"/v1/api/billing/portal":{"post":{"operationId":"createOrgBillingPortal","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPortalSession"}}},"description":"A billing portal URL for the workspace's billing account, where its plan can be changed or cancelled and past invoices viewed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may open a checkout or a customer portal."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace has no member to bill, or its billing email is unusable. Not retryable."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The billing provider did not answer. The workspace's plan is unknown, not absent."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Billing is not configured for this deployment."}},"summary":"Open the billing portal for the workspace","tags":["billing"]}},"/v1/api/billing/task-charges":{"get":{"operationId":"listOrgTaskCharges","parameters":[{"description":"Window in days, default 30.","in":"query","name":"sinceDays","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceTaskCharges"}}},"description":"Accepted tasks (and extra review rounds) in the window, newest first. While `billingMode` is `metered` the rows are a preview and nothing is billed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Billing is agency-only — an external `client` collaborator may not read the agency's plan or invoices."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspace's accepted tasks and their credits","tags":["billing"]}},"/v1/api/bonus-credits":{"get":{"operationId":"listBonusCredits","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BonusActions"}}},"description":"Every action, `claimed` when this workspace or the signed-in person already claimed it, and the credit one claim adds."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Bonus credits are agency-only; an external `client` collaborator may not read or claim them."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the bonus credit actions and which are claimed","tags":["billing"]}},"/v1/api/bonus-credits/{action}/claim":{"post":{"operationId":"claimBonusCredit","parameters":[{"in":"path","name":"action","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BonusClaim"}}},"description":"The credit was added: to this month's free credit, or to the subscription's usage credit for the current period."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Bonus credits are agency-only; an external `client` collaborator may not read or claim them."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such bonus action."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"This workspace or this person already claimed this action."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The billing provider did not confirm the credit. Nothing was claimed; try again."}},"summary":"Claim the bonus credit for one action","tags":["billing"]}},"/v1/api/brand-kit":{"get":{"operationId":"getWorkspaceBrandKit","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBrandKitState"}}},"description":"Workspace brand draft and published identity"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Workspace access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Read workspace brand settings","tags":["brand-kit"]},"put":{"operationId":"saveWorkspaceBrandKit","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveBrandKit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBrandKitState"}}},"description":"Workspace brand draft and published identity"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Workspace access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Save a brand draft","tags":["brand-kit"]}},"/v1/api/brand-kit/extract":{"post":{"operationId":"extractWorkspaceBrandKit","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractBrandKit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBrandKitState"}}},"description":"Workspace brand draft and published identity"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Workspace access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Extraction unavailable"}},"summary":"Extract a draft brand from one website URL","tags":["brand-kit"]}},"/v1/api/brand-kit/publish":{"post":{"operationId":"publishWorkspaceBrandKit","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishBrandKit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBrandKitState"}}},"description":"Workspace brand draft and published identity"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Workspace access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Publish a reviewed brand and portal","tags":["brand-kit"]}},"/v1/api/chat/approvals/{requestId}":{"post":{"operationId":"answerChatApproval","parameters":[{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationApproval"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationApprovalResult"}}},"description":"The answer is recorded and the conversation goes on from it."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Read-only access to this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such conversation or request for this caller."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request was already answered."}},"summary":"Answer an approval the agent asked for","tags":["chat"]}},"/v1/api/chat/attachments":{"post":{"operationId":"uploadChatAttachment","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatAttachment"}}},"description":"The file is stored. `artifactKey` is what a later turn sends in `attachments`; the agent reads the bytes through its own tool (analyse an image, parse a PDF, analyse a video, transcribe audio). Audio is transcribed on the way in, so `transcript` carries the text the composer should show."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The body is not multipart/form-data, or carries no `file` field."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"File uploads are agency-only. Audio attachments are transcribed on upload using the agency's model budget."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The file is over the attachment ceiling — 25 MB, or the smaller limit past which a video can no longer be analysed."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No agent tool can read a file of that type. The accepted set is the one the reading tools actually handle — a raster image (including HEIC/HEIF and AVIF), a PDF, audio in a transcribable format, or a video. SVG is refused as markup rather than a raster."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The file could not be written to object storage. Nothing was recorded and the upload is safe to retry."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Store a file for a chat turn to name","tags":["chat"]}},"/v1/api/chat/connect":{"post":{"operationId":"connectChatSocket","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationConnect"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationConnection"}}},"description":"A short-lived token for one conversation and one person, and the socket path to present it on (`path?token=&from=&gen=`)."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such conversation for this caller."}},"summary":"Get the proof a conversation's socket upgrade presents","tags":["chat"]}},"/v1/api/chat/directory":{"get":{"operationId":"listChatDirectory","parameters":[{"description":"Search title, project or agent name. Up to 200 characters.","in":"query","name":"q","required":false,"schema":{"type":"string"}},{"description":"all (default), private or shared.","in":"query","name":"visibility","required":false,"schema":{"type":"string"}},{"description":"Limit shared conversations to an accessible project.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"One-based page, default 1.","in":"query","name":"page","required":false,"schema":{"type":"string"}},{"description":"1–50 conversations per page, default 20.","in":"query","name":"pageSize","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatDirectoryResponse"}}},"description":"Matching conversations, newest first, with authorized project filters. Private conversations belong only to the signed-in user."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Invalid filters."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Search your private and accessible shared project conversations","tags":["chat"]}},"/v1/api/chat/events":{"get":{"operationId":"streamChatEvents","parameters":[{"description":"The conversation's address.","in":"query","name":"chatId","required":true,"schema":{"type":"string"}},{"description":"The next event the client wants; `Last-Event-ID` says the same after a reconnect.","in":"query","name":"from","required":false,"schema":{"type":"string"}},{"description":"The stream generation `from` belongs to; a stale one starts from a snapshot.","in":"query","name":"gen","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"text/event-stream":{"schema":{"type":"string"}}},"description":"The conversation's events: a snapshot of its messages when you join cold, then every event of the turns that follow."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such conversation for this caller."}},"summary":"Follow a conversation as Server-Sent Events","tags":["chat"]}},"/v1/api/chat/messages":{"get":{"operationId":"listChatMessages","parameters":[{"description":"The conversation's address.","in":"query","name":"chatId","required":true,"schema":{"type":"string"}},{"description":"How many transcript entries one page holds, 1 to 200. Default 50.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"The `next` of the page you have: read the messages before it.","in":"query","name":"before","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationMessages"}}},"description":"The page, oldest first. Bookkeeping entries (approvals, signals) are not messages and are not listed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The query failed validation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such conversation for this caller."}},"summary":"Read a conversation's messages, newest page first","tags":["chat"]}},"/v1/api/chat/stop":{"post":{"operationId":"stopChatTurn","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationStop"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationStopResponse"}}},"description":"`stopped` is true when a turn was running and was stopped; effects of tools already executed are not undone."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such conversation for this caller."}},"summary":"Stop the turn a conversation is running","tags":["chat"]}},"/v1/api/chat/turns":{"post":{"operationId":"sendChatTurn","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSend"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationReceipt"}}},"description":"The message is in the conversation and, unless it named only people (`delivered: \"thread\"`), the agent is answering it. The turn runs to completion on the server whether or not anyone is watching; read it on the conversation's events. On a cycle's address (`project:<projectId>:cycle:<cycleId>`) the message goes to that cycle's agent, not to the project manager: it is stored in the cycle's chat and given to the agent at work, or to the next run of the cycle."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The body failed validation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Read-only access to this project: reading is allowed, asking the agent is not."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such conversation for this caller."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Send a message to a conversation and return while the agent works","tags":["chat"]}},"/v1/api/chat/urgent":{"post":{"operationId":"checkUrgentChatMessage","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatUrgent"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatUrgentResponse"}}},"description":"The cycles stopped because the message contradicts them; empty when it contradicts nothing or the check could not answer. The rest of the project keeps running."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Read-only access to this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project not found."}},"summary":"Stop only the project's recent work an urgent message contradicts","tags":["chat"]}},"/v1/api/chats":{"get":{"operationId":"listChats","parameters":[{"description":"The conversation's address, or one of its sessions'.","in":"query","name":"chatId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationChats"}}},"description":"The conversation's default chat and the sessions you may see: your own private ones and the shared ones."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such conversation for this caller."}},"summary":"List the chat sessions of a conversation you may see","tags":["chat"]},"post":{"operationId":"createChat","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationChatCreate"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationChatCreated"}}},"description":"The session exists from its first message. Every extra chat is private to the person who starts it."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The body failed validation, or asked for a shared extra chat."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such conversation for this caller."}},"summary":"Start a chat session with an agent","tags":["chat"]}},"/v1/api/chats/{id}/model":{"patch":{"operationId":"setPrivateChatModel","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationModel"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivateChatModelResponse"}}},"description":"Saved catalog model or null for the workspace default."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid body or unavailable catalog model."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency membership required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Private session not found."}},"summary":"Choose the model for your private conversation","tags":["chat"]}},"/v1/api/client-accounts":{"get":{"operationId":"listClientAccounts","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientAccount"},"type":"array"}}},"description":"Every client account, by display name."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the customer roster is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the agency's customers","tags":["client-accounts"]},"post":{"operationId":"createClientAccount","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClientAccount"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientAccount"}}},"description":"The stored account. The workspace is taken from the tenant context — a body cannot name the organization it writes into."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the customer roster is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"That portal slug is already taken in this workspace."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The account could not be written."}},"summary":"Add a customer","tags":["client-accounts"]}},"/v1/api/client-accounts/{id}":{"delete":{"operationId":"deleteClientAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"The account is gone."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the customer roster is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such client account in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The client account still has assigned projects. Unassign the projects or archive the account before deleting it."}},"summary":"Delete a customer","tags":["client-accounts"]},"get":{"operationId":"getClientAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientAccount"}}},"description":"The account."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the customer roster is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such client account in this workspace."}},"summary":"Get one customer","tags":["client-accounts"]},"patch":{"operationId":"updateClientAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClientAccount"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientAccount"}}},"description":"The updated account."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the customer roster is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such client account in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"That portal slug is already taken in this workspace."}},"summary":"Update a customer","tags":["client-accounts"]}},"/v1/api/client-accounts/{id}/projects":{"get":{"operationId":"listClientAccountProjects","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProjectSummaryRow"},"type":"array"}}},"description":"Projects assigned to this client account, with index counts. Repository collections are omitted; `GET /v1/api/projects` includes them."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the customer roster is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such client account in this workspace."}},"summary":"List one customer's projects","tags":["client-accounts"]}},"/v1/api/client-accounts/{id}/projects/{projectId}":{"delete":{"operationId":"unassignProjectFromClientAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRow"}}},"description":"The updated project row, without its repository collection. The project is now unassigned."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the customer roster is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project does not exist or is not assigned to the specified client account. Both cases return 404."}},"summary":"Unassign a project from a customer","tags":["client-accounts"]},"put":{"operationId":"assignProjectToClientAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRow"}}},"description":"The updated project row, without its repository collection. Repeating the same assignment is idempotent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the customer roster is agency-only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such client account, or no such project."}},"summary":"Assign a project to a customer","tags":["client-accounts"]}},"/v1/api/client-billing/billables":{"get":{"operationId":"listClientBillables","parameters":[{"description":"Only this customer's rows.","in":"query","name":"clientAccountId","required":false,"schema":{"type":"string"}},{"description":"Limit results to this project. A client collaborator without project access receives an access error rather than an empty ledger.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientBillableView"},"type":"array"}}},"description":"The matching rows, each with the derived `netAmountMicros` and any void that reverses it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller cannot access the requested `projectId`. Project-filtered reads return an access error rather than an empty ledger; unfiltered reads omit inaccessible rows."}},"summary":"List the ledger","tags":["client-billing"]},"post":{"operationId":"createClientBillable","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBillable"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBillable"}}},"description":"The saved billable with its price fixed at creation. For `agent_usage`, token counts and model are taken from the recorded run rather than the request."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the billable ledger is managed by the agency."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such client account or project in this workspace. Never a 403 — that would confirm it exists somewhere."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"This source was already billed. A retried request is the usual cause."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A database constraint prevented the row from being saved. The response identifies the constraint."}},"summary":"Record a billable","tags":["client-billing"]}},"/v1/api/client-billing/billables/{id}":{"get":{"operationId":"getClientBillable","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBillableView"}}},"description":"The row, with its derived net and void."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such billable this caller may read."}},"summary":"Get one ledger row","tags":["client-billing"]}},"/v1/api/client-billing/billables/{id}/adjust":{"post":{"operationId":"adjustClientBillable","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdjustBillable"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBillable"}}},"description":"A new correction row referencing the original charge. The original charge is unchanged."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed validation, or the request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the billable ledger is managed by the agency."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such billable this caller may reach."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A correction cannot target another correction or a voided charge. The response identifies the violated rule."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A database constraint prevented the row from being saved. The response identifies the constraint."}},"summary":"Append a correction to a charge","tags":["client-billing"]}},"/v1/api/client-billing/billables/{id}/void":{"post":{"operationId":"voidClientBillable","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoidBillable"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBillable"}}},"description":"A new reversal row covering the charge and all its corrections, so the complete net amount is reversed."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed validation, or the request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; the billable ledger is managed by the agency."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such billable this caller may reach."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The charge was already voided or cannot be voided for the rule identified in the response. A charge can be voided only once."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A database constraint prevented the row from being saved. The response identifies the constraint."}},"summary":"Reverse a charge","tags":["client-billing"]}},"/v1/api/client-billing/invoices":{"get":{"operationId":"listClientInvoices","parameters":[{"description":"Only this customer's invoices.","in":"query","name":"clientAccountId","required":false,"schema":{"type":"string"}},{"description":"One of `draft`, `final`, `void`, `paid`.","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientInvoice"},"type":"array"}}},"description":"Invoice headers, newest first. `lines` is empty on this projection — read one invoice to get them."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. Invoices are agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List invoices","tags":["client-invoices"]},"post":{"operationId":"createClientInvoiceDraft","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvoiceDraft"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInvoice"}}},"description":"The draft, with its lines snapshotted from the ledger and its totals computed once and stored."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. Invoices are agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A named billable or the client account is not this workspace's."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The set cannot be invoiced: it spans two customers or two currencies, a charge nets to zero, a tax class has no rate, a correction's charge was never invoiced, or the total would exceed what an invoice can represent. The message names which."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A database constraint refused the draft."}},"summary":"Assemble a draft invoice from billables","tags":["client-invoices"]}},"/v1/api/client-billing/invoices/{id}":{"get":{"operationId":"getClientInvoice","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInvoice"}}},"description":"The invoice and every line it was built from."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. Invoices are agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such invoice in this workspace. Never a 403 — 'forbidden' would confirm that an invoice exists for a customer the caller was never shown."}},"summary":"Get one invoice with its lines","tags":["client-invoices"]}},"/v1/api/client-billing/invoices/{id}/issue":{"post":{"operationId":"issueClientInvoice","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueInvoice"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInvoice"}}},"description":"The issued invoice. `invoiceNumber` and `invoiceSequence` are assigned by the database at this moment and are gapless per workspace."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. Invoices are agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such invoice in this workspace. Never a 403 — 'forbidden' would confirm that an invoice exists for a customer the caller was never shown."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Not issuable: already issued, no lines, the header does not reconcile with its lines, a charge on it is already invoiced, or a correction of one is missing from it."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A database constraint refused the issue."}},"summary":"Issue a draft, assigning its number","tags":["client-invoices"]}},"/v1/api/client-billing/invoices/{id}/logo":{"get":{"operationId":"getClientInvoiceLogo","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"image/png":{"schema":{"format":"binary","type":"string"}}},"description":"The agency logo frozen when the invoice was issued. `Content-Type` matches the format recorded on the invoice, with `X-Content-Type-Options: nosniff`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. Invoices are agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such invoice, or it carries no logo."}},"summary":"Download the logo frozen onto this invoice","tags":["client-invoices"]}},"/v1/api/client-billing/invoices/{id}/pay":{"post":{"operationId":"payClientInvoice","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayInvoice"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInvoice"}}},"description":"The invoice settled through an audited out-of-band payment recorded by an agency member. This is separate from provider-verified payment. Any open hosted checkout is cancelled to prevent a second payment through the provider."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. Invoices are agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such invoice in this workspace. Never a 403 — 'forbidden' would confirm that an invoice exists for a customer the caller was never shown."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an issued, unpaid invoice can be settled."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A database constraint refused the payment."}},"summary":"Record an out-of-band settlement (bank transfer, cheque)","tags":["client-invoices"]}},"/v1/api/client-billing/invoices/{id}/payment-link":{"post":{"operationId":"createClientInvoicePaymentLink","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPaymentLink"}}},"description":"A provider-hosted checkout URL and its payment reference. Payment details are entered on the provider's page and are not returned by this endpoint. Creating a checkout does not mark the invoice paid. Provider payments settle only after a signed webhook is reconciled against the invoice ID, amount and currency. An agency member can separately record an audited out-of-band settlement through `POST /v1/api/client-billing/invoices/{id}/pay`."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator attempting something other than reading or paying its own invoice."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such invoice in this workspace. Never a 403 — 'forbidden' would confirm that an invoice exists for a customer the caller was never shown."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Not payable: the invoice is a draft, void or already paid, it already has a checkout open with a different provider, or its total is above what the provider will take in one payment."},"501":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No payment provider is connected for this deployment. The invoice can still be issued, sent and paid outside hlix."}},"summary":"Open a provider-hosted checkout for an issued invoice","tags":["client-invoices"]}},"/v1/api/client-billing/invoices/{id}/pdf":{"get":{"operationId":"getClientInvoicePdf","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/pdf":{"schema":{"format":"binary","type":"string"}}},"description":"The rendered invoice, every line included."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. Invoices are agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such invoice in this workspace. Never a 403 — 'forbidden' would confirm that an invoice exists for a customer the caller was never shown."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The invoice is a draft, or its stored totals no longer reconcile with its stored lines. Rendering a document that does not add up is refused rather than attempted."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The invoice is valid but this renderer cannot encode it — a party name or line description outside Latin-1. Retrying will not help; read the invoice through `getClientInvoice` instead."}},"summary":"Download the invoice as a PDF","tags":["client-invoices"]}},"/v1/api/client-billing/invoices/{id}/void":{"post":{"operationId":"voidClientInvoice","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoidInvoice"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInvoice"}}},"description":"The voided invoice. An issued invoice retains its number. To correct it, issue a replacement invoice referencing the original."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. Invoices are agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such invoice in this workspace. Never a 403 — 'forbidden' would confirm that an invoice exists for a customer the caller was never shown."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The invoice is already void."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A database constraint refused the void."}},"summary":"Withdraw an invoice, or discard a draft","tags":["client-invoices"]}},"/v1/api/client-billing/profile":{"delete":{"operationId":"deleteAgencyBillingProfile","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgencyBillingProfileCleared"}}},"description":"Removed. New invoices are issued unbranded; ones already issued keep the identity frozen onto them."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `member`. Changing the legal entity every customer is billed by is restricted to owners and admins."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No billing profile is set."}},"summary":"Remove the workspace's billing identity","tags":["client-billing-profile"]},"get":{"operationId":"getAgencyBillingProfile","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgencyBillingProfileState"}}},"description":"The profile, or `null` if none was ever saved. `branded` says whether the workspace's plan puts it on invoices — an unbranded workspace still issues complete, correct documents."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. The agency's billing identity is agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Get the workspace's billing identity","tags":["client-billing-profile"]},"put":{"operationId":"upsertAgencyBillingProfile","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertBillingProfile"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgencyBillingProfileState"}}},"description":"The saved billing profile. This PUT replaces the profile: omitted optional fields are cleared, including a previously stored logo."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), the request named no active organization, or the logo is not the image format it claims to be — the bytes are decoded, not trusted, and this route reads the file header (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `member`. Changing the legal entity every customer is billed by is restricted to owners and admins."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Replace the workspace's billing identity","tags":["client-billing-profile"]}},"/v1/api/client-billing/profile/logo":{"get":{"operationId":"getAgencyBillingProfileLogo","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"image/png":{"schema":{"format":"binary","type":"string"}}},"description":"The stored image. The `Content-Type` is the format recorded in the database, not one the uploader asserted, and `X-Content-Type-Options: nosniff` accompanies it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a `client` collaborator. The agency's billing identity is agency-only, reads included."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No logo is set for this workspace."}},"summary":"Download the workspace's logo","tags":["client-billing-profile"]}},"/v1/api/client-portal/activity":{"get":{"operationId":"listClientPortalActivity","parameters":[{"description":"One `ClientActivityType`, applied on the server before the twenty-item overview limit. An unrecognized type returns an empty list.","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"Page size, clamped to 1–500; 100 when omitted or not an integer.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"Items to skip, newest first. Ask for the next page with `offset` + `limit` until a page comes back shorter than `limit`.","in":"query","name":"offset","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientActivityItem"},"type":"array"}}},"description":"Client-visible activity, newest first. There is no actor field: a customer is told what changed, never who inside the agency changed it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List client-visible activity","tags":["client-portal"]}},"/v1/api/client-portal/invitations":{"get":{"operationId":"listWorkspacePortalInvitations","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkspacePortalInvitation"},"type":"array"}}},"description":"Owner/admin only. No token hash; clientAccountId is set only for an invitation that also opens a customer's invoices."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List agency client invitations","tags":["client-portals"]},"post":{"operationId":"inviteWorkspacePortalClient","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteWorkspacePortal"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePortalInvitationCreated"}}},"description":"One pending invitation per address (per customer when clientAccountId is set): inviting again adds the projects to it. clientAccountId also seats the client on that customer, which opens its issued invoices; project grants never do. Omitted/null permission inherits the live workspace default. The returned link stays usable if email fails."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Publish the portal identity first."}},"summary":"Invite an email directly to the agency client portal","tags":["client-portals"]}},"/v1/api/client-portal/invitations/{invitationId}":{"delete":{"operationId":"revokeWorkspacePortalInvitation","parameters":[{"in":"path","name":"invitationId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"Revoked."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"summary":"Revoke an unaccepted client invitation","tags":["client-portals"]}},"/v1/api/client-portal/members":{"get":{"operationId":"listWorkspacePortalClients","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkspacePortalClient"},"type":"array"}}},"description":"One row per client: creation permission (effective and override), the customers whose invoices they read, and every project they open with its messaging and project insights switches."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the agency's portal clients","tags":["client-portals"]}},"/v1/api/client-portal/members/{userId}":{"delete":{"operationId":"removeWorkspacePortalClient","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"Membership, every project grant and every billing seat removed; pending invitations revoked."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"summary":"Remove a client's agency portal access","tags":["client-portals"]},"patch":{"operationId":"updateWorkspacePortalClient","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePortalMember"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePortalClientPermissions"}}},"description":"Null restores live workspace default inheritance."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"summary":"Set or clear a client's permission override","tags":["client-portals"]}},"/v1/api/client-portal/members/{userId}/accounts/{clientAccountId}":{"delete":{"operationId":"removeWorkspacePortalCustomerAccess","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"in":"path","name":"clientAccountId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerAccessRemoved"}}},"description":"The client's billing seat on this customer and their grants on its projects are removed; other customers and projects stay. The body is what was removed, for undo."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"summary":"Take one customer away from a client","tags":["client-portals"]},"put":{"operationId":"restoreWorkspacePortalCustomerAccess","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"in":"path","name":"clientAccountId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreCustomerAccess"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerAccessRestored"}}},"description":"Restores the billing seat and the grants, limited to this customer's projects."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"summary":"Give a client back one customer's access","tags":["client-portals"]}},"/v1/api/client-portal/members/{userId}/projects":{"get":{"operationId":"listWorkspacePortalProjectAccess","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PortalProjectGrant"},"type":"array"}}},"description":"The client's live project grants."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"summary":"List a client's current agency portal project access","tags":["client-portals"]}},"/v1/api/client-portal/members/{userId}/projects/{projectId}":{"delete":{"operationId":"removeWorkspacePortalProjectAccess","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"The client no longer opens this project."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"summary":"Remove one explicit portal project grant","tags":["client-portals"]},"put":{"operationId":"setWorkspacePortalProjectAccess","parameters":[{"in":"path","name":"userId","required":true,"schema":{"type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalProjectPermissions"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalProjectGrant"}}},"description":"Creates or replaces the grant; it is bound to the project's current customer."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"summary":"Grant one project, with messaging and project insights","tags":["client-portals"]}},"/v1/api/client-portal/overview":{"get":{"operationId":"getClientPortalOverview","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPortalOverview"}}},"description":"The viewer's projects and their twenty most recent client-visible events, of every kind."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Get the portal landing view","tags":["client-portal"]}},"/v1/api/client-portal/requests":{"get":{"operationId":"listClientRequests","parameters":[{"description":"Limit to this accessible project","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRequestList"}}},"description":"Requests with current work status"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List your personal requests or the agency's client requests","tags":["client-portal"]},"post":{"operationId":"createClientRequest","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClientRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRequestDetail"}}},"description":"Request created without starting work"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only the author can respond or approve"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request or attachment not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request or plan changed"}},"summary":"Start a personal request conversation visible to the agency","tags":["client-portal"]}},"/v1/api/client-portal/requests/{id}":{"get":{"operationId":"getClientRequest","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRequestDetail"}}},"description":"Request, plan, attachments and messages"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only the author can respond or approve"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request or attachment not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request or plan changed"}},"summary":"Read an authorized request and its canonical conversation","tags":["client-portal"]}},"/v1/api/client-portal/requests/{id}/approve":{"post":{"operationId":"approveClientRequest","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveClientRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientRequestDetail"}}},"description":"Approved request; retries return the same proposal"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only the author can respond or approve"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request or attachment not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request or plan changed"}},"summary":"Approve the exact saved plan once and enter operator sources","tags":["client-portal"]}},"/v1/api/client-portal/requests/{id}/attachments":{"post":{"operationId":"uploadClientRequestAttachment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatAttachment"}}},"description":"Stored attachment; artifactKey is the request-owned attachment ID and audio may include its transcript"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only the author can respond or approve"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request or attachment not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request or plan changed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Upload too large"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Upload failed"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Upload a request-owned file or voice recording","tags":["client-portal"]}},"/v1/api/client-portal/requests/{id}/attachments/{attachmentId}":{"get":{"operationId":"downloadClientRequestAttachment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"attachmentId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Authenticated attachment bytes"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only the author can respond or approve"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request or attachment not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request or plan changed"}},"summary":"Read a request-owned attachment","tags":["client-portal"]}},"/v1/api/client-portal/settings":{"get":{"operationId":"getWorkspacePortalSettings","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePortalSettings"}}},"description":"Owner/admin only; omitted client overrides inherit this live value."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Read default client permissions","tags":["client-portals"]},"patch":{"operationId":"updateWorkspacePortalSettings","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePortalSettings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePortalSettings"}}},"description":"Updated live default."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Update default client permissions","tags":["client-portals"]}},"/v1/api/coder-accounts":{"get":{"operationId":"listCoderAccounts","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CoderAccount"},"type":"array"}}},"description":"Members see their own and shared accounts; owners/admins see all. Credentials are never returned."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List safe coder accounts","tags":["coder-accounts"]},"post":{"operationId":"createCoderAccount","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCoderAccount"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccount"}}},"description":"Connected account. Subscription defaults to private ownership."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid body or credential, or unsupported account operation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The session is already connected or the account is running a task."}},"summary":"Import a subscription credential or custom API key","tags":["coder-accounts"]}},"/v1/api/coder-accounts/connect":{"post":{"operationId":"startCoderAccountConnect","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartCoderConnect"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderConnect"}}},"description":"Provider authorization instructions. Expires after ten minutes."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid body or credential, or unsupported account operation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The session is already connected or the account is running a task."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider unavailable."}},"summary":"Start subscription sign-in","tags":["coder-accounts"]}},"/v1/api/coder-accounts/connect/{sessionId}":{"delete":{"operationId":"cancelCoderAccountConnect","parameters":[{"in":"path","name":"sessionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedAck"}}},"description":"Cancelled."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The session is already connected or the account is running a task."}},"summary":"Cancel subscription sign-in","tags":["coder-accounts"]}},"/v1/api/coder-accounts/connect/{sessionId}/complete":{"post":{"operationId":"completeCoderAccountConnect","parameters":[{"in":"path","name":"sessionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCoderConnect"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderConnectResult"}}},"description":"Pending authorization or connected account ID. Never returns credentials."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid body or credential, or unsupported account operation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The session is already connected or the account is running a task."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider unavailable."}},"summary":"Finish subscription sign-in or poll device authorization","tags":["coder-accounts"]}},"/v1/api/coder-accounts/{id}":{"delete":{"operationId":"deleteCoderAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedAck"}}},"description":"Removed. A named pin will remain unavailable until explicitly changed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The session is already connected or the account is running a task."}},"summary":"Remove an account and its credential","tags":["coder-accounts"]},"patch":{"operationId":"updateCoderAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchCoderAccount"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccount"}}},"description":"Updated account."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid body or credential, or unsupported account operation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The session is already connected or the account is running a task."}},"summary":"Rename, share or enable an account","tags":["coder-accounts"]}},"/v1/api/coder-accounts/{id}/credential":{"put":{"operationId":"reconnectCoderAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReconnectCoderAccount"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccount"}}},"description":"Reconnected account with the same coder and kind."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid body or credential, or unsupported account operation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The session is already connected or the account is running a task."}},"summary":"Replace an account credential","tags":["coder-accounts"]}},"/v1/api/coder-accounts/{id}/models":{"get":{"operationId":"getCoderAccountModels","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccountModelCatalog"}}},"description":"Advertised models, not proof of entitlement. Never probes the provider."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."}},"summary":"Read cached models advertised by an account","tags":["coder-accounts"]}},"/v1/api/coder-accounts/{id}/models/refresh":{"post":{"operationId":"refreshCoderAccountModels","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccountModelCatalog"}}},"description":"Cached API model list. Subscription menus come from normal native sessions."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid body or credential, or unsupported account operation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The session is already connected or the account is running a task."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider model list unavailable."}},"summary":"Refresh an API account's advertised models","tags":["coder-accounts"]}},"/v1/api/coder-accounts/{id}/test":{"post":{"operationId":"testCoderAccount","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccountProbe"}}},"description":"API key check succeeded."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid body or credential, or unsupported account operation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency roles only. API keys require owner/admin; subscription sharing and reconnect require its owner's consent."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such account visible in this workspace."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccountProbe"}}},"description":"Provider check failed; safe details only."}},"summary":"Check a Claude or Codex API key","tags":["coder-accounts"]}},"/v1/api/crm/clients/{clientAccountId}":{"get":{"operationId":"getCrmClientRecord","parameters":[{"in":"path","name":"clientAccountId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmClientRecord"}}},"description":"The client record; the timeline is newest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No client account with this id in the workspace."}},"summary":"Show a client's record: deals, contacts, timeline, projects and invoices","tags":["crm"]}},"/v1/api/crm/contacts":{"get":{"operationId":"listCrmContacts","parameters":[{"description":"Only this client account's contacts.","in":"query","name":"clientAccountId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CrmContact"},"type":"array"}}},"description":"Contacts, oldest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List contacts","tags":["crm"]},"post":{"operationId":"createCrmContact","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContact"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmContact"}}},"description":"The new contact."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A referenced client account, deal, contact or campaign is not in this workspace."}},"summary":"Create a contact","tags":["crm"]}},"/v1/api/crm/deals":{"post":{"operationId":"createCrmDeal","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeal"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmDeal"}}},"description":"The new deal, in the default pipeline."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"A stage the pipeline does not have, a value without a currency, an owner outside the workspace, or subjects of different clients."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A referenced client account, deal, contact or campaign is not in this workspace."}},"summary":"Create a deal","tags":["crm"]}},"/v1/api/crm/deals/{dealId}":{"patch":{"operationId":"updateCrmDeal","parameters":[{"in":"path","name":"dealId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeal"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmDeal"}}},"description":"The deal after the change. A stage move is also written to its timeline."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"A stage the pipeline does not have, a value without a currency, an owner outside the workspace, or subjects of different clients."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A referenced client account, deal, contact or campaign is not in this workspace."}},"summary":"Move a deal or edit its value, owner and next step","tags":["crm"]}},"/v1/api/crm/deals/{dealId}/suggestion":{"put":{"operationId":"setCrmDealSuggestion","parameters":[{"in":"path","name":"dealId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealSuggestion"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmDealSuggestion"}}},"description":"The saved manual version, which is preserved from agent overwrites."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"A draft subject without a body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A referenced client account, deal, contact or campaign is not in this workspace."}},"summary":"Replace a deal's suggested next step and draft with your own","tags":["crm"]}},"/v1/api/crm/deals/{dealId}/suggestion/regenerate":{"post":{"operationId":"regenerateCrmDealSuggestion","parameters":[{"in":"path","name":"dealId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmRegeneratedSuggestion"}}},"description":"The new suggestion, or null when the agent's attempt failed its fact check."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The deal is closed."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A referenced client account, deal, contact or campaign is not in this workspace."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agent could not write a suggestion right now."}},"summary":"Have the agent write a new suggested next step and draft","tags":["crm"]}},"/v1/api/crm/notes":{"post":{"operationId":"addCrmNote","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNote"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmActivity"}}},"description":"The note as a timeline entry."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"A stage the pipeline does not have, a value without a currency, an owner outside the workspace, or subjects of different clients."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A referenced client account, deal, contact or campaign is not in this workspace."}},"summary":"Add a note to a deal, contact or client timeline","tags":["crm"]}},"/v1/api/crm/pipeline":{"get":{"operationId":"getCrmPipeline","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmBoard"}}},"description":"The default pipeline, its deals per stage with value totals, and the outbound funnel."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Show the pipeline board and the last 30 days of outbound","tags":["crm"]}},"/v1/api/crm/pipeline/stages/{stage}/probability":{"put":{"operationId":"setCrmStageProbability","parameters":[{"in":"path","name":"stage","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StageProbability"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmPipeline"}}},"description":"The pipeline with its stage odds."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Not a stage of the pipeline, or not an open stage."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin can change stage odds."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Set the forecast odds of an open pipeline stage","tags":["crm"]}},"/v1/api/cycles":{"get":{"operationId":"listCycles","parameters":[{"description":"Limit results to the specified projects. Repeatable. Explicitly selected projects are included even when archived.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"Only cycles owned by this person. `me` resolves to the caller.","in":"query","name":"assignedUserId","required":false,"schema":{"type":"string"}},{"description":"`false` hides finished cycles (`done`, legacy `pr_created`, `failed` and `canceled`). Omit to include all statuses.","in":"query","name":"includeArchived","required":false,"schema":{"type":"string"}},{"description":"`createdAt` (default, newest first) or `priority` (the Sources Agent's urgency tier first, ties keep createdAt order).","in":"query","name":"orderBy","required":false,"schema":{"type":"string"}},{"description":"Page size, 1–500; 200 when omitted. The list is always one page.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"The id of the last cycle of the previous page: the next, older page. Newest-first order only (not with `orderBy=priority`). Ask again with the last id until a page comes back shorter than `limit`.","in":"query","name":"before","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CycleSummary"},"type":"array"}}},"description":"One page of matching cycles, newest first or priority-first with `orderBy=priority`. Each includes its Linear URL when applicable, owner, project name and whether the caller follows it."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The query failed schema validation (`ValidationError`: a `limit` outside 1–500, or `before` with `orderBy=priority`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List cycles","tags":["cycles"]}},"/v1/api/cycles/direct":{"post":{"operationId":"createDirectCycle","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectCycle"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cycle"}}},"description":"The committed cycle, with trusted human origin. Normal planning and dispatch gates still apply."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Invalid fields; author, agent-run identity and unsupported options are not accepted."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A client, API key or task credential cannot create a human-authored cycle."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No accessible project in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectCycleConflict"}}},"description":"Duplicate title has code CYCLE_DUPLICATE_TITLE; other conflicts indicate changed project context or sources policy. Retain the brief and show the error."}},"security":[{"sessionCookie":[]}],"summary":"Create a separate cycle","tags":["cycles"]}},"/v1/api/cycles/from-branch":{"post":{"operationId":"openBranchCycle","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenBranchCycle"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchCycleOpened"}}},"description":"The cycle that continues that commit. `branch` is the cycle branch the work pushes to. An existing cycle for the same commit, or an open cycle for the same branch, is returned as it stands."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project has no single repository to continue on, or the branch or commit was rejected."}},"summary":"Open a cycle from a pushed branch","tags":["cycles"]}},"/v1/api/cycles/{id}":{"delete":{"operationId":"deleteCycle","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"The cycle was deleted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only a cycle in `draft` or `failed` status can be deleted."}},"summary":"Delete a draft or failed cycle","tags":["cycles"]},"get":{"operationId":"getCycle","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleDetail"}}},"description":"The cycle, its tasks with dependencies, and the live preview URL when one is deployed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Get one cycle with its tasks","tags":["cycles"]},"patch":{"operationId":"updateCycle","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCycle"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cycle"}}},"description":"The updated cycle."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Update a cycle's title, description or target branch","tags":["cycles"]}},"/v1/api/cycles/{id}/approvals":{"get":{"operationId":"listCycleApprovals","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Approval"},"type":"array"}}},"description":"This cycle's requests. Resolved ones are included — `status` says which are still open."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List a cycle's approvals","tags":["cycles"]}},"/v1/api/cycles/{id}/artifacts":{"get":{"operationId":"listCycleArtifacts","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StoredArtifact"},"type":"array"}}},"description":"The stored objects."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"List a cycle's stored artifacts","tags":["cycles"]}},"/v1/api/cycles/{id}/artifacts/{filename}":{"get":{"operationId":"getCycleArtifactUrl","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"filename","required":true,"schema":{"type":"string"}},{"description":"Set to `1` to download artifact bytes when a signed URL cannot be issued. The default JSON response then provides this route with `download=1` in its `url`. When a signed URL is available, the endpoint returns that URL as JSON regardless of this parameter. Other values, including an omitted parameter, return JSON.","in":"query","name":"download","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedArtifactUrl"}},"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"A short-lived signed URL. When the deployment stores artifacts locally, or URL signing is denied, the same field points back at this route with `download=1`, which answers the object's own bytes."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle, or no such artifact under it."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The artifact download could not be prepared because storage access or URL signing failed. This does not mean the artifact is absent."}},"summary":"Get a signed download URL for one cycle artifact","tags":["cycles"]}},"/v1/api/cycles/{id}/assign":{"patch":{"operationId":"assignCycle","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Assign"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cycle"}}},"description":"The updated cycle. Followers are untouched — handing work over does not drop the people watching it."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The assignee is not a member of this workspace."}},"summary":"Hand a cycle to a teammate","tags":["cycles"]}},"/v1/api/cycles/{id}/continue":{"post":{"operationId":"continueBranchCycle","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchCycleOpened"}}},"description":"The cycle is draft and the project loop can dispatch it, or it had already left triage."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The cycle branch is not at the stored commit, or the cycle changed since it was read."}},"summary":"Admit a branch cycle once its branch is at the pushed commit","tags":["cycles"]}},"/v1/api/cycles/{id}/e2e":{"get":{"operationId":"getCycleE2eReport","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleE2eReport"}}},"description":"The e2e report. `status: not_run` with no journeys when the lane has not verified this cycle."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"The cycle's user-side verification: journeys, outcomes and evidence keys","tags":["cycles"]}},"/v1/api/cycles/{id}/events":{"get":{"operationId":"listCycleEvents","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ActivityEvent"},"type":"array"}}},"description":"The cycle's own activity rows, newest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List a cycle's own events","tags":["cycles"]}},"/v1/api/cycles/{id}/execute":{"post":{"operationId":"executeCycle","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"`machine` (default) or `desktop`.","in":"query","name":"mode","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleExecutionStarted"}}},"description":"The lifecycle run was started. It proceeds asynchronously — watch it on the stream or timeline endpoints."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle, or its project is gone."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The cycle's status does not allow execution."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The dispatch could not be queued and the cycle was not started. No partial state change was saved; retrying is safe."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Run a cycle's lifecycle","tags":["cycles"]}},"/v1/api/cycles/{id}/messages":{"get":{"operationId":"listCycleMessages","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Read this agent's thread instead of the cycle's.","in":"query","name":"agentId","required":false,"schema":{"type":"string"}},{"description":"Return only the newest this many messages (1–200). Omit for the full transcript.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WireMessage"},"type":"array"}}},"description":"The transcript, oldest first. An unknown cycle or unresolved thread returns an empty list."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The cycle's project is out of reach — a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Read a cycle's conversation","tags":["cycles"]},"post":{"operationId":"sendCycleMessage","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleMessage"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleTurn"}}},"description":"The message was stored on the cycle's conversation, and where it was delivered. No model answers it: a cycle in flight gets it verbatim in the coder's next turn (`urgent: true` cancels a running turn so the next one starts now), a ready draft is started, and a finished cycle delivers nothing and tells the project manager. A people-only mention, `deliver: false` and a replayed `messageId` are stored only. A client collaborator needs the project's message grant."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The supplied `messageId` is already in use — either on another conversation, or on this one with different content."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Send a message to a cycle's coder","tags":["cycles"]}},"/v1/api/cycles/{id}/review":{"get":{"operationId":"getCycleReviewEvidence","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleReviewEvidence"}}},"description":"A three-dot compare of the cycle branch against the commit it was cut from. While the cycle is in flight the head is the current branch tip; once it is delivered with an approved review, the head is the commit the review approved."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle, or it has no evidence to show yet (it has not run)."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host could not be reached."}},"summary":"Get the verified review evidence for a cycle","tags":["cycles"]}},"/v1/api/cycles/{id}/review/comments":{"get":{"operationId":"listCycleReviewComments","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewCommentList"}}},"description":"Every comment on the cycle, each marked `stale` when it was written against an older head than the one the review evidence reports now. When that head cannot be verified, `headSha` is null and every comment is stale."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle."}},"summary":"List the review comments on a cycle","tags":["cycles"]},"post":{"operationId":"createCycleReviewComment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReviewComment"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewComment"}}},"description":"The comment, anchored to the head it names."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle, or it has no review evidence yet."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The branch moved on: the comment's `headSha` is not the head the review evidence reports now."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The comment with its visual context is too large."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host could not be reached."}},"summary":"Comment on a cycle's review","tags":["cycles"]}},"/v1/api/cycles/{id}/review/comments/{commentId}":{"patch":{"operationId":"updateCycleReviewComment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"commentId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateReviewComment"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewComment"}}},"description":"The comment after the change. Setting the resolution it already has changes nothing."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle, or no such comment on it."}},"summary":"Resolve or reopen a cycle review comment","tags":["cycles"]}},"/v1/api/cycles/{id}/review/request-revision":{"post":{"operationId":"requestCycleRevision","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestRevision"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRevisionRequest"}}},"description":"The open comments on the reviewed head became one review item on the cycle's checklist. `started` is false with `reason: waiting_for_build` when every build agent is busy: the revision starts on its own once one frees."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle, or it has no review evidence yet."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The branch moved on, the cycle is running, or there is no open comment on the reviewed head."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The revision could not be queued. Nothing changed."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The cycle's work or retry history could not be read, or usage could not be verified so new spending is paused. Nothing changed."}},"summary":"Ask the cycle's build agent to address the open comments","tags":["cycles"]}},"/v1/api/cycles/{id}/stop":{"post":{"operationId":"stopCycle","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleStopped"}}},"description":"The cycle run moved to `canceled`. Cancellation takes effect between workflow steps: the current step completes, and subsequent steps do not start. A coding agent already running on a Cloud Machine is not interrupted by this call. `projectManagerNotified` indicates whether a waiting project run was notified; false is expected for a cycle executed independently."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"There is no running or suspended run to stop; the body names the status that was actually found."}},"summary":"Stop a running cycle","tags":["cycles"]}},"/v1/api/cycles/{id}/tasks":{"post":{"operationId":"addCycleTask","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCycleTask"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}},"description":"The created task. A finished (`done`) cycle reopens to run it: it takes a build agent, or waits as a ready draft while every build agent is busy."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived or paused, or the cycle was stopped, so it does not accept new tasks."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Add a task to a cycle","tags":["cycles"]}},"/v1/api/cycles/{id}/tasks/{taskId}":{"delete":{"operationId":"deleteCycleTask","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"taskId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"The task was deleted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such task under this cycle."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only a task in `queued` or `blocked` status can be deleted."}},"summary":"Remove a task from a cycle","tags":["cycles"]},"patch":{"operationId":"updateCycleTask","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"taskId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCycleTask"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}},"description":"The updated task."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such task under this cycle."}},"summary":"Update a task inside a cycle","tags":["cycles"]}},"/v1/api/cycles/{id}/timeline":{"get":{"operationId":"getCycleTimeline","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ActivityEvent"},"type":"array"}}},"description":"The cycle's activity rows merged with its tasks', oldest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List a cycle's events plus its tasks'","tags":["cycles"]}},"/v1/api/cycles/{id}/usage":{"get":{"operationId":"getCycleUsage","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUsageRollup"}}},"description":"Totals with breakdowns by execution lane (`byRole`) and worker promptKey (`byPromptKey`). Lanes without runs are omitted. `byPromptKey` includes a null bucket for runs without an assigned promptKey. Both breakdowns sum to `totals`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Get the cycle's cost and token roll-up","tags":["cycles"]}},"/v1/api/deliverables":{"get":{"operationId":"listDeliverables","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Deliverable"},"type":"array"}}},"description":"Saved deliverables, oldest first. Clients receive only published deliverables for projects they can access. Read an individual deliverable for `progress` and `approval`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List deliverables","tags":["deliverables"]}},"/v1/api/deliverables/packages":{"get":{"operationId":"listDeliverablePackages","parameters":[{"description":"Limit packages to this project","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeliverablePackageView"},"type":"array"}}},"description":"Agency drafts or client published snapshots, filtered by projectId when provided"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List client review packages","tags":["deliverables"]},"post":{"operationId":"createDeliverablePackage","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeliverablePackage"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePackageView"}}},"description":"Draft package"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Create a client review package draft","tags":["deliverables"]}},"/v1/api/deliverables/packages/suggestions":{"get":{"operationId":"getDeliverableSuggestions","parameters":[{"description":"Project whose completed work is grouped","in":"query","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableSuggestionsView"}}},"description":"Cached suggestions for the current source fingerprint"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Read private milestone suggestions","tags":["deliverables"]},"post":{"operationId":"generateDeliverableSuggestions","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableSuggestionInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableSuggestionsView"}}},"description":"Private suggestions; never publishes or schedules engineering"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Suggest coherent review milestones","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}":{"get":{"operationId":"getDeliverablePackage","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePackageView"}}},"description":"Published snapshot, plus draft for the agency"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."}},"summary":"Read a client review package","tags":["deliverables"]},"put":{"operationId":"updateDeliverablePackage","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePackageDraft"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePackageView"}}},"description":"Draft saved without changing published content"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Save review package draft","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/approvals":{"get":{"operationId":"listDeliverablePackageApprovals","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeliverableApproval"},"type":"array"}}},"description":"Review history"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."}},"summary":"Read package review decisions","tags":["deliverables"]},"post":{"operationId":"requestDeliverablePackageApproval","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestDeliverableApproval"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableApproval"}}},"description":"Review bound to the published snapshot"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Request a client review of the published package","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/approvals/{approvalId}/decide":{"post":{"operationId":"decideDeliverablePackageApproval","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"in":"path","name":"approvalId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideDeliverableApproval"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableApproval"}}},"description":"Recorded decision; grouping never dispatches engineering or deployment"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Record a decision on a published package version","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/preparations":{"get":{"operationId":"listDeliverablePreparations","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeliverablePreparationView"},"type":"array"}}},"description":"Preparation attempts"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Read agency preparation history","tags":["deliverables"]},"post":{"operationId":"startDeliverablePreparation","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePreparationView"}}},"description":"Durable preparation job"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Prepare recorded integrated review evidence","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/preparations/{jobId}":{"get":{"operationId":"getDeliverablePreparation","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"in":"path","name":"jobId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePreparationView"}}},"description":"Agency-only preparation"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Read preparation progress and candidate","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/preparations/{jobId}/apply":{"post":{"operationId":"applyDeliverablePreparation","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"in":"path","name":"jobId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePackageView"}}},"description":"Updated draft; published version is unchanged"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Apply a prepared candidate after concurrent draft edits","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/preparations/{jobId}/recording":{"get":{"operationId":"getDeliverablePreparationRecording","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"in":"path","name":"jobId","required":true,"schema":{"type":"string"}},{"description":"Set to `1` to download artifact bytes when a signed URL cannot be issued. The default JSON response then provides this route with `download=1` in its `url`. When a signed URL is available, the endpoint returns that URL as JSON regardless of this parameter. Other values, including an omitted parameter, return JSON.","in":"query","name":"download","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparationRecordingUrl"}},"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Signed video URL or authenticated recorded bytes"},"302":{"content":{"text/plain":{"schema":{"format":"binary","type":"string"}}},"description":"Redirect to signed video download"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Read an agency preparation recording","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/publish":{"post":{"operationId":"publishDeliverablePackage","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePackageView"}}},"description":"Published snapshot with agency supplied review evidence"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Publish an immutable client review version","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/recording":{"get":{"operationId":"getDeliverablePackageRecording","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"description":"Set to `1` to download artifact bytes when a signed URL cannot be issued. The default JSON response then provides this route with `download=1` in its `url`. When a signed URL is available, the endpoint returns that URL as JSON regardless of this parameter. Other values, including an omitted parameter, return JSON.","in":"query","name":"download","required":false,"schema":{"type":"string"}},{"description":"The published revision whose recording the page is reviewing","in":"query","name":"revision","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparationRecordingUrl"}},"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Signed video URL or authenticated recorded bytes"},"302":{"content":{"text/plain":{"schema":{"format":"binary","type":"string"}}},"description":"Redirect to signed video download"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Read the published package recording","tags":["deliverables"]}},"/v1/api/deliverables/packages/{deliverableId}/unpublish":{"post":{"operationId":"unpublishDeliverablePackage","parameters":[{"in":"path","name":"deliverableId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverablePackageView"}}},"description":"Withdrawn package; version history retained"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid package content or links"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Package is not ready or the review has changed"}},"summary":"Withdraw a review package","tags":["deliverables"]}},"/v1/api/deliverables/{cycleId}":{"get":{"operationId":"getDeliverable","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableView"}}},"description":"The deliverable with progress and approval state computed at read time."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."}},"summary":"Get one deliverable with its derived progress","tags":["deliverables"]},"put":{"operationId":"upsertDeliverable","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertDeliverable"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deliverable"}}},"description":"The saved draft. Use the publish operation to make it visible to clients."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such cycle in this workspace."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The deliverable could not be written."}},"summary":"Create or update a deliverable","tags":["deliverables"]}},"/v1/api/deliverables/{cycleId}/approvals":{"get":{"operationId":"listDeliverableApprovals","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeliverableApproval"},"type":"array"}}},"description":"The decision history. Both the agency and the in-scope customer read it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."}},"summary":"List the decisions asked about a deliverable","tags":["deliverables"]},"post":{"operationId":"requestDeliverableApproval","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestDeliverableApproval"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableApproval"}}},"description":"The open review request. Its `revision` and `revisionHash` are taken from the authorized deliverable, binding the request to the snapshot shown to the reviewer."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The reviewer is not a collaborator on this project, the body failed validation, or no active workspace was supplied. A review request does not grant project access."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Nothing is published yet, or that reviewer already has an open request for this revision."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request could not be opened."}},"summary":"Ask a reviewer to decide","tags":["deliverables"]}},"/v1/api/deliverables/{cycleId}/approvals/{approvalId}/decide":{"post":{"operationId":"decideDeliverableApproval","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"in":"path","name":"approvalId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideDeliverableApproval"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliverableDecision"}}},"description":"The decision, immutable from here, plus whether it shipped anything. It ships nothing unless the project's delivery policy says so."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The approval was requested from someone else. Only the person asked may answer."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The deliverable or its approval does not exist. An approval belonging to another deliverable cannot be decided through this endpoint."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The row in front of the reviewer is no longer the row they were asked about: a re-publish moved the revision, an in-place edit changed the content under a revision that did not move, the deliverable was withdrawn, or it was already decided."}},"summary":"Record the customer's decision","tags":["deliverables"]}},"/v1/api/deliverables/{cycleId}/publish":{"post":{"operationId":"publishDeliverable","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deliverable"}}},"description":"Now client-visible, with `submittedRevision` bumped. That snapshot is what the customer keeps reading until the next publish, so agency edits in between are not shown as if submitted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."}},"summary":"Publish a deliverable to the customer","tags":["deliverables"]}},"/v1/api/deliverables/{cycleId}/unpublish":{"post":{"operationId":"unpublishDeliverable","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deliverable"}}},"description":"The deliverable is internal again. `submittedRevision` retains the last revision shown to the customer."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing a deliverable is agency-only. A client collaborator may write exactly one thing in this family: the decision it was asked for."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deliverable in this workspace — or the caller may not see it, which answers the same 404 rather than confirming it exists."}},"summary":"Withdraw a deliverable from the customer","tags":["deliverables"]}},"/v1/api/deployments":{"get":{"operationId":"listDeployments","parameters":[{"description":"Only this project's deployments.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"`project` (canonical preview), `cycle-preview` or `production`. Unrecognized values are ignored and leave the list unfiltered.","in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Deployment"},"type":"array"}}},"description":"Matching deployments, oldest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List deployments","tags":["deployments"]},"post":{"operationId":"deployProduction","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployProduction"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentAccepted"}}},"description":"Handed to the pipeline. The row moves through `building` → `deploying` → `live` on its own; poll `GET /deployments/{id}`."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed validation — `projectId` is required — or the request named no active organization. Validation runs as middleware, so a malformed payload is answered 400 even when previews are switched off."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project, or no such repository on it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentRepoAmbiguous"}}},"description":"The project is archived, or it builds against several repositories and names no primary. Unarchive it or retry with `repoId` — `repos` is present only in the second case."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Preview deployments are switched off for this deployment of hlix."}},"summary":"Deploy a project to production","tags":["deployments"]}},"/v1/api/deployments/custom-domain":{"get":{"operationId":"getProductionCustomDomain","parameters":[{"description":"The project whose custom domain to check.","in":"query","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDomainStatus"}}},"description":"The domain's state, or `domain: null` when none is set."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"projectId is missing."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Custom domains are unavailable or the check failed."}},"summary":"Check the production deployment's custom domain","tags":["deployments"]},"put":{"operationId":"setProductionCustomDomain","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDomain"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomDomainStatus"}}},"description":"Connected (with the DNS records to add) or removed."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The body failed validation, or the domain is an hlix address."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Another project already holds this domain."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Custom domains are unavailable or the zone call failed."}},"summary":"Connect or remove the production deployment's custom domain","tags":["deployments"]}},"/v1/api/deployments/{id}":{"get":{"operationId":"getDeployment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}},"description":"The deployment row."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deployment in this workspace."}},"summary":"Get one deployment","tags":["deployments"]}},"/v1/api/deployments/{id}/touch":{"post":{"operationId":"touchDeployment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentTouched"}}},"description":"The TTL was extended. A project's canonical preview has no TTL, and touching it changes nothing."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such deployment in this workspace."}},"summary":"Extend a preview's time to live","tags":["deployments"]}},"/v1/api/environments/project/{projectId}":{"get":{"operationId":"listProjectEnvironments","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Environment"},"type":"array"}}},"description":"Every environment on the project, active or not."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List a project's environments","tags":["environments"]},"post":{"operationId":"createProjectEnvironment","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnvironment"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Environment"}}},"description":"The stored environment."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project does not exist in this workspace. Projects in other workspaces return the same 404 response."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The environment could not be written."}},"summary":"Create an environment","tags":["environments"]}},"/v1/api/environments/project/{projectId}/{id}":{"delete":{"operationId":"deleteProjectEnvironment","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedAck"}}},"description":"The environment is gone. Deleting one that was never there answers the same 200 — the call is idempotent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Delete an environment","tags":["environments"]},"patch":{"operationId":"updateProjectEnvironment","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEnvironment"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Environment"}}},"description":"The updated environment."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such environment in this workspace."}},"summary":"Update an environment","tags":["environments"]}},"/v1/api/events":{"get":{"operationId":"listEvents","parameters":[{"description":"UTC calendar-day window: 7, 30, 90 or 365, including today. Summary defaults to 30; omitted on the recent feed means all retained events.","in":"query","name":"days","required":false,"schema":{"type":"string"}},{"description":"Only events owned by this project, through its cycle/task/run or explicitly recorded project context. Always workspace-fenced.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"Only events recorded as user, agent or system.","in":"query","name":"actorType","required":false,"schema":{"type":"string"}},{"description":"Only events with this exact recorded actor id.","in":"query","name":"actorId","required":false,"schema":{"type":"string"}},{"description":"The cycle's events and its tasks' events. This selector takes precedence over all others.","in":"query","name":"cycleId","required":false,"schema":{"type":"string"}},{"description":"Every event of one trace. Checked second, ahead of `eventType` and the entity pair.","in":"query","name":"traceId","required":false,"schema":{"type":"string"}},{"description":"Exact event name, such as `task.merged`. Checked third.","in":"query","name":"eventType","required":false,"schema":{"type":"string"}},{"description":"`cycle` | `task` | `project` | `agent_run` | `approval`. Only read together with `entityId`.","in":"query","name":"entityType","required":false,"schema":{"type":"string"}},{"description":"The entity's id. Required with `entityType`.","in":"query","name":"entityId","required":false,"schema":{"type":"string"}},{"description":"Recent-activity page size, integer 1–500 (default 100). Supplying it, before or an activity filter selects the recent feed.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"ISO timestamp from the last event. Include beforeId for complete pagination when events share a timestamp. Without beforeId, preserves the legacy strictly-older behavior.","in":"query","name":"before","required":false,"schema":{"type":"string"}},{"description":"The last event id from the previous page, together with before. Results are ordered by timestamp and id descending; the database cursor retains full timestamp precision.","in":"query","name":"beforeId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ActivityEvent"},"type":"array"}}},"description":"The matching events, newest first — except the `cycleId` timeline, which is oldest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Invalid activity filters, no selector, or no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency membership required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List activity events","tags":["events"]}},"/v1/api/events/summary":{"get":{"operationId":"getActivitySummary","parameters":[{"description":"UTC calendar-day window: 7, 30, 90 or 365, including today. Summary defaults to 30; omitted on the recent feed means all retained events.","in":"query","name":"days","required":false,"schema":{"type":"string"}},{"description":"Only events owned by this project, through its cycle/task/run or explicitly recorded project context. Always workspace-fenced.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"Only events recorded as user, agent or system.","in":"query","name":"actorType","required":false,"schema":{"type":"string"}},{"description":"Only events with this exact recorded actor id.","in":"query","name":"actorId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivitySummary"}}},"description":"Agency-only. Counts all matching retained events in the period, independently of feed pagination. Daily counts are zero-filled UTC dates; actor breakdown is the top 50 and event types the top 20. This is best-effort activity, not the audit log or a guarantee of completed work."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Invalid filters or no active workspace."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency membership required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Summarize recorded workspace activity","tags":["events"]}},"/v1/api/follows":{"get":{"operationId":"listFollows","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Follow"},"type":"array"}}},"description":"The caller's follows, newest first. `target` is null when a followed resource has been deleted or is no longer visible. The follow remains available for removal."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List what you follow","tags":["follows"]},"post":{"operationId":"createFollow","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FollowTarget"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Follow"}}},"description":"The follow. Idempotent: following something twice answers with the existing row rather than creating a second one."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project or cycle in this workspace — or one a client collaborator was never granted (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The cycle is already assigned to the caller and appears in My work rather than Following."}},"summary":"Follow a project or a cycle","tags":["follows"]}},"/v1/api/follows/{targetType}/{targetId}":{"delete":{"operationId":"deleteFollow","parameters":[{"in":"path","name":"targetType","required":true,"schema":{"type":"string"}},{"in":"path","name":"targetId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unfollowed"}}},"description":"The follow was removed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller was not following that."}},"summary":"Stop following","tags":["follows"]}},"/v1/api/growth/chains":{"get":{"operationId":"listGrowthChains","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GrowthChain"},"type":"array"}}},"description":"One entry per capability."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Each capability's data-provider order and how each provider did in the last 7 days","tags":["growth"]}},"/v1/api/growth/chains/find_email/compare":{"post":{"operationId":"compareGrowthProviders","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareGrowthProviders"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthProviderComparison"}}},"description":"The original comparison sample, execution outcomes, independent cost status, and held credit. Repeat the same operation key and body to resume."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"A provider does not find emails or the comparison request is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin changes growth settings."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The operation key was already used with a different comparison request."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Run two email finders on the same sample of the workspace's leads","tags":["growth"]}},"/v1/api/growth/chains/{capability}":{"put":{"operationId":"updateGrowthChain","parameters":[{"in":"path","name":"capability","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthChain"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthChainUpdated"}}},"description":"The order now; it applies to the next lead pass."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"A provider named cannot serve this capability."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin changes growth settings."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such capability."}},"summary":"Set the order a capability tries its providers in, or go back to the default","tags":["growth"]}},"/v1/api/growth/citable-projects":{"get":{"operationId":"listGrowthCitableProjects","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GrowthCitableProject"},"type":"array"}}},"description":"Delivery projects that completed or had a deliverable approved by the client, most recently finished first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the finished delivery projects a growth brain may quote","tags":["growth"]}},"/v1/api/growth/enrich":{"get":{"operationId":"getGrowthEnrichPrice","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthEnrich"}}},"description":"The price per email sent; lookups on Hlix's key are included."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Hlix Enrich price: what one email sent to a lead built on Hlix's data costs","tags":["growth"]}},"/v1/api/growth/index":{"get":{"operationId":"getGrowthIndexStats","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthIndexStats"}}},"description":"Company counts; no workspace's identity or records are included."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"The size of Hlix's shared company index and how many of the workspace's companies it supplied","tags":["growth"]}},"/v1/api/growth/index/search":{"get":{"operationId":"searchGrowthIndex","parameters":[{"description":"Text in the company's name, description or domain.","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"Company countries, ISO codes, comma-separated (DE,AT).","in":"query","name":"countries","required":false,"schema":{"type":"string"}},{"description":"Company size bands, comma-separated (11-50,51-200).","in":"query","name":"sizes","required":false,"schema":{"type":"string"}},{"description":"Text in a person's title; only companies with such a person are returned.","in":"query","name":"title","required":false,"schema":{"type":"string"}},{"description":"Seniority levels, comma-separated (Director,C-Level); only companies with such a person are returned.","in":"query","name":"seniorities","required":false,"schema":{"type":"string"}},{"description":"Companies per page, 1–100; default 25.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"How many companies to skip, 0–2,000; default 0. Narrow the filters to reach further.","in":"query","name":"offset","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthIndexSearchPage"}}},"description":"One page of companies by name, each with its matching people. No email address or phone number is returned: the index holds none."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Search Hlix's shared index of companies and their people","tags":["growth"]}},"/v1/api/growth/leads/{leadId}":{"patch":{"operationId":"updateGrowthLead","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthLead"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadStatus"}}},"description":"The lead's status after the change."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No lead with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadRefusal"}}},"description":"Refused, with a `code`: `campaign_not_running` (not active, not GDPR-acknowledged, or its growth project is archived), `opted_out`, `suppressed` (address or domain on the do-not-contact list), `region_excluded` (the company is in a country the campaign excludes), `no_sendable_address` (a lookup already ran and found no verified address, so neither `new` nor `queued` can help), or `lookup_required` (`queued` on a lead never looked up: set it to `new`)."}},"summary":"Disqualify a lead or return it to the queue","tags":["growth"]}},"/v1/api/growth/leads/{leadId}/refine-reply":{"post":{"operationId":"refineGrowthReply","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefineGrowthReply"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthRefinedReply"}}},"description":"A suggested reply and the facts it cites; nothing was sent or queued."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No lead with this id on a growth project you manage."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The generated text failed its fact check."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The reply writer failed."}},"summary":"Refine a reply against the lead thread and sourced project context without sending","tags":["growth"]}},"/v1/api/growth/leads/{leadId}/reply":{"post":{"operationId":"sendGrowthReply","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendGrowthReply"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthReplySent"}}},"description":"Sent."},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthReplySent"}}},"description":"The send attempt was held; status reports the saved message state. Only scheduled emails remain queued."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No lead with this id on a growth project you manage."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Nothing was sent to this lead yet, or they opted out or are suppressed."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The mailbox refused the email."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mailbox sending is not set up on this deployment."}},"summary":"Answer a lead in their thread from the mailbox that wrote to them","tags":["growth"]}},"/v1/api/growth/leads/{leadId}/thread":{"get":{"operationId":"getGrowthThread","parameters":[{"in":"path","name":"leadId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthThread"}}},"description":"The lead and every email to and from them, oldest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No lead with this id on a growth project you manage."}},"summary":"Show a lead's whole email thread, drafts included","tags":["growth"]}},"/v1/api/growth/mailboxes":{"get":{"operationId":"listGrowthMailboxes","parameters":[{"description":"`true` also lists mailboxes that were disconnected; by default only the ones that can send are listed.","in":"query","name":"includeDisconnected","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthMailboxList"}}},"description":"The workspace's mailboxes, oldest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"A parameter is unknown or out of range."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspace's sending mailboxes with their warm-up and today's sends","tags":["growth"]}},"/v1/api/growth/mailboxes/connect":{"post":{"operationId":"connectGrowthMailbox","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectGrowthMailbox"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthMailboxConnect"}}},"description":"The sign-in address. After signing in the person returns to Growth settings with the new mailbox warming up."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin manages mailboxes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mailbox sending is not set up on this deployment."}},"summary":"Start connecting a Google or Microsoft mailbox to send from","tags":["growth"]}},"/v1/api/growth/mailboxes/{mailboxId}":{"delete":{"operationId":"disconnectGrowthMailbox","parameters":[{"in":"path","name":"mailboxId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthMailboxDisconnected"}}},"description":"The mailbox is disconnected; nothing more is sent from it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin manages mailboxes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No mailbox with this id in the workspace."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mailbox sending is not set up on this deployment."}},"summary":"Disconnect a mailbox and revoke its access","tags":["growth"]},"patch":{"operationId":"updateGrowthMailbox","parameters":[{"in":"path","name":"mailboxId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthMailbox"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthMailbox"}}},"description":"The mailbox after the change."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin manages mailboxes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No mailbox with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The mailbox connection or managed setup must be repaired before sending can resume."}},"summary":"Change a mailbox's daily limit or warm-up start, or pause and resume it","tags":["growth"]}},"/v1/api/growth/mailboxes/{mailboxId}/dns":{"get":{"operationId":"checkGrowthMailboxDns","parameters":[{"in":"path","name":"mailboxId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthMailboxDns"}}},"description":"What public DNS says about the domain right now."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No mailbox with this id in the workspace."}},"summary":"Check the mailbox domain's SPF, DKIM and DMARC records","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/configuration":{"get":{"operationId":"getManagedMailboxConfiguration","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxConfiguration"}}},"description":"Configuration without credentials."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Read managed mailbox configuration and commercial readiness","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/import":{"post":{"operationId":"importManagedMailboxes","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxImportInput"}}},"required":true},"responses":{"200":{"description":"Persisted onboarding orders; follow nextCursor to import the next bounded batch."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Connect existing InboxKit domains and mailboxes without purchasing them again","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/orders":{"get":{"operationId":"listManagedMailboxOrders","parameters":[{"description":"1–50, defaults to 20.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"nextCursor from the previous page.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrderList"}}},"description":"Orders and independent resource states."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List managed mailbox orders","tags":["growth"]},"post":{"operationId":"orderManagedMailboxes","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrderInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrder"}}},"description":"Durable order; revisiting an idempotency key never purchases twice."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Insufficient workspace spending headroom."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Persist a managed mailbox order before provider dispatch","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/orders/{orderId}":{"get":{"operationId":"getManagedMailboxOrder","parameters":[{"in":"path","name":"orderId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrder"}}},"description":"Stored state only, without provider writes."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Read a saved managed mailbox order","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/orders/{orderId}/reconcile":{"post":{"operationId":"reconcileManagedMailboxOrder","parameters":[{"in":"path","name":"orderId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrder"}}},"description":"Reconciled order."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Reconcile provider evidence without replaying uncertain purchases","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/quotes":{"post":{"operationId":"quoteManagedMailboxes","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxQuoteInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxQuote"}}},"description":"Observed prices, not a locked quote. Empty mailbox lists support domain availability checks only."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Observe domain availability and recurring mailbox prices","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/resources":{"get":{"operationId":"listManagedMailboxResources","parameters":[{"description":"1–50, defaults to 20.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"nextCursor from the previous page.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxResourceList"}}},"description":"Hosting, transport, warmup and sending states."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List managed domains and mailbox resources","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/resources/{resourceId}/cancel-hosting":{"post":{"operationId":"cancelManagedMailboxHosting","parameters":[{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxResourceActionInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrder"}}},"description":"Updated order; cancellation preserves inbox history."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Block new cold sends immediately and request hosting cancellation","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/resources/{resourceId}/cancel-warmup":{"post":{"operationId":"cancelManagedMailboxWarmup","parameters":[{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxResourceActionInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrder"}}},"description":"Updated order; cancellation preserves inbox history."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Cancel warmup separately from mailbox hosting","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/resources/{resourceId}/remove-domain":{"post":{"operationId":"removeManagedMailboxDomain","parameters":[{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxResourceActionInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrder"}}},"description":"Updated order; cancellation preserves inbox history."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Request domain removal without claiming a refund or renewal cancellation","tags":["growth"]}},"/v1/api/growth/managed-mailboxes/resources/{resourceId}/repair":{"post":{"operationId":"repairManagedMailboxResource","parameters":[{"in":"path","name":"resourceId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxResourceActionInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedMailboxOrder"}}},"description":"Updated order; cancellation preserves inbox history."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Insufficient workspace spending headroom to retry a refused purchase."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Resource not found in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Request conflicts with the recorded order or current quote."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider or commercial configuration is unavailable."}},"summary":"Repair a failed resource step without repurchasing successful resources","tags":["growth"]}},"/v1/api/growth/messages/{messageId}":{"patch":{"operationId":"classifyGrowthMessage","parameters":[{"in":"path","name":"messageId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyGrowthMessage"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthClassification"}}},"description":"The reply's sort. Interested opens a deal; unsubscribe suppresses the address at once."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No email with this id on a growth project you manage."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only a reply can be sorted."}},"summary":"Sort a reply by hand","tags":["growth"]}},"/v1/api/growth/messages/{messageId}/approve":{"post":{"operationId":"approveGrowthMessage","parameters":[{"in":"path","name":"messageId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveGrowthMessage"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthMessage"}}},"description":"The email, now scheduled. A first email or an answer goes at the next send inside the recipient's working day; a follow-up waits for its day."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No email with this id on a growth project you manage."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The email is no longer a draft awaiting approval."}},"summary":"Approve a drafted email, optionally edited, so it sends","tags":["growth"]}},"/v1/api/growth/messages/{messageId}/resolve":{"post":{"operationId":"resolveGrowthMessage","parameters":[{"in":"path","name":"messageId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveGrowthMessage"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthMessageResolved"}}},"description":"The email's status now: sent (its follow-ups get their days) or failed (its sequence stops, and a first email takes the lead out of line)."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No email with this id on a growth project you manage."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The email's delivery is not unknown: it was sent, failed, or is still being sent."}},"summary":"Record whether an email whose delivery was unknown went out","tags":["growth"]}},"/v1/api/growth/plays/{playId}":{"patch":{"operationId":"updateGrowthPlay","parameters":[{"in":"path","name":"playId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthPlay"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthPlay"}}},"description":"The campaign after the edit."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only a person can acknowledge GDPR for a campaign."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No campaign with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The campaign cannot be active before GDPR is acknowledged, or while its project is archived."}},"summary":"Edit or launch a campaign","tags":["growth"]}},"/v1/api/growth/plays/{playId}/research":{"post":{"operationId":"researchGrowthPlay","parameters":[{"in":"path","name":"playId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthResearchResult"}}},"description":"The bounded research pass result and persisted batch; refusals never start another campaign."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"Find or resume leads for one campaign without repeating completed research","tags":["growth"]}},"/v1/api/growth/projects":{"post":{"operationId":"createGrowthProject","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGrowthProject"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthProjectCreated"}}},"description":"The project and its first run, already running in the background. Progress streams on the project's observe feed."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The website is not a public address, or a cited project is not a finished delivery project of this workspace (see `GET /v1/api/growth/citable-projects`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The free plan already holds its maximum number of active projects, or the workspace is over a spend cap."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The client account does not exist in this workspace."}},"summary":"Create a growth project from a website and start its research run","tags":["growth"]}},"/v1/api/growth/projects/{projectId}":{"get":{"operationId":"getGrowthProject","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthState"}}},"description":"The growth project's current state."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"Show a growth project's brain, campaigns and last run","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/autopilot":{"put":{"operationId":"setGrowthAutopilot","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthAutopilot"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthAutopilot"}}},"description":"The saved setting."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived."}},"summary":"Turn the project's budget autopilot on or off","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/batches":{"get":{"operationId":"listGrowthBatches","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Only this campaign's research batches.","in":"query","name":"playId","required":false,"schema":{"type":"string"}},{"description":"One batch, including older emailed lists.","in":"query","name":"batchId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthBatchPage"}}},"description":"Latest research batches, or a requested batch."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"Research lists and their twelve-hour review deadlines","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/batches/{batchId}/approve":{"post":{"operationId":"approveGrowthBatch","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"batchId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthBatchApproved"}}},"description":"Released for outreach; campaign, schedule, suppression and mailbox rules still apply."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The batch is not awaiting review or its campaign is inactive or retargeted."}},"summary":"Release a researched lead list before its review deadline","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/brain":{"put":{"operationId":"updateGrowthBrain","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthBrain"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthBrainRow"}}},"description":"The stored brain. Every source must be a web address or a delivered project."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"Replace the Company brain","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/daily-budget":{"put":{"operationId":"setGrowthProjectBudget","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthProjectBudget"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthProjectBudget"}}},"description":"The saved budget."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived."}},"summary":"Set or remove what all of a growth project's campaigns may spend per day","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/inbox":{"get":{"operationId":"listGrowthInbox","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Thread filter: `needs_reply` (unanswered replies), `hot` (unanswered interested replies), `replies` (all threads with a reply), `replied`, `sent` (no reply), `review` (drafts awaiting approval) or `unknown` (delivery needs confirmation).","in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"description":"Page size, 1–100; default 50.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"How many threads to skip; default 0.","in":"query","name":"offset","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthInboxPage"}}},"description":"One page of threads, newest activity first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"A filter is out of range or unknown."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"List a growth project's email threads, one per lead","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/index-leads":{"post":{"operationId":"addGrowthIndexLeads","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddGrowthIndexLeads"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadListResult"}}},"description":"The people were added like an uploaded list's, and each company without a chosen person is named for the project's campaigns to research. Adding is free; an email address is found later at the usual Hlix Enrich price. Do-not-contact entries, people who opted out and companies in a country the project excludes are left out."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace, or none of the ids is in the index."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived."}},"summary":"Add people and companies from Hlix's shared index to a growth project","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/lead-exports/{exportId}":{"get":{"operationId":"downloadGrowthLeadExport","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"exportId","required":true,"schema":{"type":"string"}},{"description":"Use 1 for the authenticated CSV attachment.","in":"query","name":"download","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"text/csv":{"schema":{"format":"binary","type":"string"}}},"description":"CSV attachment, with spreadsheet formula cells neutralized."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"Download a project's lead CSV export","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/lead-lists":{"post":{"operationId":"uploadGrowthLeadList","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadGrowthLeadList"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadListResult"}}},"description":"The people the list named, matched to the workspace's companies and people. Nobody is written to because of the upload: each campaign scores the listed companies and checks a listed address before it is used. Rows on the do-not-contact list, people who opted out, and companies in a country the project excludes are left out."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The file has no data rows, more than 5,000 rows, or no row names a person at a company."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The file is larger than 2 MB."}},"summary":"Upload a lead list to a growth project","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/lead-lists/from-tool-call":{"post":{"operationId":"importGrowthToolResult","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportGrowthToolResult"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthToolResultImport"}}},"description":"The people the saved result named, imported exactly like an uploaded lead list. The original call keeps its cost; importing buys nothing and sends nothing."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The request body is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such tool call in this project, or not a growth project."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived, or the call has no completed, unredacted result."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The result holds more than 5,000 records."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The result has no list of records at `recordsPath`, or no record names a person at a company."}},"summary":"Import the people a completed tool call returned","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/leads":{"get":{"operationId":"listGrowthLeads","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"Search company, contact and evidence text; literal match, up to 200 characters.","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"One lead within this project, including all evidence and provenance.","in":"query","name":"leadId","required":false,"schema":{"type":"string"}},{"description":"Only this campaign's leads.","in":"query","name":"playId","required":false,"schema":{"type":"string"}},{"description":"Only leads from this research batch.","in":"query","name":"batchId","required":false,"schema":{"type":"string"}},{"description":"Only leads in this status: new, queued, contacted, replied, converted, disqualified or opted_out.","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"description":"Only leads whose fit score (0–100) is at least this.","in":"query","name":"minFit","required":false,"schema":{"type":"string"}},{"description":"Page size, 1–200; default 50.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"How many leads to skip; default 0.","in":"query","name":"offset","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadPage"}}},"description":"One page of leads, best fit first. A lead's email is looked up only when it is among the best leads the workspace can send to that day."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"A filter is out of range or unknown."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"List a growth project's leads with their evidence and provenance","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/leads/export":{"post":{"operationId":"exportGrowthLeads","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadExportFilters"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadExportResult"}}},"description":"Complete CSV export with exact row count and authenticated download path. Each Hlix Enrich address not charged before is charged once."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace has insufficient Hlix Dollars for the Hlix Enrich addresses in this export. Nothing was exported. The response identifies how many addresses require credit."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"More than 10,000 matching leads or 20 MiB of CSV. Narrow the filters; no partial export is created."}},"summary":"Export all matching leads to CSV","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/leads/export/preview":{"post":{"operationId":"previewGrowthLeadExport","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadExportFilters"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthLeadExportPreview"}}},"description":"Rows, and the Hlix Enrich addresses not charged before with their price."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"More than 10,000 matching leads or 20 MiB of CSV."}},"summary":"What exporting the matching leads would cost, before exporting","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/overview":{"get":{"operationId":"getGrowthOverview","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"description":"7 (default) or 30 UTC days ending today.","in":"query","name":"days","required":false,"schema":{"type":"string"}},{"description":"Only this campaign of the project.","in":"query","name":"campaignId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthOverview"}}},"description":"Per-day figures for the range, totals for it and the span before it, the week and the budget."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id, or no such campaign in it."}},"summary":"A growth project's outreach, hot leads and spend per day, with its daily budget","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/plays":{"post":{"operationId":"createGrowthPlay","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGrowthPlay"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthPlay"}}},"description":"The saved campaign; draft unless explicitly activated with a person's GDPR acknowledgement."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only a person can acknowledge GDPR."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived or GDPR acknowledgement is missing."}},"summary":"Create one campaign","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/runs":{"post":{"operationId":"rerunGrowthProject","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RerunGrowth"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthRun"}}},"description":"The new run, running in the background. On success its three campaigns replace the earlier drafts."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The website is not a public address, or a cited project is not a finished delivery project of this workspace."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A run is already in progress, the project is archived, or it has no website yet."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Run the website research again","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/sending-schedule":{"get":{"operationId":"getGrowthSendingSchedule","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthProjectSendingSchedule"}}},"description":"Stored overrides and effective country schedules."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"Resolve project and campaign sending schedules","tags":["growth"]},"patch":{"operationId":"updateGrowthSendingSchedule","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthSendingSchedule"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthProjectSendingSchedule"}}},"description":"The saved override and effective schedules."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived."}},"summary":"Set or inherit a project's sending schedule","tags":["growth"]}},"/v1/api/growth/projects/{projectId}/spend":{"get":{"operationId":"getGrowthSpend","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GrowthPlaySpend"},"type":"array"}}},"description":"One row per campaign of the project, oldest first. Days are UTC; the last 30 days include today."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No growth project with this id in the workspace."}},"summary":"Show each campaign's data-provider spend for today and the last 30 days","tags":["growth"]}},"/v1/api/growth/providers":{"get":{"operationId":"listGrowthProviders","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GrowthProvider"},"type":"array"}}},"description":"Every growth data provider. Stored keys are represented only by `hasApiKey`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List growth data providers and the workspace's key state","tags":["growth"]}},"/v1/api/growth/providers/{provider}":{"patch":{"operationId":"updateGrowthProvider","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthProvider"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthProvider"}}},"description":"The provider state after the change. Off means off on Hlix's key too."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The provider takes no workspace key, or a setting it does not declare was sent."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Turn a growth provider on or off for the workspace, or change its settings","tags":["growth"]}},"/v1/api/growth/providers/{provider}/key":{"delete":{"operationId":"removeGrowthProviderKey","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthProvider"}}},"description":"The provider state after the key was removed."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The provider takes no workspace key, or a setting it does not declare was sent."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Remove the workspace's own key for a growth provider","tags":["growth"]},"put":{"operationId":"saveGrowthProviderKey","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveGrowthProviderKey"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthProvider"}}},"description":"The provider state after saving and enabling the key."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The provider takes no workspace key, or a setting it does not declare was sent."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Add or replace the workspace's own key for a growth provider","tags":["growth"]}},"/v1/api/growth/sendkit":{"get":{"operationId":"getGrowthSendkitConnection","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthSendkitReadiness"}}},"description":"Verified connection state. Provider connection alone does not enable sending."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Inspect the workspace's SendKit connection and mailbox inventory","tags":["growth"]}},"/v1/api/growth/sendkit/connect":{"post":{"operationId":"connectGrowthSendkit","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthSendkitReadiness"}}},"description":"Connection state after verification. Credentials remain server-side and no campaign is started."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin manages mailboxes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Verify and bind the deployment-configured SendKit workspace","tags":["growth"]}},"/v1/api/growth/settings":{"get":{"operationId":"getGrowthSettings","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthSettingsState"}}},"description":"Settings (defaults where none were set) and what this calendar month has spent against the hard cap."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"The workspace's growth settings and this month's growth spend","tags":["growth"]},"patch":{"operationId":"updateGrowthSettings","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGrowthSettings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthSettingsState"}}},"description":"The settings now. The cap stops new lead data and new drafts once the month's spend reaches it; the rules apply from the next send."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"A field is invalid, or the sending window would end before it starts."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin changes growth settings."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Change the hard cap, the sending rules or the booking link","tags":["growth"]}},"/v1/api/growth/suppressions":{"get":{"operationId":"listGrowthSuppressions","parameters":[{"description":"Only entries whose address or domain contains this.","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"Page size, 1–200; default 50.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"How many entries to skip; default 0.","in":"query","name":"offset","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthSuppressionPage"}}},"description":"One page, newest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"The body or a parameter is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the do-not-contact list","tags":["growth"]},"post":{"operationId":"addGrowthSuppressions","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddGrowthSuppressions"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthSuppressionsAdded"}}},"description":"Entries added. Matching leads are removed from the sending queue and their unsent emails are cancelled."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"No line was an email address or a domain."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin changes growth settings."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Add addresses and domains to the do-not-contact list","tags":["growth"]}},"/v1/api/growth/suppressions/{suppressionId}":{"delete":{"operationId":"removeGrowthSuppression","parameters":[{"in":"path","name":"suppressionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrowthSuppressionRemoved"}}},"description":"Removed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only an owner or admin changes growth settings."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such entry in the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The entry is an unsubscribe, a complaint or a bounce, which cannot be removed."}},"summary":"Remove an entry a person added to the do-not-contact list","tags":["growth"]}},"/v1/api/hosting-regions":{"get":{"operationId":"listHostingRegions","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HostingCatalog"}}},"description":"Deployment catalog; contains no workspace data"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"security":[],"summary":"List configured regional entry points","tags":["hosting"]}},"/v1/api/integrations/linear/bindings":{"get":{"operationId":"listLinearBindings","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearBindingsResponse"}}},"description":"Project sources"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"List workspace Linear sources","tags":["linear"]}},"/v1/api/integrations/linear/projects/{projectId}":{"delete":{"operationId":"deleteProjectLinearBinding","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearDeleteResponse"}}},"description":"Disconnected"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"Disconnect a source without changing existing cycles","tags":["linear"]},"get":{"operationId":"getProjectLinearBinding","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearBindingResponse"}}},"description":"Source or null"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"Read a project's Linear source","tags":["linear"]},"put":{"operationId":"saveProjectLinearBinding","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearBindingInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearBindingResponse"}}},"description":"Saved source; existing issues are imported explicitly"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"Save source filters and automatic or manual start behavior","tags":["linear"]}},"/v1/api/integrations/linear/projects/{projectId}/issues":{"get":{"operationId":"listProjectLinearIssues","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearIssuesResponse"}}},"description":"Imported issues"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"List imported Linear issues and their work links","tags":["linear"]}},"/v1/api/integrations/linear/projects/{projectId}/issues/{issueId}":{"get":{"operationId":"getProjectLinearIssue","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"issueId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearIssueResponse"}}},"description":"Issue, comments, attachments and related context"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"Read an imported issue with its full Linear context","tags":["linear"]}},"/v1/api/integrations/linear/projects/{projectId}/issues/{issueId}/start":{"post":{"operationId":"startProjectLinearIssue","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"issueId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearStartResponse"}}},"description":"Durable work proposal"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"Refresh an issue and send it to the project manager","tags":["linear"]}},"/v1/api/integrations/linear/projects/{projectId}/sync":{"post":{"operationId":"syncProjectLinearIssues","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearSyncResponse"}}},"description":"Import result"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"Import current matching open issues","tags":["linear"]}},"/v1/api/integrations/linear/{installId}/catalog":{"get":{"operationId":"getLinearCatalog","parameters":[{"in":"path","name":"installId","required":true,"schema":{"type":"string"}},{"description":"Team whose projects and labels to list","in":"query","name":"teamId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearCatalogResponse"}}},"description":"Paginated provider catalog collected in full"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or connection unavailable"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source changed, overlaps another project, or work cannot start"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Linear connection request failed"}},"summary":"List accessible Linear teams, projects and labels","tags":["linear"]}},"/v1/api/mcp-servers":{"get":{"operationId":"listMcpServers","parameters":[{"description":"List only connections belonging to this project. Omitted lists workspace connections.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/McpServer"},"type":"array"}}},"description":"Every registered server, enabled or not. `env` values are write-only: each key is listed and every value reads as an empty string."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List MCP servers in workspace or project scope","tags":["mcp-servers"]},"post":{"operationId":"createMcpServer","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMcpServer"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServer"}}},"description":"The stored row."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing the registry is owner/admin only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The server could not be written."}},"summary":"Register an MCP server","tags":["mcp-servers"]}},"/v1/api/mcp-servers/{id}":{"delete":{"operationId":"deleteMcpServer","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"The server is gone."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing the registry is owner/admin only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such MCP server in this workspace."}},"summary":"Delete an MCP server","tags":["mcp-servers"]},"get":{"operationId":"getMcpServer","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServer"}}},"description":"The row."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such MCP server in this workspace."}},"summary":"Get one MCP server","tags":["mcp-servers"]},"patch":{"operationId":"updateMcpServer","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMcpServer"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServer"}}},"description":"The updated row. An `env` value sent as an empty string keeps the stored value for that key."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing the registry is owner/admin only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such MCP server in this workspace."}},"summary":"Update an MCP server","tags":["mcp-servers"]}},"/v1/api/mcp-servers/{id}/connect":{"post":{"operationId":"connectMcpServer","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpConnect"}}},"description":"The provider authorization URL and safe connection status. Requires a signed-in browser session."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing the registry is owner/admin only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such MCP server in this workspace."}},"security":[{"sessionCookie":[]}],"summary":"Start hosted OAuth for a remote MCP connection","tags":["mcp-servers"]}},"/v1/api/mcp-servers/{id}/disconnect":{"post":{"operationId":"disconnectMcpServer","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServer"}}},"description":"The disconnected server. Its configuration remains saved."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing the registry is owner/admin only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such MCP server in this workspace."}},"summary":"Disconnect OAuth and invalidate discovered tools","tags":["mcp-servers"]}},"/v1/api/mcp-servers/{id}/discover":{"post":{"operationId":"discoverMcpServer","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServer"}}},"description":"The connection with its saved discovery status. No tool is executed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Writing the registry is owner/admin only. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such MCP server in this workspace."}},"summary":"Discover and save the remote server tool catalog","tags":["mcp-servers"]}},"/v1/api/me/portals":{"get":{"operationId":"listMyClientPortals","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkspacePortal"},"type":"array"}}},"description":"One dashboard per agency. Includes live published invitations bound to a verified email; GET does not accept invitations or change staff/personal workspace membership."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"security":[{"sessionCookie":[]}],"summary":"Discover your available agency client portals","tags":["client-portals"]}},"/v1/api/me/workspace":{"post":{"operationId":"initializePersonalWorkspace","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonalWorkspace"}}},"description":"Idempotent workspace creation; requires a browser user session."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"security":[{"sessionCookie":[]}],"summary":"Initialize your personal Hlix workspace","tags":["client-portals"]}},"/v1/api/memories":{"get":{"operationId":"listMemories","parameters":[{"description":"`org` | `project` | `cycle` | `task` | `agent`.","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"The scoped entity's id.","in":"query","name":"scopeId","required":false,"schema":{"type":"string"}},{"description":"`tentative` | `approved` | `archived`.","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"description":"Filter memory text by substring. For semantic search with similarity scores, use `/memories/search/{scope}/{scopeId}`.","in":"query","name":"q","required":false,"schema":{"type":"string"}},{"description":"Page size, clamped to 1–500; 100 when omitted or not an integer.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"Rows to skip. Ask for the next page with `offset` + `limit` until a page comes back shorter than `limit`.","in":"query","name":"offset","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Memory"},"type":"array"}}},"description":"The matching memories. No `score` — nothing was ranked."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; memory is restricted to the agency. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspace's memories","tags":["memories"]},"post":{"operationId":"createMemory","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMemory"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Memory"}}},"description":"The stored memory, read back from the store."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; memory is restricted to the agency. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The supersession target is not a current memory in the same scope."}},"summary":"Write a memory","tags":["memories"]}},"/v1/api/memories/extract/{cycleId}":{"post":{"operationId":"extractCycleMemories","parameters":[{"in":"path","name":"cycleId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"Extraction finished. Read the project knowledge disposition to distinguish saved, skipped and rejected scope results. Failed classifier, embedding or storage writes return an error."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; memory is restricted to the agency. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Extract memories from a finished cycle","tags":["memories"]}},"/v1/api/memories/project/{projectId}":{"get":{"operationId":"getProjectKnowledge","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectKnowledge"}}},"description":"Only this project's actual project, cycle and task scopes."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; memory is restricted to the agency. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No memory with that id in this workspace — under the named scope, or under any of them when none was named."}},"summary":"Read learned knowledge and recording availability for one project","tags":["memories"]}},"/v1/api/memories/search/{scope}/{scopeId}":{"get":{"operationId":"searchMemories","parameters":[{"in":"path","name":"scope","required":true,"schema":{"type":"string"}},{"in":"path","name":"scopeId","required":true,"schema":{"type":"string"}},{"description":"The text to rank against. Omitted, the scope's memories come back unranked.","in":"query","name":"q","required":false,"schema":{"type":"string"}},{"description":"`tentative` | `approved` | `archived`.","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"description":"Page size, clamped to 1–500.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Memory"},"type":"array"}}},"description":"Memories ranked by similarity, each carrying `score` (cosine similarity, 1 − distance)."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; memory is restricted to the agency. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Search one scope by meaning","tags":["memories"]}},"/v1/api/memories/{id}":{"delete":{"operationId":"deleteMemory","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"`org` | `project` | `cycle` | `task` | `agent`.","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"The scoped entity's id.","in":"query","name":"scopeId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"The memory is gone."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; memory is restricted to the agency. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No memory with that id in this workspace — under the named scope, or under any of them when none was named."}},"summary":"Delete a memory","tags":["memories"]},"get":{"operationId":"getMemory","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"`org` | `project` | `cycle` | `task` | `agent`.","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"The scoped entity's id.","in":"query","name":"scopeId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Memory"}}},"description":"The memory. Supplying `scope` and `scopeId` narrows the lookup; otherwise all namespaces are searched."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; memory is restricted to the agency. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No memory with that id in this workspace — under the named scope, or under any of them when none was named."}},"summary":"Get one memory","tags":["memories"]},"patch":{"operationId":"updateMemory","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"`org` | `project` | `cycle` | `task` | `agent`.","in":"query","name":"scope","required":false,"schema":{"type":"string"}},{"description":"The scoped entity's id.","in":"query","name":"scopeId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemory"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Memory"}}},"description":"The updated memory. `category`, `key` and `source` are immutable — they are carried over from the stored row."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; memory is restricted to the agency. (Or the caller is not a member of this workspace at all.)"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No memory with that id in this workspace — under the named scope, or under any of them when none was named."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The supersession target is not a current memory in the same scope."}},"summary":"Update a memory","tags":["memories"]}},"/v1/api/mentions":{"get":{"operationId":"listUnreadMentions","parameters":[{"description":"Page size, clamped to 1–500; 100 when omitted or not an integer.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"Mentions to skip, newest first. `total` counts every unread mention, so it says how many pages there are.","in":"query","name":"offset","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentionInbox"}}},"description":"One page of the caller's own unread mentions, newest first, and `total`, the count of all of them."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the caller's unread mentions","tags":["mentions"]}},"/v1/api/mentions/read":{"post":{"operationId":"markMentionsRead","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentionRead"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentionReadAck"}}},"description":"The ids that actually changed. An id belonging to another person, or one already read, is absent — naming somebody else's mention does nothing rather than failing."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Mark the caller's mentions read","tags":["mentions"]}},"/v1/api/mobile-provider":{"get":{"operationId":"getMobileProvider","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileProviderState"}}},"description":"Workspace mobile-provider state; no credentials are returned."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency-only reads; owner or admin required for credential changes and tests."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Settings are temporarily unavailable."}},"summary":"Read mobile emulators and devices billing configuration","tags":["mobile-provider"]},"patch":{"operationId":"toggleMobileProvider","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleMobileProvider"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileProviderState"}}},"description":"Workspace mobile-provider state; no credentials are returned."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency-only reads; owner or admin required for credential changes and tests."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Save a key before enabling it."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Settings are temporarily unavailable."}},"summary":"Choose workspace or Hlix funding for new mobile builds","tags":["mobile-provider"]}},"/v1/api/mobile-provider/key":{"delete":{"operationId":"removeMobileProviderKey","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileProviderState"}}},"description":"Workspace mobile-provider state; no credentials are returned."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency-only reads; owner or admin required for credential changes and tests."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Settings are temporarily unavailable."}},"summary":"Remove the key for new builds; existing resources retain their cleanup credentials","tags":["mobile-provider"]},"put":{"operationId":"saveMobileProviderKey","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveMobileProviderKey"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileProviderState"}}},"description":"Workspace mobile-provider state; no credentials are returned."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency-only reads; owner or admin required for credential changes and tests."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Limrun could not verify the key; no key material is returned."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Settings are temporarily unavailable."}},"summary":"Verify and save a workspace Limrun key for new builds","tags":["mobile-provider"]}},"/v1/api/mobile-provider/test":{"post":{"operationId":"testMobileProviderKey","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestMobileProviderKey"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileProviderTest"}}},"description":"The account can be read with this key; no billable instance was started."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency-only reads; owner or admin required for credential changes and tests."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No key has been saved."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Limrun could not verify the key; no key material is returned."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Settings are temporarily unavailable."}},"summary":"Check a supplied or saved Limrun key without allocating a device","tags":["mobile-provider"]}},"/v1/api/model-config":{"get":{"operationId":"listAiSettings","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CoreSettingsRow"},"type":"array"}}},"description":"Configured AI settings: workspace rows have `projectId: null`, followed by project overrides. Omitted groups use defaults."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspace's AI settings rows","tags":["model-config"]}},"/v1/api/model-config/catalog":{"get":{"operationId":"listModelCatalog","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelCatalog"}}},"description":"Model catalog, with freshness metadata."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List current tool-capable chat models","tags":["model-config"]}},"/v1/api/model-config/projects/{projectId}/resolved":{"get":{"operationId":"getResolvedProjectAiSettings","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedSettings"}}},"description":"What would run for this project (its override, else the workspace's, else the default), and which setting chose each field."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."}},"summary":"Resolve a project's AI settings, with provenance","tags":["model-config"]}},"/v1/api/model-config/projects/{projectId}/{slot}":{"delete":{"operationId":"clearProjectAiSettings","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"slot","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedAck"}}},"description":"Cleared; the project now uses the workspace's setting, or the default."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The path segment is not a settings group (`project_manager` or `cycle`), or the request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Changing a project's settings is agency administration; a client collaborator is refused even with message access."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace, or it had no override to clear."}},"summary":"Clear a project's override of one settings group","tags":["model-config"]},"put":{"operationId":"setProjectAiSettings","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"slot","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertSettings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoreSettingsRow"}}},"description":"The stored row. Omitted fields keep their value and null clears one; a cleared field inherits from the workspace."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The path segment is not a settings group (`project_manager` or `cycle`), the JSON body failed validation, the projectManager group was given a cycle-only field, the coder cannot use the selected provider, or the request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Changing a project's settings is agency administration; a client collaborator is refused even with message access."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The settings changed while this request was being checked; read them again and retry."}},"summary":"Set a project's override of one settings group","tags":["model-config"]}},"/v1/api/model-config/resolved":{"get":{"operationId":"getResolvedAiSettings","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedSettings"}}},"description":"What the workspace resolves to, and which setting chose each field."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Resolve the workspace's AI settings, with provenance","tags":["model-config"]}},"/v1/api/model-config/{slot}":{"delete":{"operationId":"clearAiSettings","parameters":[{"in":"path","name":"slot","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedAck"}}},"description":"Cleared; the group falls back to the default."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The path segment is not a settings group (`project_manager` or `cycle`), or the request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Changing workspace settings requires owner or admin access because these settings select the coder and default models across projects."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"That group had no workspace setting to clear."}},"summary":"Clear one workspace settings group","tags":["model-config"]},"put":{"operationId":"setAiSettings","parameters":[{"in":"path","name":"slot","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertSettings"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoreSettingsRow"}}},"description":"The stored row. Omitted fields keep their value and null clears one. Moving the coder without naming a provider resets an incompatible provider to hlix-managed."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The path segment is not a settings group (`project_manager` or `cycle`), the JSON body failed validation, the projectManager group was given a cycle-only field, the coder cannot use the selected provider, or the request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Changing workspace settings requires owner or admin access because these settings select the coder and default models across projects."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The settings changed while this request was being checked; read them again and retry."}},"summary":"Set one workspace settings group","tags":["model-config"]}},"/v1/api/packs":{"get":{"operationId":"listAvailablePacks","parameters":[{"description":"Report attachment state for this project. Without `projectId`, every entry has `isActive: false`; this indicates that no project was selected.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AvailablePack"},"type":"array"}}},"description":"The whole registry, with attachment state."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List every pack the registry knows","tags":["packs"]}},"/v1/api/packs/custom-skills":{"get":{"operationId":"listCustomSkills","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CustomSkill"},"type":"array"}}},"description":"Every custom skill, with its markdown."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspace's own skills","tags":["packs"]},"post":{"operationId":"createCustomSkill","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomSkill"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomSkill"}}},"description":"The stored skill."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Write a custom skill","tags":["packs"]}},"/v1/api/packs/custom-skills/generate":{"post":{"operationId":"generateCustomSkill","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateCustomSkill"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratedSkillDraft"}}},"description":"The draft. It only prefills the review form; saving is the caller's explicit act."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The drafting model call failed or timed out. The draft was not produced and nothing was stored."}},"summary":"Draft a custom skill without saving it","tags":["packs"]}},"/v1/api/packs/custom-skills/{slug}":{"delete":{"operationId":"deleteCustomSkill","parameters":[{"in":"path","name":"slug","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedAck"}}},"description":"The skill is gone."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No custom skill with that slug in this workspace."}},"summary":"Delete a custom skill","tags":["packs"]},"get":{"operationId":"getCustomSkill","parameters":[{"in":"path","name":"slug","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomSkill"}}},"description":"The skill."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No custom skill with that slug in this workspace."}},"summary":"Get one custom skill","tags":["packs"]},"patch":{"operationId":"updateCustomSkill","parameters":[{"in":"path","name":"slug","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomSkill"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomSkill"}}},"description":"The updated skill."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No custom skill with that slug in this workspace."}},"summary":"Update a custom skill","tags":["packs"]}},"/v1/api/packs/project/{projectId}":{"get":{"operationId":"listProjectPacks","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProjectPack"},"type":"array"}}},"description":"The attachment rows, active or not."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List a project's attached packs","tags":["packs"]},"post":{"operationId":"attachProjectPack","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivatePack"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPack"}}},"description":"The attachment row, active."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator with project access. Pack configuration is restricted to agency members."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project does not exist or the caller has no project grant. Both cases return 404."}},"summary":"Attach a pack to a project","tags":["packs"]}},"/v1/api/packs/{id}":{"delete":{"operationId":"detachProjectPack","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedAck"}}},"description":"The attachment row is gone. The pack itself is untouched."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator on this pack's project; pack configuration is agency-only."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such attached pack in this workspace — or the caller is a client collaborator with no access to its project, which answers the same 404 rather than confirming it exists."}},"summary":"Detach a pack from a project","tags":["packs"]},"patch":{"operationId":"updateProjectPack","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePack"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPack"}}},"description":"The updated attachment row."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator on this pack's project; pack configuration is agency-only."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such attached pack in this workspace — or the caller is a client collaborator with no access to its project, which answers the same 404 rather than confirming it exists."}},"summary":"Toggle an attached pack","tags":["packs"]}},"/v1/api/plugins":{"get":{"operationId":"listPlugins","parameters":[{"description":"Only enabled plugins available to this project.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginListResponse"}}},"description":"Safe installation metadata; secret inputs never read back."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List installed workspace plugins","tags":["plugins"]},"post":{"operationId":"installPlugin","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlugin"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginResponse"}}},"description":"Installation created."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Install a plugin with encrypted inputs","tags":["plugins"]}},"/v1/api/plugins/catalog":{"get":{"operationId":"listPluginCatalog","parameters":[{"description":"Registry search text.","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Opaque next cursor paired with the same search.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginCatalogResponse"}}},"description":"Compatible recipes, with explanations for unsupported alternatives."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Registry unavailable."}},"summary":"Browse official MCP Registry recipes","tags":["plugins"]}},"/v1/api/plugins/catalog/detail":{"get":{"operationId":"getPluginCatalogDetail","parameters":[{"description":"Canonical MCP Registry server name.","in":"query","name":"name","required":true,"schema":{"type":"string"}},{"description":"Exact registry version or latest (default).","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginCatalogDetailResponse"}}},"description":"Setup remains available when README content is missing or unavailable."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Server version not found."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Registry unavailable."}},"summary":"Read MCP Registry details and a public repository README","tags":["plugins"]}},"/v1/api/plugins/import-archive":{"post":{"operationId":"importPluginArchive","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/zip":{"schema":{"format":"binary","type":"string"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginArchivePreviewResponse"}}},"description":"Validated manifest; no installation or backend execution. ZIP limit 5 MB, decompressed text 2 MB total/200 KB per file, 500 entries."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Archive exceeds the request size limit."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Content-Type must be application/zip."}},"summary":"Preview a standard plugin or Agent Skills ZIP","tags":["plugins"]}},"/v1/api/plugins/preview":{"post":{"operationId":"previewPlugin","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewPlugin"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginPreviewResponse"}}},"description":"Structurally valid manifest; no connectivity claim."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Validate a plugin manifest without installing","tags":["plugins"]}},"/v1/api/plugins/{id}":{"delete":{"operationId":"removePlugin","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginRemoveResponse"}}},"description":"Removed. Running jobs keep their resolved configuration."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Plugin not found."}},"summary":"Remove a plugin from subsequent runs","tags":["plugins"]},"get":{"operationId":"getPlugin","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginResponse"}}},"description":"Installation with nonsecret inputs only."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Plugin not found."}},"summary":"Read a plugin installation","tags":["plugins"]},"patch":{"operationId":"updatePlugin","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlugin"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginResponse"}}},"description":"Updated installation. Omitted inputs are preserved; null explicitly removes an input."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiError"},{"$ref":"#/components/schemas/ValidationError"}]}}},"description":"Invalid manifest, setup inputs or project scope."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner or admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Plugin not found."}},"summary":"Update plugin setup, version or project availability","tags":["plugins"]}},"/v1/api/portal-invitations/{token}/accept":{"post":{"operationId":"acceptClientPortalInvitation","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalAccepted"}}},"description":"Portal membership plus the invitation's project grants (and billing seat, for a customer invitation). No agency organization membership is created."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Invitation revoked, account archived, or selected project reassigned."}},"security":[{"sessionCookie":[]}],"summary":"Accept an email-bound client portal invitation","tags":["client-portals"]}},"/v1/api/portal/projects":{"post":{"operationId":"createClientPortalIdea","parameters":[{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePortalProject"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRow"}}},"description":"Draft project under the client's own customer, granted to them with messaging. No coding dispatch."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency project limit reached."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agency has not granted this action."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"security":[{"sessionCookie":[]}],"summary":"Create a planning project","tags":["client-portals"]}},"/v1/api/portals/{agencySlug}/identity":{"get":{"operationId":"getClientPortalIdentity","parameters":[{"in":"path","name":"agencySlug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalIdentity"}}},"description":"Public identity only; no customer names, emails or membership."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"security":[],"summary":"Read the published agency identity","tags":["client-portals"]}},"/v1/api/portals/{agencySlug}/session":{"post":{"operationId":"enterWorkspaceClientPortal","parameters":[{"in":"path","name":"agencySlug","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspacePortal"}}},"description":"Every live invitation sent to the verified email is accepted on entry; its project grants are added to the ones the client already has. No token or account choice required."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Email must be verified (EMAIL_VERIFICATION_REQUIRED); scoped automation credentials denied."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Entity is not available in this portal/workspace."}},"security":[{"sessionCookie":[]}],"summary":"Enter the agency portal using the signed-in verified email","tags":["client-portals"]}},"/v1/api/previews":{"post":{"operationId":"rebuildPreview","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RebuildPreview"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentAccepted"}}},"description":"Handed to the pipeline. The row moves through `building` → `deploying` → `live` on its own; poll `GET /deployments/{id}`."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed validation — `projectId` is required — or the request named no active organization. Validation runs as middleware, so a malformed payload is answered 400 even when previews are switched off."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project, or no such repository on it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentRepoAmbiguous"}}},"description":"The project is archived, or it builds against several repositories and names no primary. Unarchive it or retry with `repoId` — `repos` is present only in the second case."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Previews are switched off for this deployment of hlix."}},"summary":"Rebuild a project's preview","tags":["previews"]}},"/v1/api/previews/sharing":{"get":{"operationId":"getPreviewSharing","parameters":[{"description":"The project whose preview sharing to read.","in":"query","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSharingSaved"}}},"description":"Whether anyone with a preview link can open it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"projectId is required."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Sharing storage is unavailable."}},"summary":"Get public preview sharing for a project","tags":["previews"]},"put":{"operationId":"setPreviewSharing","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSharing"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSharingSaved"}}},"description":"Sharing applies to all retained and future previews. Agency only."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The body failed validation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Clients cannot change sharing."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Sharing could not be changed."}},"summary":"Enable or revoke public preview sharing","tags":["previews"]}},"/v1/api/projects":{"get":{"operationId":"listProjects","parameters":[{"description":"Set to `true` to include archived projects. They are hidden by default.","in":"query","name":"includeArchived","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProjectSummary"},"type":"array"}}},"description":"Active projects by default, newest first, each with attached repositories and index counts. `includeArchived=true` adds archived projects."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspace's projects","tags":["projects"]},"post":{"operationId":"createProject","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProject"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The created project and its repositories."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is on the free plan and already holds its maximum number of active projects. Upgrade, or archive one."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"One of the named repositories is already attached to another project in this workspace."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"`githubRepository`, or a repository in `repos`, is not reachable through this workspace's GitHub connection (none, revoked, or not granted that repository): `code` is `github_repository_unreachable`. Or a repository's `defaultBranch` does not exist there: `code` is `default_branch_missing`. A repository sent without `defaultBranch` stores the one the repository names. Nothing was created."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project could not be created."}},"summary":"Create a project","tags":["projects"]}},"/v1/api/projects/initial-proposal-by-id/{proposalId}":{"get":{"operationId":"resolveProjectInitialProposal","parameters":[{"in":"path","name":"proposalId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalDetailResponse"}}},"description":"The authorized proposal and its project."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."}},"summary":"Resolve a proposal deep link","tags":["projects"]}},"/v1/api/projects/{id}":{"delete":{"operationId":"deleteProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"The project was deleted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Delete a project","tags":["projects"]},"get":{"operationId":"getProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDetail"}}},"description":"The project, its repositories, the viewer's message permission and whether this deployment can publish previews."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Get one project","tags":["projects"]},"patch":{"operationId":"updateProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProject"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The updated project. Repository membership is never changed here — the collection is echoed back unchanged."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"`branchPrefix` was sent but the project's preview branch has already been cut, so its prefix can no longer change (`code` `branch_prefix_locked`), or `useWorkspaceBrand` was set before the workspace brand kit is published. Nothing changed."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"`branchPrefix` names a branch that already exists in one of the project's repositories, so no branch could be created under it (`code` `branch_prefix_taken`). Nothing changed."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A repository's host could not be reached to check `branchPrefix` against its branches (`code` `repository_unreachable`). Nothing changed."}},"summary":"Update a project's configuration","tags":["projects"]}},"/v1/api/projects/{id}/architecture":{"get":{"operationId":"getProjectArchitecture","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Optional cycle UUID belonging to this project; scopes changed paths and recorded aggregate checks.","in":"query","name":"cycleId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationArchitecture"}}},"description":"Bounded static JavaScript/TypeScript imports and declared package dependencies. Repository source files are read at the resolved commit; a running task's changes are read from its worktree against the commit it was cut from, so they can include uncommitted edits. No customer code, macros or builds are executed, and no Cloud Machine is created or woken. Coverage and warning codes report unsupported, unresolved, unavailable or truncated analysis. Checks belong to the selected cycle, never to an individual component."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Malformed cycle UUID."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source browsing is restricted to the agency."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or selected cycle not found in this project."},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Source analysis did not answer before its deadline."}},"summary":"Read the application's source dependency graph","tags":["projects"]}},"/v1/api/projects/{id}/archive":{"post":{"operationId":"archiveProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The project was archived and is now hidden from default lists."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Archive a project","tags":["projects"]}},"/v1/api/projects/{id}/artifacts":{"get":{"operationId":"listProjectArtifacts","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/StoredArtifact"},"type":"array"}}},"description":"The stored objects."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"List a project's stored artifacts","tags":["projects"]}},"/v1/api/projects/{id}/artifacts/{filename}":{"get":{"operationId":"getProjectArtifactUrl","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"filename","required":true,"schema":{"type":"string"}},{"description":"Set to `1` to download artifact bytes when a signed URL cannot be issued. The default JSON response then provides this route with `download=1` in its `url`. When a signed URL is available, the endpoint returns that URL as JSON regardless of this parameter. Other values, including an omitted parameter, return JSON.","in":"query","name":"download","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedArtifactUrl"}},"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"A short-lived signed URL. When the deployment stores artifacts locally, or URL signing is denied, the same field points back at this route with `download=1`, which answers the object's own bytes."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project, or no such artifact under it."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The artifact download could not be prepared because storage access or URL signing failed. This does not mean the artifact is absent."}},"summary":"Get a signed download URL for one project artifact","tags":["projects"]}},"/v1/api/projects/{id}/assign":{"patch":{"operationId":"assignProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Assign"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRow"}}},"description":"The updated project row (no repository collection — this endpoint changes ownership only)."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The assignee is not a member of this workspace."}},"summary":"Hand a project to a teammate","tags":["projects"]}},"/v1/api/projects/{id}/board":{"get":{"operationId":"getProjectBoard","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectBoard"}}},"description":"The project's status and stop state, its cycles with their dependencies, the build agent run at work on each, the checklist, the agents at work and the deployed preview. `?cycleId=` or `?taskId=` narrows it to that slice. Requires view access; client collaborator responses are redacted. Refresh it when the workspace live socket (`GET /v1/api/live`) announces a change."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with, or a cycle or task outside the project."}},"summary":"Read the rows a project's board shows","tags":["projects"]}},"/v1/api/projects/{id}/branches":{"get":{"operationId":"listProjectBranches","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Which repository of a multi-repo project. Omitted, the primary one.","in":"query","name":"repo","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectBranches"}}},"description":"The repository's default branch, the project's preview branch, then the integration branch of every cycle that dispatched work and each task's branch, newest first. Read from the project's own records, never from the repository host, so a listed branch may already be gone. Branches another project keeps in the same repository are never listed."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Browsing the repository is restricted to the agency. Every client-role collaborator is refused here, even one that may read the project's changes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace, or the caller is a client collaborator with no grant on it. The project may also have no repository."}},"summary":"List the branches of the project the Files surface can read","tags":["changes"]},"post":{"operationId":"startProjectEditBranch","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartEditBranch"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditBranch"}}},"description":"The new edit branch, cut at `fromSha`, and the branch it will merge back into."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Browsing the repository is restricted to the agency. Every client-role collaborator is refused here, even one that may read the project's changes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace, or the caller is a client collaborator with no grant on it. Or `from` is not a branch the project owns."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host refused the new branch."}},"summary":"Cut a branch to edit files by hand","tags":["changes"]}},"/v1/api/projects/{id}/branches/merge":{"post":{"operationId":"mergeProjectEditBranch","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeEditBranch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeEditBranchResult"}}},"description":"The merge commit on the base branch. The edit branch is deleted and the project manager is told."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Browsing the repository is restricted to the agency. Every client-role collaborator is refused here, even one that may read the project's changes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace, or the caller is a client collaborator with no grant on it. Or `ref` is not an open edit branch."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The edits conflict with the base, or the base branch is gone. Nothing was merged."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host refused the merge."}},"summary":"Merge an edit branch back into the branch it was cut from","tags":["changes"]}},"/v1/api/projects/{id}/budget":{"get":{"operationId":"getProjectBudget","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectBudget"}}},"description":"The project's own cap overrides (null means inherited), the caps actually enforced, the platform defaults behind them, and spend to date in USD."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Get the project's delivery budget and spend to date","tags":["projects"]}},"/v1/api/projects/{id}/canvas":{"get":{"operationId":"getProjectCanvas","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCanvas"}}},"description":"Repository, runtime, sources and activity observations."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Read the project canvas without waking its Cloud Machine","tags":["projects"]}},"/v1/api/projects/{id}/canvas/agent":{"get":{"operationId":"getCanvasAgentView","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CanvasAgentView"}}},"description":"Every element marked as project context and everything hlix drew, with positions; people's unmarked work only as empty rectangles."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The canvas needs builder access for portal clients."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project not found."}},"summary":"Read the project canvas as an agent may see it","tags":["projects"]}},"/v1/api/projects/{id}/canvas/agent/ops":{"post":{"operationId":"applyCanvasAgentOps","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CanvasAgentOps"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CanvasAgentWrite"}}},"description":"Changes applied as one batch, attributed to Hlix on behalf of the caller and broadcast to canvas viewers. When the changes affect project context and automatic application is disabled, the batch is saved as a suggestion with `applied: false` and a `approvalId` for acceptance or rejection."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The canvas needs builder access for portal clients."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project not found."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Refused as a whole: the batch touches something not shared with hlix, sets the project context mark, or is not a valid canvas change."}},"summary":"Draw on the project canvas as hlix, for the caller","tags":["projects"]}},"/v1/api/projects/{id}/canvas/agent/undo":{"post":{"operationId":"undoCanvasAgentEdit","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CanvasAgentUndo"}}},"description":"Whether an edit of hlix's was undone; people's own edits are never undone here."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The canvas needs builder access for portal clients."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project not found."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"People have since changed what that edit touched, so it cannot be reversed cleanly."}},"summary":"Undo hlix's most recent canvas edit","tags":["projects"]}},"/v1/api/projects/{id}/changes":{"get":{"operationId":"getProjectChanges","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Which repository of a multi-repo project. Omitted, every repository (the primary one for a single-file read).","in":"query","name":"repo","required":false,"schema":{"type":"string"}},{"description":"A 40-character commit sha to compare against instead of the default branch.","in":"query","name":"since","required":false,"schema":{"type":"string"}},{"description":"Read this branch instead of the project's preview branch. Only a branch `GET /v1/api/projects/:id/branches` lists is accepted; any other name, another project's branch in a shared repository included, is a 404. Naming a branch is agency-only.","in":"query","name":"ref","required":false,"schema":{"type":"string"}},{"description":"Which page of an HLIX Repos repository's change list, from 0 (the default). Each page lists up to 500 files in path order; the response's `nextPage` names the next one. Ignored for GitHub repositories, whose list is not paged.","in":"query","name":"page","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectChanges"}}},"description":"Project changes, plus `inFlight` entries for running tasks whose Cloud Machines are reachable. Unreachable machines are omitted. Untracked files have `additions: null`. `source: \"github\"` and `source: \"hlix-repos\"` read committed source from the repository host without starting a Cloud Machine."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"`since` is not a 40-character commit sha, or names no commit in this project's repository. Or `page` is not a whole number."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"With `ref`: Browsing the repository is restricted to the agency. Every client-role collaborator is refused here, even one that may read the project's changes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace, or the caller is a client collaborator with no grant on it. The project may also have no connected repository. With `ref`: the project does not own that branch, or the repository no longer has it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host answered neither the comparison nor the file. Nothing about the project changed; retrying is safe."},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The read did not finish within the request deadline (10 s). The project is unchanged; retrying is safe."}},"summary":"Get the project's changed files and checkpoint commits","tags":["changes"]}},"/v1/api/projects/{id}/changes/file":{"get":{"operationId":"getProjectChangeFile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The repository-relative file path.","in":"query","name":"path","required":true,"schema":{"type":"string"}},{"description":"Which repository of a multi-repo project. Omitted, every repository (the primary one for a single-file read).","in":"query","name":"repo","required":false,"schema":{"type":"string"}},{"description":"A 40-character commit sha to compare against instead of the default branch.","in":"query","name":"since","required":false,"schema":{"type":"string"}},{"description":"Read from this cycle's running build agent Cloud Machine instead of the repository.","in":"query","name":"cycleId","required":false,"schema":{"type":"string"}},{"description":"Read this branch instead of the project's preview branch. Only a branch `GET /v1/api/projects/:id/branches` lists is accepted; any other name, another project's branch in a shared repository included, is a 404. Naming a branch is agency-only.","in":"query","name":"ref","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeFilePatch"}}},"description":"A file's unified diff. `patch` is null for binary files or when the response exceeds its byte limit; use `binary` to distinguish these cases. `repo` selects a repository, and `since` must match the comparison base used for the file list. `cycleId` reads from the cycle's running build agent Cloud Machine against the commit at which that run started."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"`path` is missing or is not a repository-relative file path — it is absolute, or contains a `..` segment, a backslash, a NUL or an empty segment. `since` is not a 40-character commit sha, or names no commit in this project's repository."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project, or that path is not in the project's change set. With `cycleId`: the cycle has no running build agent in this project, or its machine could not be reached. With `ref`: the project does not own that branch, or the repository no longer has it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host answered neither the comparison nor the file. Nothing about the project changed; retrying is safe."},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The read did not finish within the request deadline (10 s). The project is unchanged; retrying is safe."}},"summary":"Get one changed file's unified diff","tags":["changes"]}},"/v1/api/projects/{id}/chats":{"get":{"operationId":"getProjectChatDirectory","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectChatDirectory"}}},"description":"The thread directory, including whether its result is authoritative. A degraded lookup is explicitly marked rather than reported as an authoritative empty directory."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Get the project's conversation tree","tags":["projects"]}},"/v1/api/projects/{id}/cycle-metrics":{"get":{"operationId":"getProjectCycleMetrics","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CycleMetrics"}}},"description":"Throughput, cycle-time percentiles, per-stage medians, WIP, aging WIP, and stage-automation quality computed from each cycle's stageHistory, plus per-cycle model calls, tokens, cost, Cloud Machine starts and time per stage."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."}},"summary":"Get a project's flow metrics computed from cycle stage history","tags":["projects"]}},"/v1/api/projects/{id}/delivery":{"post":{"operationId":"requestProjectDelivery","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDelivery"}}},"description":"The project's `preview → main` pull request, found or created. This operation does not merge it; a person must approve the final merge. `url` is null when the preview branch has no changes ahead of the default branch."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a caller it was never shared with."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"There is no pull request to open yet: Hlix is still building or checking the project, or it has several repositories and none is marked primary. The error says which, and what to do."}},"summary":"Open the project's pull request now","tags":["projects"]}},"/v1/api/projects/{id}/desktops":{"get":{"operationId":"listDesktops","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Desktops"}}},"description":"The project's own Desktop (`project`) first, then the Desktop of each build agent run, newest first, each with its observed presence: live (its machine is running and a build agent is working on it now), idle (running, nothing working on it), ended (its machine is gone) or off (the project's own Desktop is not running). Each says who has control: a person, or null for the build agent. Also whether the project's hosted app is up. Agency members only."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project not found."}},"summary":"List the project's Desktops","tags":["projects"]}},"/v1/api/projects/{id}/desktops/{desktopId}":{"get":{"operationId":"getDesktop","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"desktopId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Desktop"}}},"description":"The Desktop's state and, when its screen is up, the frame links. Reading the project's own Desktop starts its Cloud Machine unless the project is archived (`state: starting` while it comes up; poll). Reading a build agent's Desktop starts nothing. Ended Desktops never attach to a new run."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Desktop not found in this project."}},"summary":"Read one Desktop and the links to its screen","tags":["projects"]}},"/v1/api/projects/{id}/desktops/{desktopId}/control":{"post":{"operationId":"controlDesktop","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"desktopId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesktopControl"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesktopControlResult"}}},"description":"Who has control after the call. While a person has control the build agent's actions answer that it must wait; giving control back, closing the person's screen connection or letting it lapse returns control to the agent."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Another person has control, or the Desktop is not running, or the project is archived."}},"summary":"Take control of a Desktop, or give it back","tags":["projects"]}},"/v1/api/projects/{id}/desktops/{desktopId}/evidence/{kind}":{"get":{"operationId":"downloadDesktopEvidence","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"desktopId","required":true,"schema":{"type":"string"}},{"in":"path","name":"kind","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Authenticated retained screen (kind=screen) or recording (kind=replay). Missing evidence is never fabricated."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Desktop evidence not found."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The Desktop is not accessible in this project."}},"summary":"Download the screen or replay a finished run kept","tags":["projects"]}},"/v1/api/projects/{id}/detect-commands":{"post":{"operationId":"detectProjectCommands","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetectProjectCommands"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCommandDetection"}}},"description":"Install, preview and verification commands detected from committed repository files. Does not write settings or wake a Cloud Machine."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Growth projects run campaigns and have no application stack or Cloud Machine to read or provision."}},"summary":"Re-run command detection without writing anything","tags":["projects"]}},"/v1/api/projects/{id}/diagnostics":{"get":{"operationId":"getProjectRunDiagnostics","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDiagnostics"}}},"description":"Current project delivery diagnostics: the next planned action, work in progress and work waiting at an approval checkpoint. Computed from the project's current cycles and state."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."}},"summary":"Read why a project failed or is waiting","tags":["projects"]}},"/v1/api/projects/{id}/director":{"get":{"operationId":"watchProjectDirector","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Selected chapter","in":"query","name":"cycleId","required":false,"schema":{"type":"string"}},{"description":"en, de or fr","in":"query","name":"language","required":false,"schema":{"type":"string"}},{"description":"1 to retry a failed render after automatic retries are exhausted","in":"query","name":"retry","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectorState"}}},"description":"Audience-scoped rendered segments. Polling requests new evidence-based footage; unchanged evidence reuses the existing video. Rendering is asynchronous and failures retain previous footage."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project not found"}},"summary":"Watch the Director Explainer's evolving video segments","tags":["projects"]}},"/v1/api/projects/{id}/director/clips/{clipId}":{"get":{"operationId":"getProjectDirectorClip","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"clipId","required":true,"schema":{"type":"string"}},{"description":"Selected chapter","in":"query","name":"cycleId","required":false,"schema":{"type":"string"}},{"description":"en, de or fr","in":"query","name":"language","required":false,"schema":{"type":"string"}},{"description":"1 for authenticated video bytes when no signed URL is available","in":"query","name":"download","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignedArtifactUrl"}},"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Signed media URL, or authenticated video bytes for local artifacts."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or clip not found"}},"summary":"Read an audience-scoped Director video segment","tags":["projects"]}},"/v1/api/projects/{id}/environment":{"get":{"operationId":"getProjectEnvironment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectEnvironment"}}},"description":"The saved environment: `none` (Cloud Machines start from the base image), `building`, `ready` (Cloud Machines start from the snapshot captured at `createdAt`), or `local` for the local runtime. This read starts no Cloud Machine or build. `workspaceRoot` is the primary repository checkout and the shell working directory."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Read the project's saved Cloud Machine environment","tags":["projects"]}},"/v1/api/projects/{id}/environment/keepalive":{"post":{"operationId":"keepProjectEnvironmentAlive","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectEnvironmentKeepAlive"}}},"description":"`kept: true` means the environment was already running and its idle timeout was refreshed. This endpoint never starts or resumes a Cloud Machine. Stopped, absent or unreachable environments return `kept: false` with their state. Terminal, Desktop and Preview clients can use this while active. Provider updates are limited to one per project per 60 seconds; requests within that window reuse the last result."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived and does not accept new work — refused before the environment was even looked up."}},"summary":"Tell a running environment it is still in use","tags":["projects"]}},"/v1/api/projects/{id}/environment/rebuild":{"post":{"operationId":"rebuildProjectEnvironment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectEnvironmentRebuild"}}},"description":"The setup is under way (`started`), or one is already open and this ask builds again once it ends (`waiting`). Never two at once."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace members may rebuild an environment; a client never may."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived, or it is stopped: Resume it first, then ask again."}},"summary":"Build the project's environment again","tags":["projects"]}},"/v1/api/projects/{id}/files":{"get":{"operationId":"listProjectFiles","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Which repository of a multi-repo project. Omitted, every repository (the primary one for a single-file read).","in":"query","name":"repo","required":false,"schema":{"type":"string"}},{"description":"Read this branch instead of the project's preview branch. Only a branch `GET /v1/api/projects/:id/branches` lists is accepted; any other name, another project's branch in a shared repository included, is a 404. Naming a branch is agency-only.","in":"query","name":"ref","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreeListing"}}},"description":"Regular file paths in the repository head tree, sorted. Symlinks, submodules and ignored paths, including the project's `.env`, are excluded. `truncated: true` means the list exceeds the server or repository host entry limit. Results are cached per tree and carry an `ETag`; a matching `If-None-Match` returns 304."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Browsing the repository is restricted to the agency. Every client-role collaborator is refused here, even one that may read the project's changes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project, or no such repository in it. With `ref`: the project does not own that branch, or the repository no longer has it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host answered neither the comparison nor the file. Nothing about the project changed; retrying is safe."},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The read did not finish within the request deadline (10 s). The project is unchanged; retrying is safe."}},"summary":"List every path in the project's head tree","tags":["changes"]}},"/v1/api/projects/{id}/files/commit":{"post":{"operationId":"commitProjectFileEdits","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitEdits"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitEditsResult"}}},"description":"The new commit. The project manager is told."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The body failed schema validation (`ValidationError`), or it holds too many files, a file too large, or a path that cannot be changed here (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Browsing the repository is restricted to the agency. Every client-role collaborator is refused here, even one that may read the project's changes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace, or the caller is a client collaborator with no grant on it. Or `ref` is not an open edit branch."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The branch moved since `headSha`. Nothing was written."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host refused the commit."}},"summary":"Commit hand edits to an edit branch","tags":["changes"]}},"/v1/api/projects/{id}/files/content":{"get":{"operationId":"getProjectFileContent","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"The repository-relative file path.","in":"query","name":"path","required":true,"schema":{"type":"string"}},{"description":"Which repository of a multi-repo project. Omitted, every repository (the primary one for a single-file read).","in":"query","name":"repo","required":false,"schema":{"type":"string"}},{"description":"Read from this cycle's running build agent Cloud Machine instead of the repository.","in":"query","name":"cycleId","required":false,"schema":{"type":"string"}},{"description":"Read this branch instead of the project's preview branch. Only a branch `GET /v1/api/projects/:id/branches` lists is accepted; any other name, another project's branch in a shared repository included, is a 404. Naming a branch is agency-only.","in":"query","name":"ref","required":false,"schema":{"type":"string"}},{"description":"Read the file at this 40-character commit (the one the tree was listed at) instead of the branch head, so a push between listing and reading cannot change the answer.","in":"query","name":"at","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileContent"}}},"description":"The file as UTF-8 text. `binary: true` means a NUL byte was found and no text is served. `truncated: true` means the file is longer than the viewer budget, or too large to read at all — in which case `content` is null and `binary` is not a verdict. An empty file is served as `\"\"`, never as truncated. `sha` is git's blob hash of the bytes read. The response carries an `ETag`; a repeat request with `If-None-Match` is answered 304."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"`path` is missing or is not a repository-relative file path — it is absolute, or contains a `..` segment, a backslash, a NUL or an empty segment."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Browsing the repository is restricted to the agency. Every client-role collaborator is refused here, even one that may read the project's changes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project or file does not exist. Ignored paths, symlinks and submodules are treated as absent; symlink targets are never read. With `ref`: the project does not own that branch, or the repository no longer has it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository host answered neither the comparison nor the file. Nothing about the project changed; retrying is safe."},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The read did not finish within the request deadline (10 s). The project is unchanged; retrying is safe."}},"summary":"Get one file of the project's head tree","tags":["changes"]}},"/v1/api/projects/{id}/files/working":{"put":{"operationId":"saveProjectWorkingFile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteWorkingFile"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveWorkingFileResult"}}},"description":"The file is saved in the running build agent's working tree; `sha` is its new blob hash. The project manager is told; the build agent reads the file as it is now."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The body failed schema validation (`ValidationError`), or the file is too large, protected, inside `.git`, ignored, a symlink or outside the working tree (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Browsing the repository is restricted to the agency. Every client-role collaborator is refused here, even one that may read the project's changes."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace, or the caller is a client collaborator with no grant on it. Or the cycle has no running build agent, or its machine could not be reached."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The file changed since `base`, or the build agent's run is finished or stopping, so a save would not be kept. Nothing was written."},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The read did not finish within the request deadline (10 s). The project is unchanged; retrying is safe."}},"summary":"Save one file into a running cycle's Cloud Machine","tags":["changes"]}},"/v1/api/projects/{id}/image-builds":{"get":{"operationId":"listProjectImageBuilds","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProjectImageBuild"},"type":"array"}}},"description":"The build rows, newest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"List the project's Cloud Machine image builds","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal":{"get":{"operationId":"getProjectInitialProposal","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Revision number to read; agency only. Clients always receive the published revision.","in":"query","name":"revision","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalDetailResponse"}}},"description":"The current proposal and revision."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."}},"summary":"Read the current initial SDD/SOW","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal/approve":{"post":{"operationId":"approveProjectInitialProposal","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalApprove"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposal"}}},"description":"The approved proposal, with its Canvas batch and durable release."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The proposal changed. Reload the current revision and retry."}},"summary":"Approve the initial plan and release delivery","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal/comments":{"get":{"operationId":"listProjectInitialProposalComments","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalCommentsResponse"}}},"description":"One bounded keyset page of comments."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."}},"summary":"List section-anchored proposal comments","tags":["projects"]},"post":{"operationId":"addProjectInitialProposalComment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInitialProposalComment"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalComment"}}},"description":"The new comment."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The request is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The proposal changed. Reload the current revision and retry."}},"summary":"Comment on a proposal section","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal/comments/{commentId}":{"patch":{"operationId":"resolveProjectInitialProposalComment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"commentId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalResolveComment"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalComment"}}},"description":"The updated comment."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."}},"summary":"Resolve or reopen a proposal comment","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal/decision":{"post":{"operationId":"decideProjectInitialProposal","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalClientDecision"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposal"}}},"description":"The proposal with the client decision."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The request is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The proposal changed. Reload the current revision and retry."}},"summary":"Record the invited client review agent's optional decision","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal/logo":{"get":{"operationId":"getProjectInitialProposalLogo","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Revision whose frozen logo should be read; clients must name the published revision.","in":"query","name":"revisionId","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"image/png":{"schema":{"format":"binary","type":"string"}}},"description":"The validated PNG logo for the published revision."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."}},"summary":"Read the frozen agency logo","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal/publish":{"post":{"operationId":"publishProjectInitialProposal","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalPublish"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalDetailResponse"}}},"description":"The published revision with a frozen brand snapshot."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The request is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The proposal changed. Reload the current revision and retry."}},"summary":"Publish a branded proposal revision","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal/revisions":{"get":{"operationId":"listProjectInitialProposalRevisions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalHistoryResponse"}}},"description":"Up to 50 revisions, newest first; clients receive only the published revision."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."}},"summary":"List proposal revision history","tags":["projects"]},"post":{"operationId":"reviseProjectInitialProposal","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalRevisionTarget"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalRevision"}}},"description":"The durable revision job."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The request is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The proposal changed. Reload the current revision and retry."}},"summary":"Request a targeted AI revision","tags":["projects"]}},"/v1/api/projects/{id}/initial-proposal/revisions/manual":{"put":{"operationId":"editProjectInitialProposal","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalManualRevision"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitialProposalRevision"}}},"description":"The new immutable revision."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The request is invalid."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No proposal in this workspace — or the caller may not see it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The proposal changed. Reload the current revision and retry."}},"summary":"Create a manual business-copy revision","tags":["projects"]}},"/v1/api/projects/{id}/insights":{"get":{"operationId":"getProjectTeamInsights","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectTeamInsights"}}},"description":"Cloud Machine starts and runtime hours, completed agent runs, and an estimated completion range. The estimate is null until enough delivered cycles are available."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A client whose seat was not given the project insights view."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."}},"summary":"Get a project's Cloud Machine totals and estimated completion","tags":["projects"]}},"/v1/api/projects/{id}/linear-sessions":{"get":{"operationId":"listProjectLinearSessions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectLinearSessions"}}},"description":"Sessions, newest first, with the Linear issue identifier and URL, session status, and linked cycle. The cycle is null until the project manager adopts the session."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"List the Linear conversations delegated into this project","tags":["projects"]}},"/v1/api/projects/{id}/messages":{"get":{"operationId":"listProjectMessages","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Read this agent's project thread instead of the project manager's.","in":"query","name":"agentId","required":false,"schema":{"type":"string"}},{"description":"How many stored turns one page holds, 1 to 200. Default 50.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"The `nextCursor` of the page you have: read the turns older than it.","in":"query","name":"before","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WireMessagePage"}}},"description":"The newest turns, or the turns older than `before`, ordered oldest first, with a cursor for older results. An unresolved project or agent thread returns an empty page."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"`limit` or `before` failed validation."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Read the project's conversation","tags":["projects"]}},"/v1/api/projects/{id}/mobile/agent-sessions":{"post":{"operationId":"startProjectMobileAgentSession","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileAgentSessionStart"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileAgentSession"}}},"description":"Instance access for the authenticated agent run only"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"Start a native test device for this agent run","tags":["projects"]}},"/v1/api/projects/{id}/mobile/agent-sessions/{sessionId}":{"delete":{"operationId":"stopProjectMobileAgentSession","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"sessionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileStopped"}}},"description":"Cleanup requested"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"Stop this agent run's native test device","tags":["projects"]},"get":{"operationId":"getProjectMobileAgentSession","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"sessionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileAgentSession"}}},"description":"Instance access for the authenticated agent run only"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"Read this agent run's native test device","tags":["projects"]}},"/v1/api/projects/{id}/mobile/builds":{"get":{"operationId":"getProjectMobileBuilds","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileBuildsView"}}},"description":"Build history"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"List saved native builds","tags":["projects"]},"post":{"operationId":"buildProjectMobileApp","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileBuildStart"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileBuild"}}},"description":"Build queued at the source revision"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Workspace credit is exhausted"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"Build a native app preview","tags":["projects"]}},"/v1/api/projects/{id}/mobile/sessions":{"post":{"operationId":"startProjectMobileSession","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileSessionStart"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileSession"}}},"description":"Private viewer session; poll while creating"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Workspace credit is exhausted"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"Start a private app preview","tags":["projects"]}},"/v1/api/projects/{id}/mobile/sessions/{sessionId}":{"delete":{"operationId":"stopProjectMobileSession","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"sessionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileStopped"}}},"description":"Cleanup requested"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"End your private app preview","tags":["projects"]},"get":{"operationId":"getProjectMobileSession","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"sessionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileSession"}}},"description":"Viewer session and streaming credential"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"Read your private app preview","tags":["projects"]}},"/v1/api/projects/{id}/mobile/targets":{"get":{"operationId":"getProjectMobileTargets","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileTargetsView"}}},"description":"Configured app targets"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"List native app targets","tags":["projects"]},"put":{"operationId":"setProjectMobileTargets","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileTargetsInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileTargetsSaved"}}},"description":"Saved targets"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or mobile resource not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or build is not ready"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Mobile provider is unavailable"}},"summary":"Configure native app targets","tags":["projects"]}},"/v1/api/projects/{id}/protected-files":{"get":{"operationId":"getProjectProtectedFiles","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectProtectedFiles"}}},"description":"Decrypted protected files; private, no-store"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project not found"}},"summary":"Read encrypted project files with manage access","tags":["repos"]}},"/v1/api/projects/{id}/repos":{"get":{"operationId":"listProjectRepos","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProjectRepo"},"type":"array"}}},"description":"The repositories, primary first then oldest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"List a project's repositories","tags":["projects"]},"post":{"operationId":"attachProjectRepo","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachProjectRepo"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRepo"}}},"description":"The attached repository."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"That repository is already attached to a project in this workspace, or the project is a growth project, which runs campaigns and takes no GitHub repository."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"This workspace's GitHub connection cannot reach that repository (`code` `github_repository_unreachable`), or `defaultBranch` does not exist there (`code` `default_branch_missing`). Without `defaultBranch` the repository's own default branch is stored. Nothing changed."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository could not be attached."}},"summary":"Attach a repository to a project","tags":["projects"]}},"/v1/api/projects/{id}/repos/github":{"post":{"operationId":"attachProjectGithubRepository","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachGithubRepository"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRepo"}}},"description":"The repository was already attached to this project; nothing changed."},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRepo"}}},"description":"The attached repository, resolved through this workspace's GitHub connection. It is the primary only when the project had none. Its history is left as it is."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"That repository is attached to another project in this workspace (`code` `repository_on_another_project`, with that `projectId`), or is still being connected, or the project is a growth project, which runs campaigns and takes no GitHub repository. Nothing changed."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"This workspace's GitHub connection cannot reach that repository (none, revoked, or not granted it). `code` is `github_repository_unreachable`; nothing changed."}},"summary":"Attach an existing GitHub repository by owner/name","tags":["projects"]}},"/v1/api/projects/{id}/repos/{repoId}":{"delete":{"operationId":"detachProjectRepo","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"repoId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"The repository was detached."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project, or that repository does not belong to it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Tasks have already run against that repository, so it cannot be detached."}},"summary":"Detach a repository from a project","tags":["projects"]},"patch":{"operationId":"updateProjectRepo","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"repoId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectRepo"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRepo"}}},"description":"The updated repository. A changed `defaultBranch` also moves the project's open review pull request onto it."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project, or that repository does not belong to it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository is being connected; retry when it finishes."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"`defaultBranch` does not exist in the repository (`code` `default_branch_missing`). Nothing changed."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The repository could not be read to check `defaultBranch` (`code` `repository_unreachable`), or the open review pull request could not be moved onto it (`code` `review_pull_request_not_moved`). Nothing changed."}},"summary":"Update a repository's branch or label","tags":["projects"]}},"/v1/api/projects/{id}/repos/{repoId}/access":{"post":{"operationId":"createRepoAccess","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"repoId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoAccess"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoAccessResponse"}}},"description":"Repository credentials; private, no-store"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or repository not found"}},"summary":"Get short-lived Git access to a repository in HLIX Repos","tags":["repos"]}},"/v1/api/projects/{id}/repos/{repoId}/head":{"get":{"operationId":"getRepoHead","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"repoId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoHeadResponse"}}},"description":"Current repository commit"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or repository not found"}},"summary":"Read a repository head without starting a Cloud Machine","tags":["repos"]}},"/v1/api/projects/{id}/repos/{repoId}/primary":{"post":{"operationId":"setPrimaryProjectRepo","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"repoId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRepo"}}},"description":"The promoted repository, or connectionStatus connecting while existing managed work is transferred to GitHub."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project, or that repository does not belong to it."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Another repository connection is in progress."}},"summary":"Make a repository the project's primary","tags":["projects"]}},"/v1/api/projects/{id}/resources/agent":{"post":{"operationId":"importProjectAgent","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportAgent"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportedAgent"}}},"description":"The project-scoped agent was created."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The agent name is already taken, or the manifest declares a second triage agent for this scope."}},"summary":"Create a project-scoped agent from local instructions","tags":["imports"]}},"/v1/api/projects/{id}/resources/mcp":{"post":{"operationId":"importProjectMcp","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportMcp"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportedMcp"}}},"description":"The MCP server was activated with secret references."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Explicitly activate a validated MCP server for one project","tags":["imports"]}},"/v1/api/projects/{id}/resources/skill":{"post":{"operationId":"importProjectSkill","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportSkill"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportedSkill"}}},"description":"The skill is available in this project’s Cloud Machine."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Activate a skill for one project","tags":["imports"]}},"/v1/api/projects/{id}/resume":{"post":{"operationId":"resumeProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResumed"}}},"description":"The project continues where it stopped: stopped work is queued again and the project's own loop takes it from there. A project that never started is started with its brief. Resuming a running project answers its state."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace has no credit left for new agent work."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The stop is still draining, or the project is idle with nothing to resume. The body names the status."}},"summary":"Resume a stopped project, or start one that never started","tags":["projects"]}},"/v1/api/projects/{id}/review":{"get":{"operationId":"getProjectReview","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectReview"}}},"description":"Observed journey outcomes and verification counts."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Read recorded verification evidence for completed project cycles","tags":["projects"]}},"/v1/api/projects/{id}/review/merge":{"post":{"operationId":"mergeProjectReview","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeProjectReview"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAck"}}},"description":"GitHub confirmed the merge."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The review changed or the project is archived."}},"summary":"Merge a reviewed preview pull request at its exact head commit","tags":["projects"]}},"/v1/api/projects/{id}/roadmap":{"get":{"operationId":"getProjectRoadmap","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRoadmap"}}},"description":"The combined roadmap: saved cycles, the project manager's plan, and pending or recently resolved proposals."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Get the project's roadmap","tags":["projects"]}},"/v1/api/projects/{id}/sequence":{"get":{"operationId":"getProjectSequence","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Cycle in this project; defaults to the active or most recent cycle.","in":"query","name":"cycleId","required":false,"schema":{"type":"string"}},{"description":"Narration language: en (default), de, or fr.","in":"query","name":"language","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sequence"}}},"description":"Recorded cycle activity. Missing measurements are null. Test totals count the latest recorded end-to-end journeys, including failed and unverified journeys. Progress counts completed tasks at recorded update times. Graph edges show directory containment and recorded run parentage, rather than inferred dependencies. Narration is cached by workspace, audience, cycle, language and activity window; eviction or restart may regenerate it. Failed narration returns an empty list and is retried after 30 seconds."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Invalid query"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project or cycle not found"}},"summary":"Watch a cycle's narrated Sequence","tags":["projects"]}},"/v1/api/projects/{id}/start":{"post":{"operationId":"startProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartProject"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectStarted"}}},"description":"The run was handed to the engine. It starts asynchronously — watch it over the event or stream endpoints."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace is over a spend cap — its free monthly credit, its plan's included usage while extra usage is not allowed for the project, or a limit it set itself. The body names which one and what to do about it."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"A run is already in progress, or the project is archived and cannot accept new work."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The dispatch could not be queued and the run was not started. No partial state change was saved; retrying is safe."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage could not be verified, so new spending is paused until the meter is available. Nothing changed."}},"summary":"Start the project's autonomous run","tags":["projects"]}},"/v1/api/projects/{id}/status":{"get":{"operationId":"getProjectStatus","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectStatusSummary"}}},"description":"Project status: `status` (`idle`, `planning`, `building`, `checking`, `ready`, `paused_budget`, `stopped` or `archived`), task progress, current cycle, approvals, deployed preview URL and delivery state. Requires view access. A Cloud Machine live preview URL is not included."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Read a project's delivery status","tags":["projects"]}},"/v1/api/projects/{id}/stop":{"post":{"operationId":"stopProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectStopped"}}},"description":"The project is stopped. Running agents are told to stop now and nothing new starts; no cycle or task is canceled, so `POST /projects/{id}/resume` continues where it stopped. Stopping a stopped project answers its current state."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Nothing is running to stop."}},"summary":"Stop every agent working on the project","tags":["projects"]}},"/v1/api/projects/{id}/stream/connect":{"post":{"operationId":"connectProjectStream","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationConnection"}}},"description":"A short-lived token for one project and one person, and the socket path to present it on. The stream carries the project's loop, its cycles' stages and its files changing; a client collaborator reads the copy that passed its fence."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project not found, or not reachable by this caller."}},"summary":"Get the proof a project stream's socket upgrade presents","tags":["chat"]}},"/v1/api/projects/{id}/suggest-stack":{"post":{"operationId":"suggestProjectStack","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectStackSuggestion"}}},"description":"A proposed `stack` string and its supporting evidence, or `stack: null` when no stack can be inferred. The proposal is not saved automatically; apply it through `PATCH /v1/api/projects/{id}`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Growth projects run campaigns and have no application stack or Cloud Machine to read or provision."}},"summary":"Propose a stack string from the project's own evidence","tags":["projects"]}},"/v1/api/projects/{id}/terminal":{"get":{"operationId":"getProjectTerminalAccess","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectTerminalAccess"}}},"description":"A one-use terminal address (`webTerminalUrl`) that opens one shell on the project's Cloud Machine, or `available: false` with a reason. This call starts a Cloud Machine and returns `environmentState: \"creating\"` while it starts; poll for availability. `environmentState: \"absent\"` means the project has no saved environment and polling alone will not create one. `expiresAt` is when `webTerminalUrl` stops working; it opens one shell, once."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Growth projects run campaigns and have no application stack or Cloud Machine to read or provision."}},"summary":"Open a shell into the project's Cloud Machine","tags":["projects"]}},"/v1/api/projects/{id}/unarchive":{"post":{"operationId":"unarchiveProject","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}},"description":"The project was restored to active project lists."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Restore an archived project","tags":["projects"]}},"/v1/api/projects/{id}/usage":{"get":{"operationId":"getProjectUsage","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUsageRollup"}}},"description":"Totals with breakdowns by execution lane (`byRole`) and worker promptKey (`byPromptKey`). Lanes without runs are omitted. `byPromptKey` includes a null bucket for runs without an assigned promptKey. Both breakdowns sum to `totals`."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."}},"summary":"Get the project's cost and token roll-up","tags":["projects"]}},"/v1/api/projects/{id}/workspace/exec":{"post":{"operationId":"projectWorkspaceExec","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectWorkspaceExec"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceExecResult"}}},"description":"The command ran in the project's Cloud Machine with project secrets available in its environment. A nonzero `exitCode` is a command result and still returns HTTP 200. `cwd` defaults to the Coding Workspace root and must remain inside it. Caller-supplied environment variables are not forwarded; write required values through `/workspace/fs` and source the file."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"`cwd` escapes the workspace root, or the request named no active organization (`ApiError`) — or the body failed schema validation, `timeoutMs` above the thirty-minute ceiling included (`ValidationError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project administration is restricted to the agency."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived and cannot run commands."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project's machine is still starting (`code: \"workspace_starting\"`, with `Retry-After`), or it could not be started (`code: \"workspace_unavailable\"`; the next call starts a fresh one)."}},"summary":"Run a command in the project's Cloud Machine","tags":["projects"]}},"/v1/api/projects/{id}/workspace/fs":{"post":{"operationId":"projectWorkspaceFs","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectWorkspaceFs"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceFsResult"}}},"description":"The operation's answer, shaped by `op`: `read` returns `{ content, encoding }`, `readdir` the directory entries, `stat` the file's stat, `exists` a boolean, and every mutating op `null`. Paths are workspace-relative (an absolute path must still be inside the workspace root). The call runs in the project's on-demand machine — started from the project snapshot at the preview branch's head on first use, deleted 15 minutes after the last call — so a write lives only there until it is committed and pushed."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The path (or `dest`) escapes the workspace root, or the request named no active organization (`ApiError`) — or the body failed schema validation, which includes the op-specific arity: `content` for a write or append, `dest` for a copy or move (`ValidationError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project administration is restricted to the agency."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace (a client collaborator is never told a project exists) — or the path does not exist inside the workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived; or the filesystem refused: the destination already exists, the path is the wrong kind, or a directory is not empty."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The filesystem operation failed for a reason the contract does not name. `error` carries the underlying message verbatim, alongside the `op` and the resolved `path` it failed on."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project's machine is still starting (`code: \"workspace_starting\"`, with `Retry-After`), or it could not be started (`code: \"workspace_unavailable\"`; the next call starts a fresh one)."}},"summary":"Read or write a file in the project's Cloud Machine","tags":["projects"]}},"/v1/api/projects/{projectId}/call":{"post":{"operationId":"joinProjectCall","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCallJoin"}}},"description":"The caller's place in the call, started when nobody was in it. Send a heartbeat every 30 seconds; two minutes without one ends the place. Call time is metered per participant minute."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace has no credit left for new spend."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or the caller is a client collaborator with no grant on it."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The call could not start."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Calls are not available on this deployment."}},"summary":"Join the project's call","tags":["project-calls"]}},"/v1/api/projects/{projectId}/call/{participantId}":{"put":{"operationId":"heartbeatProjectCall","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"participantId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCallState"}}},"description":"Still in the call."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or the caller is a client collaborator with no grant on it."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The place was closed: the caller left or was silent too long. Join again."}},"summary":"Keep the caller's place in the project's call","tags":["project-calls"]}},"/v1/api/projects/{projectId}/call/{participantId}/leave":{"post":{"operationId":"leaveProjectCall","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"participantId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCallState"}}},"description":"The place is closed and its call token revoked. Leaving twice is not an error."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or the caller is a client collaborator with no grant on it."}},"summary":"Leave the project's call","tags":["project-calls"]}},"/v1/api/projects/{projectId}/designs":{"get":{"operationId":"listDesigns","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Design"},"type":"array"}}},"description":"Project designs"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Design or project not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Revision changed or operation conflicts with design scope"}},"summary":"List native project designs","tags":["projects"]},"post":{"operationId":"createDesign","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDesign"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Design"}}},"description":"Design and prototype request created"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Design or project not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Revision changed or operation conflicts with design scope"}},"summary":"Submit a native prototype brief","tags":["projects"]}},"/v1/api/projects/{projectId}/designs/{designId}":{"get":{"operationId":"getDesign","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"designId","required":true,"schema":{"type":"string"}},{"description":"Exact immutable revision; latest when omitted","in":"query","name":"revision","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignDetail"}}},"description":"Design source and review"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Design or project not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Revision changed or operation conflicts with design scope"}},"summary":"Read a design revision and its review threads","tags":["projects"]}},"/v1/api/projects/{projectId}/designs/{designId}/build":{"post":{"operationId":"buildDesign","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"designId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildDesign"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignDetail"}}},"description":"Implementation request recorded once"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Design or project not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Revision changed or operation conflicts with design scope"}},"summary":"Submit implementation of an accepted prototype","tags":["projects"]}},"/v1/api/projects/{projectId}/designs/{designId}/comments":{"post":{"operationId":"createDesignComment","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"designId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDesignComment"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignComment"}}},"description":"Revision-anchored comment"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Design or project not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Revision changed or operation conflicts with design scope"}},"summary":"Comment on a frame without dispatching work","tags":["projects"]}},"/v1/api/projects/{projectId}/designs/{designId}/comments/{commentId}":{"patch":{"operationId":"resolveDesignComment","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"designId","required":true,"schema":{"type":"string"}},{"in":"path","name":"commentId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveDesignComment"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignComment"}}},"description":"Comment updated"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Design or project not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Revision changed or operation conflicts with design scope"}},"summary":"Resolve or reopen a design comment","tags":["projects"]}},"/v1/api/projects/{projectId}/designs/{designId}/decisions":{"post":{"operationId":"decideDesign","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"designId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignDecision"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignDetail"}}},"description":"Revision decision, never production deployment"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Design or project not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Revision changed or operation conflicts with design scope"}},"summary":"Accept a revision or submit revision work","tags":["projects"]}},"/v1/api/projects/{projectId}/designs/{designId}/revisions":{"post":{"operationId":"publishDesignRevision","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"designId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishDesignRevision"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignDetail"}}},"description":"Immutable revision"},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Design or project not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Revision changed or operation conflicts with design scope"}},"summary":"Publish a tested playable prototype","tags":["projects"]}},"/v1/api/projects/{projectId}/extra-usage":{"get":{"operationId":"getProjectExtraUsage","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectExtraUsage"}}},"description":"The project's override (`inherit`, `allow` or `block`), its effective value and the setting that determined it."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace's subscription could not be verified, so the setting's effect is unknown. Nothing changed."}},"summary":"Read a project's extra usage override and what it resolves to","tags":["billing"]},"put":{"operationId":"setProjectExtraUsage","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetProjectExtraUsage"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectExtraUsage"}}},"description":"The resolved project setting after the write. The project's override wins over the workspace setting."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project settings are agency-only, and only owners and admins may change extra usage."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Extra usage cannot be turned on: the workspace has no active subscription to charge (`code: \"payment_method_required\"`), its usage is not metered (`code: \"not_metered\"`), or, on task billing, it is on the free plan (`code: \"upgrade_required\"`). Turning it off always succeeds."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The workspace's subscription could not be verified, so the setting's effect is unknown. Nothing changed."}},"summary":"Set a project's extra usage override","tags":["billing"]}},"/v1/api/projects/{projectId}/mention-roster":{"get":{"operationId":"getProjectMentionRoster","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentionRoster"}}},"description":"Workspace members, this project's portal clients and its agents, with the project manager first. Only agency viewers receive email addresses."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or the caller is a client collaborator with no grant on it."}},"summary":"List who this project's conversations can mention","tags":["mentions"]}},"/v1/api/projects/{projectId}/task-charges":{"get":{"operationId":"getProjectTaskCharges","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectTaskCharges"}}},"description":"The project's tier and credits per task, its charges, and the review rounds each reworked task has used."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Project spend is agency-only."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."}},"summary":"Read a project's accepted tasks, task price and review rounds","tags":["billing"]}},"/v1/api/promotions/analytics-consent":{"post":{"operationId":"revokePromotionAnalyticsConsent","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionAnalyticsConsent"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionConsentRevoked"}}},"description":"Stored analytics associations were cleared."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer or billing authority is temporarily unavailable."}},"security":[{"sessionCookie":[]}],"summary":"Withdraw stored promotion analytics permission","tags":["billing"]}},"/v1/api/promotions/claim":{"post":{"operationId":"claimPromotionOffer","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionResolveInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionCurrent"}}},"description":"The frozen workspace offer."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The link or code is invalid, expired or unavailable."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer conflicts with existing customer eligibility or reached its claim limit."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer or billing authority is temporarily unavailable."}},"summary":"Claim an offer for the workspace","tags":["billing"]}},"/v1/api/promotions/current":{"get":{"operationId":"getCurrentPromotion","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionCurrent"}}},"description":"The workspace's promotion or null."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer or billing authority is temporarily unavailable."}},"summary":"Read the workspace's current promotion","tags":["billing"]}},"/v1/api/promotions/partner":{"get":{"operationId":"getOwnPartnerPromotion","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionPartnerSummary"}}},"description":"Aggregated partner referrals and the beneficiary's grant."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer or billing authority is temporarily unavailable."}},"summary":"Read this partner's referral counts and reward history","tags":["billing"]}},"/v1/api/promotions/partners/{slug}":{"get":{"operationId":"getPartnerPromotionOffer","parameters":[{"in":"path","name":"slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionOffer"}}},"description":"The partner and offer."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The link or code is invalid, expired or unavailable."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer conflicts with existing customer eligibility or reached its claim limit."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer or billing authority is temporarily unavailable."}},"security":[],"summary":"Preview a public partner offer","tags":["billing"]}},"/v1/api/promotions/resolve":{"post":{"operationId":"resolvePromotionOffer","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionResolveInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromotionOffer"}}},"description":"The offer and plan-fee quotes with complete H$ allowances."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The link or code is invalid, expired or unavailable."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer conflicts with existing customer eligibility or reached its claim limit."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The offer or billing authority is temporarily unavailable."}},"security":[],"summary":"Preview a private invitation or public partner offer","tags":["billing"]}},"/v1/api/providers":{"get":{"operationId":"listModelProviders","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ModelProviderConfig"},"type":"array"}}},"description":"Safe workspace provider configuration, no credentials or model payloads."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner/admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List connected model billing providers","tags":["providers"]},"post":{"operationId":"connectModelProvider","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertProvider"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelProviderConfig"}}},"description":"Provider configuration saved."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid provider or body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner/admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Save a workspace model provider","tags":["providers"]}},"/v1/api/providers/{provider}":{"delete":{"operationId":"deleteModelProvider","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelProviderRemoved"}}},"description":"Disconnected."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid provider or body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner/admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Disconnect a model provider","tags":["providers"]},"get":{"operationId":"getModelProvider","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelProviderConfig"}}},"description":"Safe provider configuration."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid provider or body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner/admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No stored provider credentials."}},"summary":"Read a model provider configuration","tags":["providers"]},"patch":{"operationId":"updateModelProvider","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchProvider"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelProviderConfig"}}},"description":"Provider configuration saved."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid provider or body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner/admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Update a model provider","tags":["providers"]}},"/v1/api/providers/{provider}/models":{"get":{"operationId":"getModelProviderModels","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccountModelCatalog"}}},"description":"Cached advertised metadata; never probes or proves entitlement."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid provider or body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner/admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Read cached models advertised by this billing provider","tags":["providers"]}},"/v1/api/providers/{provider}/models/refresh":{"post":{"operationId":"refreshModelProviderModels","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoderAccountModelCatalog"}}},"description":"Bounded advertised metadata."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid provider or body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner/admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Connect this provider or refresh after its credential changed."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Provider model list unavailable."}},"summary":"Refresh the connected provider model catalog","tags":["providers"]}},"/v1/api/providers/{provider}/test":{"post":{"operationId":"testModelProvider","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestModelProvider"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelProviderProbe"}}},"description":"Read-only provider check."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"Invalid provider or body."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Agency only; mutations require owner/admin."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No stored provider credentials."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelProviderProbe"}}},"description":"Provider check failed."}},"summary":"Test provider credentials without inference","tags":["providers"]}},"/v1/api/reports":{"get":{"operationId":"getOverviewReport","parameters":[{"description":"Rolling reporting window such as `30d`; clamped to 1–365 days.","in":"query","name":"period","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgencyOverviewReport"},{"$ref":"#/components/schemas/ClientOverviewReport"}]}}},"description":"The agency portfolio report, or the caller's client-safe overview."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Get the current portfolio overview","tags":["reports"]}},"/v1/api/reports/billing":{"get":{"operationId":"getBillingReport","parameters":[{"description":"Rolling reporting window such as `30d`; clamped to 1–365 days.","in":"query","name":"period","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgencyBillingReport"},{"$ref":"#/components/schemas/ClientBillingReport"}]}}},"description":"Agency billing health, or the invoices visible to this client."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Get billing health","tags":["reports"]}},"/v1/api/reports/customers":{"get":{"operationId":"listCustomerReports","parameters":[{"description":"Rolling reporting window such as `30d`; clamped to 1–365 days.","in":"query","name":"period","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomersReport"}}},"description":"Each customer counted once across all projects."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; this portfolio view is agency-only."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List customer portfolio reports","tags":["reports"]}},"/v1/api/reports/projects":{"get":{"operationId":"listProjectReports","parameters":[{"description":"Rolling reporting window such as `30d`; clamped to 1–365 days.","in":"query","name":"period","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgencyProjectsReport"},{"$ref":"#/components/schemas/ClientProjectsReport"}]}}},"description":"Agency project health, or only the projects visible to this client."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List project health reports","tags":["reports"]}},"/v1/api/reports/usage":{"get":{"operationId":"getUsageReport","parameters":[{"description":"Rolling reporting window such as `30d`; clamped to 1–365 days.","in":"query","name":"period","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageReport"}}},"description":"Agent runs, tokens, and cost for the reporting window."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The caller is a client collaborator; this portfolio view is agency-only."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Get agent usage and cost","tags":["reports"]}},"/v1/api/requests":{"post":{"operationId":"submitRequest","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCycle"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestSubmitted"}}},"description":"The proposal was recorded. `cycleId` is the cycle the plan agent made of it when it planned before answering (the normal case); null means it is still waiting for a planning pass, and `requestId` is the row to follow. `adopted: false` means the proposal could not be recorded."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived or this request source is disabled. The response explains how to allow work again."}},"summary":"Submit a request","tags":["cycles"]}},"/v1/api/secrets/project/{projectId}":{"get":{"operationId":"listProjectSecretsConfigs","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SecretsConfigSummary"},"type":"array"}}},"description":"Each configuration with a redacted `configSummary`. The encrypted `config` field is omitted."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List a project's secrets configs","tags":["secrets"]},"post":{"operationId":"createProjectSecretsConfig","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecretsConfig"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretsConfig"}}},"description":"The stored row. `config` is the encrypted credential blob — ciphertext, never plaintext."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The config could not be written."}},"summary":"Configure a secrets provider","tags":["secrets"]}},"/v1/api/secrets/project/{projectId}/entries":{"get":{"operationId":"listProjectSecretEntries","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretEntries"}}},"description":"Every secret attached to the project. Values are masked to their last four characters and there is no option that unmasks them — `POST …/export` is the only route that returns plaintext."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."}},"summary":"List the project's secrets, masked, with the file each belongs to","tags":["secrets"]},"put":{"operationId":"upsertProjectSecretEntries","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertSecretEntries"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretEntriesWritten"}}},"description":"How many entries landed, and the keys refused because their `source` is not a path this platform will write inside a checkout."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived and accepts no further writes."}},"summary":"Create or replace secrets in the project store","tags":["secrets"]}},"/v1/api/secrets/project/{projectId}/entries/{key}":{"delete":{"operationId":"deleteProjectSecretEntry","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"key","required":true,"schema":{"type":"string"}},{"description":"Remove the key only from this source file. If omitted, remove it from every file that declares it.","in":"query","name":"source","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretEntryDeleted"}}},"description":"How many `(key, source)` pairs were removed. Zero is a success, not a 404 — the call is idempotent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived and accepts no further writes."}},"summary":"Remove one secret from the project store","tags":["secrets"]}},"/v1/api/secrets/project/{projectId}/export":{"post":{"operationId":"exportProjectSecrets","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportSecrets"}}},"required":true},"responses":{"200":{"content":{"text/plain":{"schema":{"format":"binary","type":"string"}}},"description":"The secret file in its recorded format unless `format` overrides it. Supported formats include dotenv, direnv, Terraform HCL/JSON, Java properties, Spring YAML, .NET appsettings and user secrets, Azure Functions local settings, npm credentials, Rails database.yml, Wrangler/Fly TOML, Serverless environment settings and credentials JSON/YAML/INI. The response is `text/plain` and contains plaintext secrets. Every export records a `secrets.exported` audit entry. Formats marked `shape` are reconstructed with captured values; comments and uncaptured content are omitted."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."}},"summary":"Export one source file's secrets, values in clear","tags":["secrets"]}},"/v1/api/secrets/project/{projectId}/files":{"put":{"operationId":"importProjectSecretFiles","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportSecretFiles"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretFilesImported"}}},"description":"Import results for each file. Supported key/value documents are parsed under their source path, replacing that path's previous entries. Opaque credentials such as private keys, keystores, service-account JSON and Docker/AWS configuration are preserved byte-for-byte as protected files for provisioning and `hlix pull`. Encrypted files without an available decryption key (SOPS, Ansible Vault and git-crypt) and `.env.example` files are listed in `skipped`. Secret values are never included in this response."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived and accepts no further writes."}},"summary":"Upload whole secret files and let the store parse them","tags":["secrets"]}},"/v1/api/secrets/project/{projectId}/sync-logs":{"get":{"operationId":"listProjectSecretsSyncLogs","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SecretsSyncLog"},"type":"array"}}},"description":"Each push of secrets into a Cloud Machine or into GitHub: how many moved, and whether it worked."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List a project's secrets sync history","tags":["secrets"]}},"/v1/api/secrets/project/{projectId}/test":{"post":{"operationId":"testProjectSecrets","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretsProbe"}}},"description":"The keys every active config resolves to, merged. Names and a count only — the values are fetched to prove the credentials work and then discarded."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The provider rejected the request; `error` contains its message. This status also covers a request without an active workspace."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Resolve the project's secrets and report the key names","tags":["secrets"]}},"/v1/api/secrets/project/{projectId}/{configId}":{"delete":{"operationId":"deleteProjectSecretsConfig","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"configId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedAck"}}},"description":"The config is gone. Deleting one that was never there answers the same 200 — the call is idempotent."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Delete a secrets config","tags":["secrets"]},"patch":{"operationId":"updateProjectSecretsConfig","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"type":"string"}},{"in":"path","name":"configId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSecretsConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecretsConfig"}}},"description":"The updated row, with the re-encrypted `config` ciphertext."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The body failed validation, or the merged provider config is not valid — for Infisical, a missing field or a server address that is not a public https origin."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such config in this workspace."}},"summary":"Update a secrets config","tags":["secrets"]}},"/v1/api/settings/hosting":{"get":{"operationId":"getWorkspaceHosting","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceHosting"}}},"description":"Workspace hosting and regional entry points"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Workspace not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Workspace belongs to another regional server"}},"summary":"Read the workspace's immutable hosting region","tags":["hosting"]}},"/v1/api/tasks":{"get":{"operationId":"listTasks","parameters":[{"description":"Only tasks in this project.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"Only tasks in this status.","in":"query","name":"status","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Task"},"type":"array"}}},"description":"The matching tasks."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List tasks in the workspace","tags":["tasks"]},"post":{"operationId":"createTask","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTask"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}},"description":"The created task."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such project in this workspace — or a client collaborator it was never shared with (existence is deliberately not revealed)."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The project is archived and does not accept new tasks."},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The task could not be created."}},"summary":"Create a task; taskConfig delegates it through a one-task cycle","tags":["tasks"]}},"/v1/api/tasks/{id}":{"get":{"operationId":"getTask","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}},"description":"The task."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such task in this workspace."}},"summary":"Get one task","tags":["tasks"]},"patch":{"operationId":"updateTask","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTask"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}},"description":"The updated task."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such task in this workspace."}},"summary":"Update a task's title, description or status","tags":["tasks"]}},"/v1/api/tasks/{id}/comments":{"get":{"operationId":"listTaskComments","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TaskComment"},"type":"array"}}},"description":"The task's comment thread, oldest first."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such task in this workspace."}},"summary":"List the comments on a task","tags":["tasks"]},"post":{"operationId":"addTaskComment","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"},{"$ref":"#/components/parameters/ClientPortal"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTaskComment"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskComment"}}},"description":"The stored comment."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such task in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The supplied `messageId` is already in use — either on another conversation, or on this one with different content."}},"summary":"Comment on a task","tags":["tasks"]}},"/v1/api/tool-calls":{"get":{"operationId":"listToolCalls","parameters":[{"description":"Filter by project.","in":"query","name":"projectId","required":false,"schema":{"type":"string"}},{"description":"1–100, defaults to 30.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"description":"Opaque nextCursor from the previous page.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCallList"}}},"description":"Newest first, with stable keyset pagination."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List recent workspace tool invocations","tags":["tools"]}},"/v1/api/tool-calls/{callId}":{"get":{"operationId":"getToolCall","parameters":[{"in":"path","name":"callId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCall"}}},"description":"Execution and cost settle independently. Native accounting belongs to the named service; null actual costs are not zero."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such tool or call in this workspace."}},"summary":"Read a persisted tool result and cost status","tags":["tools"]}},"/v1/api/tools":{"get":{"operationId":"searchTools","parameters":[{"description":"Search text, up to 500 characters.","in":"query","name":"query","required":false,"schema":{"type":"string"}},{"description":"Provider filter.","in":"query","name":"provider","required":false,"schema":{"type":"string"}},{"description":"1–100, defaults to 30.","in":"query","name":"limit","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolSearchResult"}}},"description":"Native and upstream tool descriptors. Remote totals may be unknown."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Search available tools and inspect funding readiness","tags":["tools"]}},"/v1/api/tools/connections/treg":{"delete":{"operationId":"removeToolConnection","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolConnection"}}},"description":"The connection was removed. Owner or admin only."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Remove a workspace Treg connection","tags":["tools"]},"get":{"operationId":"getToolConnection","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolConnection"}}},"description":"Credential presence, never the token."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Read safe Treg connection state","tags":["tools"]},"put":{"operationId":"saveToolConnection","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveToolConnection"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolConnection"}}},"description":"The encrypted connection was saved. Owner or admin only."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Save a workspace Treg connection","tags":["tools"]}},"/v1/api/tools/{toolId}":{"get":{"operationId":"describeTool","parameters":[{"in":"path","name":"toolId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolDescriptor"}}},"description":"Tool descriptor."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such tool or call in this workspace."}},"summary":"Read the accepted input schema and execution policy","tags":["tools"]}},"/v1/api/tools/{toolId}/call":{"post":{"operationId":"callTool","parameters":[{"in":"path","name":"toolId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCallInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCall"}}},"description":"Same idempotency key and request: the existing invocation."},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCall"}}},"description":"New invocation persisted before provider dispatch."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Insufficient workspace spending headroom for this reservation."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No such tool or call in this workspace."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"This key already identifies a different request, or the selected connection is unavailable."}},"summary":"Create or revisit a durable tool invocation","tags":["tools"]}},"/v1/api/usage":{"get":{"operationId":"getWorkspaceUsage","parameters":[{"description":"Usage window in days; defaults to 30.","in":"query","name":"sinceDays","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceUsage"}}},"description":"Usage in the requested day window, default 30 days. Amounts are the price of the usage (cost plus markup): charged in metered billing, a price equivalent only in task billing, where the workspace pays per accepted task."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage is agency-only."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Read workspace usage and entitlement","tags":["billing"]}},"/v1/api/usage/delivery-limit":{"patch":{"operationId":"setDeliveryMonthlyLimit","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryMonthlyLimit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryMonthlyLimit"}}},"description":"Stored cap in USD micros; null removes the limit."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Invalid limit."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Set or clear the monthly Delivery spending limit","tags":["billing"]}},"/v1/api/usage/limit":{"delete":{"operationId":"removeWorkspaceUsageLimit","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageLimitResponse"}}},"description":"The usage limit is cleared."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Clear the workspace usage limit","tags":["billing"]},"put":{"operationId":"setWorkspaceUsageLimit","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageLimit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageLimitResponse"}}},"description":"Stored limit in millicents."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Invalid limit."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Owner or admin required."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Set the workspace usage limit","tags":["billing"]}},"/v1/api/usage/monthly-limits":{"get":{"operationId":"getMonthlySpendLimits","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonthlySpendLimits"}}},"description":"Both categories share workspace credit."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Usage is agency-only."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Read Growth and Delivery limits and spending this UTC month","tags":["billing"]}},"/v1/api/web-providers":{"get":{"operationId":"listWebProviders","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WebProviderState"},"type":"array"}}},"description":"The provider catalog. Stored secrets are represented only by `hasApiKey`; no key is returned."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may inspect or change provider credentials."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List web-provider credential state","tags":["web-providers"]}},"/v1/api/web-providers/crawl":{"get":{"operationId":"getHlixCrawlStatus","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HlixCrawlStatus"}}},"description":"Month-to-date hlix-crawl usage, plan allowance and overage rate. `termsSource: plan` identifies subscription-defined terms; `termsSource: placeholder` identifies provisional terms not supplied by billing."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may inspect or change provider credentials."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Show hlix-crawl usage against the plan allowance","tags":["web-providers"]},"patch":{"operationId":"toggleHlixCrawl","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleWebProvider"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HlixCrawlStatus"}}},"description":"The hlix-crawl status after the toggle."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may inspect or change provider credentials."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Opt the workspace in or out of hlix-crawl","tags":["web-providers"]}},"/v1/api/web-providers/{provider}":{"patch":{"operationId":"toggleWebProvider","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleWebProvider"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebProviderState"}}},"description":"The safe provider state after the toggle."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may inspect or change provider credentials."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The key cannot be enabled because none is stored."}},"summary":"Enable or disable a stored web-provider key","tags":["web-providers"]}},"/v1/api/web-providers/{provider}/key":{"delete":{"operationId":"removeWebProviderKey","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebProviderState"}}},"description":"The safe provider state after the key was removed and disabled."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may inspect or change provider credentials."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Remove a stored web-provider key","tags":["web-providers"]},"put":{"operationId":"saveWebProviderKey","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/OrganizationId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveWebProviderKey"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebProviderState"}}},"description":"The safe provider state after saving and enabling the key."},"400":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ValidationError"},{"$ref":"#/components/schemas/ApiError"}]}}},"description":"The JSON body failed schema validation (`ValidationError`), or the request named no active organization (`ApiError`)."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Only workspace owners and admins may inspect or change provider credentials."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"Add or replace a web-provider key","tags":["web-providers"]}},"/v1/api/workspaces":{"get":{"operationId":"listWorkspaces","parameters":[{"$ref":"#/components/parameters/OrganizationId"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkspaceMembership"},"type":"array"}}},"description":"Every workspace (organization) the authenticated user is a member of, with the role held in each, ordered by name. `id` is the value `X-Organization-Id` takes on every other operation."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The request named no active organization."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"No valid session or API key."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"description":"The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist."}},"summary":"List the workspaces you belong to","tags":["workspaces"]}}},"security":[{"apiKey":[]},{"sessionCookie":[]}],"servers":[{"url":"https://server.hlix.ai","description":"API server"}],"tags":[{"description":"Connected model billing providers.","name":"providers"},{"description":"Shared tool discovery, durable invocation and usage receipts.","name":"tools"},{"description":"Workspace hosting regions and regional entry points.","name":"hosting"},{"description":"Connected subscriptions and custom API keys for native coders.","name":"coder-accounts"},{"description":"Projects, their repositories, roadmap, artifacts and Cloud Machine.","name":"projects"},{"description":"Tasks, comments and review evidence.","name":"tasks"},{"description":"Multi-task units of work and their conversations.","name":"cycles"},{"description":"Secure project snapshot upload, verification and finalization.","name":"imports"},{"description":"Agency portfolio health and client-safe reporting views.","name":"reports"},{"description":"Growth projects: the Company brain, campaigns, research runs and data-provider keys.","name":"growth"},{"description":"The sales pipeline over client accounts: deals, contacts, notes and the client record.","name":"crm"},{"description":"Workspace Limrun keys for mobile emulators and devices.","name":"mobile-provider"},{"description":"Organization web-provider credentials and activation state.","name":"web-providers"}]}