{"openapi":"3.1.0","info":{"title":"Cockpit","version":"1.2.0","x-catalog-component":"cockpit","x-catalog-system":"lila-internal"},"servers":[{"url":"/"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Zitadel access token of an agent service user (role cockpit.agent)"}},"schemas":{"Health":{"type":"object","properties":{"status":{"type":"string","enum":["ok","unavailable"]},"version":{"type":"string"},"checks":{"type":"object","additionalProperties":{"type":"string","enum":["ok","failed"]}}},"required":["status","version","checks"]},"Item":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["question","approval","notice"]},"status":{"type":"string","enum":["open","resolved","expired","cancelled","superseded","acknowledged"]},"urgency":{"type":"string","enum":["now","slot","digest"]},"title":{"type":"string"},"summary":{"type":["string","null"]},"context":{"type":["string","null"]},"project":{"type":["string","null"]},"requester":{"$ref":"#/components/schemas/PrincipalRef"},"deadlineAt":{"type":["string","null"],"format":"date-time"},"neededBy":{"type":["string","null"],"format":"date-time"},"outcome":{"type":["string","null"],"enum":["confirmed","deviated",null]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"bodyMd":{"type":["string","null"]},"assignee":{"$ref":"#/components/schemas/PrincipalRef"},"options":{"type":"array","items":{"$ref":"#/components/schemas/Option"}},"recommendedOptionKey":{"type":["string","null"]},"defaultOptionKey":{"type":["string","null"]},"assumedOptionKey":{"type":["string","null"]},"reversible":{"type":["boolean","null"]},"dedupeKey":{"type":["string","null"]},"callbackUrl":{"type":["string","null"]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"title":{"type":"string","maxLength":200}},"required":["url"]}},"metadata":{"type":"object","additionalProperties":{}},"workingAssumption":{"type":["string","null"]},"parkedWork":{"type":["string","null"]},"replyTo":{"$ref":"#/components/schemas/ReplyTo"},"wakePolicy":{"type":"string","enum":["auto","always","never"]},"supersedesId":{"type":["string","null"],"format":"uuid"},"closedReason":{"type":["string","null"]},"resolution":{"$ref":"#/components/schemas/Resolution"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Message"}},"resolvedAt":{"type":["string","null"],"format":"date-time"},"archivedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","kind","status","urgency","title","summary","context","project","requester","deadlineAt","neededBy","outcome","createdAt","updatedAt","bodyMd","assignee","options","recommendedOptionKey","defaultOptionKey","assumedOptionKey","reversible","dedupeKey","callbackUrl","links","metadata","workingAssumption","parkedWork","replyTo","wakePolicy","supersedesId","closedReason","resolution","messages","resolvedAt","archivedAt"]},"PrincipalRef":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"displayName":{"type":"string"}},"required":["id","displayName"]},"Option":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"description":{"type":["string","null"]},"pros":{"type":"array","items":{"type":"string"}},"cons":{"type":"array","items":{"type":"string"}},"impact":{"type":["string","null"]}},"required":["key","label","description","pros","cons","impact"]},"ReplyTo":{"type":["object","null"],"properties":{"paperclipTaskId":{"type":"string","maxLength":100},"gitlab":{"type":"object","properties":{"project":{"type":"string","maxLength":200},"iid":{"type":"integer","exclusiveMinimum":0},"type":{"type":"string","enum":["issue","mr"]}},"required":["project","iid","type"]},"sessionId":{"type":"string","maxLength":200},"cacheExpiresAt":{"type":"string","format":"date-time"}},"description":"Where the asking run lives: used to mirror the answer and to decide whether a wake-up is worth it."},"Resolution":{"type":["object","null"],"properties":{"optionKey":{"type":["string","null"]},"freeText":{"type":["string","null"]},"by":{"allOf":[{"$ref":"#/components/schemas/PrincipalRef"},{"type":["object","null"]}]},"channel":{"type":"string","enum":["web","ntfy","rest","mcp","auto_default"]},"createdAt":{"type":"string","format":"date-time"}},"required":["optionKey","freeText","by","channel","createdAt"]},"Message":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["assignee","requester","advisor","system"]},"author":{"allOf":[{"$ref":"#/components/schemas/PrincipalRef"},{"type":["object","null"]}]},"bodyMd":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","role","author","bodyMd","createdAt"]},"Problem":{"type":"object","properties":{"type":{"type":"string","default":"about:blank"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"]}}},"required":["title","status"]},"CreateItem":{"type":"object","properties":{"kind":{"type":"string","enum":["question","approval","notice"]},"title":{"type":"string","minLength":1,"maxLength":200},"summary":{"type":"string","maxLength":280},"bodyMd":{"type":"string","maxLength":10000},"urgency":{"type":"string","enum":["now","slot","digest"],"default":"slot"},"context":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,59}$","description":"Context slug, e.g. `lila`"},"project":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,59}$","description":"Project slug within the context"},"options":{"type":"array","items":{"$ref":"#/components/schemas/OptionInput"},"maxItems":3},"recommendedOptionKey":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,19}$"},"defaultOptionKey":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,19}$"},"assumedOptionKey":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,19}$","description":"The answer the agent keeps working with; defaults to the recommendation. Decides `outcome`."},"reversible":{"type":"boolean"},"deadlineAt":{"type":"string","format":"date-time"},"neededBy":{"type":"string","format":"date-time","description":"When the open question would actually block the agent."},"dedupeKey":{"type":"string","minLength":1,"maxLength":200},"callbackUrl":{"type":"string","format":"uri"},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"title":{"type":"string","maxLength":200}},"required":["url"]},"maxItems":10},"metadata":{"type":"object","additionalProperties":{}},"workingAssumption":{"type":"string","minLength":1,"maxLength":500,"description":"What the agent does meanwhile, e.g. \"continuing with 50 %\"."},"parkedWork":{"type":"string","minLength":1,"maxLength":500,"description":"What the agent set aside until the answer arrives."},"replyTo":{"$ref":"#/components/schemas/ReplyTo"},"wakePolicy":{"type":"string","enum":["auto","always","never"],"default":"auto"}},"required":["kind","title"]},"OptionInput":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,19}$"},"label":{"type":"string","minLength":1,"maxLength":80},"description":{"type":"string","maxLength":2000},"pros":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":5},"cons":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"maxItems":5},"impact":{"type":"string","maxLength":500}},"required":["key","label"]},"ItemList":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ItemSummary"}},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"]},"ItemSummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["question","approval","notice"]},"status":{"type":"string","enum":["open","resolved","expired","cancelled","superseded","acknowledged"]},"urgency":{"type":"string","enum":["now","slot","digest"]},"title":{"type":"string"},"summary":{"type":["string","null"]},"context":{"type":["string","null"]},"project":{"type":["string","null"]},"requester":{"$ref":"#/components/schemas/PrincipalRef"},"deadlineAt":{"type":["string","null"],"format":"date-time"},"neededBy":{"type":["string","null"],"format":"date-time"},"outcome":{"type":["string","null"],"enum":["confirmed","deviated",null]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","kind","status","urgency","title","summary","context","project","requester","deadlineAt","neededBy","outcome","createdAt","updatedAt"]},"UpdateItem":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"summary":{"type":"string","maxLength":280},"bodyMd":{"type":"string","maxLength":10000},"options":{"type":"array","items":{"$ref":"#/components/schemas/OptionInput"},"maxItems":3},"recommendedOptionKey":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,19}$"},"defaultOptionKey":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,19}$"},"assumedOptionKey":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,19}$","description":"The answer the agent keeps working with; defaults to the recommendation. Decides `outcome`."},"deadlineAt":{"type":"string","format":"date-time"},"neededBy":{"type":"string","format":"date-time","description":"When the open question would actually block the agent."},"workingAssumption":{"type":"string","minLength":1,"maxLength":500,"description":"What the agent does meanwhile, e.g. \"continuing with 50 %\"."},"parkedWork":{"type":"string","minLength":1,"maxLength":500,"description":"What the agent set aside until the answer arrives."},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"title":{"type":"string","maxLength":200}},"required":["url"]},"maxItems":10}}},"ResolveItem":{"anyOf":[{"type":"object","properties":{"optionKey":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,19}$"},"comment":{"type":"string","maxLength":2000}},"required":["optionKey"]},{"type":"object","properties":{"freeText":{"type":"string","minLength":1,"maxLength":2000}},"required":["freeText"]}]},"CreateMessage":{"type":"object","properties":{"bodyMd":{"type":"string","minLength":1,"maxLength":10000}},"required":["bodyMd"]},"CancelItem":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":500}},"required":["reason"]},"Postbox":{"type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/PostboxEntry"}},"cursor":{"type":"integer","description":"Pass to POST /me/postbox/ack as `upTo`."}},"required":["entries","cursor"]},"PostboxEntry":{"type":"object","properties":{"eventId":{"type":"integer"},"type":{"type":"string","enum":["item.resolved","item.expired","item.message_created"]},"itemId":{"type":"string","format":"uuid"},"title":{"type":"string"},"outcome":{"type":["string","null"],"enum":["confirmed","deviated",null]},"answer":{"type":["object","null"],"properties":{"optionKey":{"type":["string","null"]},"freeText":{"type":["string","null"]}},"required":["optionKey","freeText"]},"message":{"type":["string","null"]},"wake":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"}},"required":["eventId","type","itemId","title","outcome","answer","message","wake","createdAt"]},"AckPostbox":{"type":"object","properties":{"upTo":{"type":"integer","minimum":0}},"required":["upTo"]},"Heartbeat":{"type":"object","properties":{"cacheExpiresAt":{"type":"string","format":"date-time"},"sessionId":{"type":"string","maxLength":200}}}},"parameters":{}},"paths":{"/api/health/live":{"get":{"tags":["health"],"summary":"Liveness probe","responses":{"200":{"description":"The process is running","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/api/health/ready":{"get":{"tags":["health"],"summary":"Readiness probe","responses":{"200":{"description":"Every hard dependency answered","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"503":{"description":"At least one hard dependency failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/api/v1/items":{"post":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Ask: create a question, approval or notice","description":"Ask early and keep working: questions and approvals need `workingAssumption` or `parkedWork`. An open item with the same `dedupeKey` is returned with 200.","parameters":[{"schema":{"type":"string","maxLength":200},"required":false,"name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateItem"}}}},"responses":{"200":{"description":"An open duplicate (same dedupeKey); an Idempotency-Key replay repeats the original status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"400":{"description":"The body did not match the schema","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Unknown context, or Idempotency-Key reused for another request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"get":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"List items in triage order (keyset pagination)","parameters":[{"schema":{"type":"string","enum":["open","resolved","expired","cancelled","superseded","acknowledged"],"default":"open"},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","enum":["question","approval","notice"]},"required":false,"name":"kind","in":"query"},{"schema":{"type":"string","enum":["now","slot","digest"]},"required":false,"name":"urgency","in":"query"},{"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,59}$"},"required":false,"name":"context","in":"query"},{"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,59}$"},"required":false,"name":"project","in":"query"},{"schema":{"type":"string","enum":["me"]},"required":false,"name":"requester","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":200},"required":false,"name":"q","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","maxLength":500},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"One page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemList"}}}},"400":{"description":"Invalid query or cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/items/{id}":{"get":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Item with options, resolution and thread","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"The item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such item, or not visible to the caller","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"patch":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Change an open item (requester); the change is noted in the thread","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateItem"}}}},"responses":{"200":{"description":"The updated item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such item, or not visible to the caller","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The item is no longer open","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"An option key does not exist","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/items/{id}/wait":{"get":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Long-poll until the item leaves open, or the timeout","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":55,"default":55},"required":false,"name":"timeout","in":"query"}],"responses":{"200":{"description":"The current state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such item, or not visible to the caller","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/items/{id}/resolve":{"post":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Decide (assignee): an option or free text. First resolution wins.","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveItem"}}}},"responses":{"200":{"description":"The item afterwards","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such item, or not visible to the caller","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Not allowed in the current status, or already resolved","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Not an option of this item","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/items/{id}/acknowledge":{"post":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Acknowledge a notice (assignee)","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"The item afterwards","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such item, or not visible to the caller","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Not allowed in the current status, or already resolved","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/items/{id}/messages":{"post":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Add to the clarification thread","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMessage"}}}},"responses":{"200":{"description":"The item afterwards","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such item, or not visible to the caller","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Not allowed in the current status, or already resolved","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/items/{id}/cancel":{"post":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Withdraw (requester), with a reason","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelItem"}}}},"responses":{"200":{"description":"The item afterwards","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such item, or not visible to the caller","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Not allowed in the current status, or already resolved","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/items/{id}/supersede":{"post":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Replace by a new item (requester); returns the new one","parameters":[{"schema":{"type":"string","format":"uuid"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateItem"}}}},"responses":{"200":{"description":"The item afterwards","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No such item, or not visible to the caller","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Not allowed in the current status, or already resolved","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/me/postbox":{"get":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Unread answers and replies for the calling agent","description":"Send `If-None-Match` with the last ETag: 304 when nothing is new.","responses":{"200":{"description":"Unread entries, oldest first","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Postbox"}}}},"304":{"description":"Nothing new since the given ETag"},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/me/postbox/ack":{"post":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Mark postbox entries up to an event id as read","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AckPostbox"}}}},"responses":{"204":{"description":"Acknowledged"},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/me/heartbeat":{"post":{"tags":["decisions"],"security":[{"bearer":[]}],"summary":"Report the run alive and until when its prompt cache is warm","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Heartbeat"}}}},"responses":{"204":{"description":"Recorded"},"401":{"description":"No valid bearer token or session","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The caller may not do this","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"webhooks":{}}