{"openapi":"3.1.0","info":{"title":"aweb coordination core","version":"0.1.0"},"paths":{"/health":{"get":{"tags":["internal"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/api/v1/create-project":{"post":{"tags":["bootstrap"],"summary":"Create Project","description":"Create a project, attach its namespace, and bootstrap the first identity.","operationId":"create_project_api_v1_create_project_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces/init":{"post":{"tags":["workspaces"],"summary":"Init","description":"Initialize a local workspace into an existing project using project authority.","operationId":"init_v1_workspaces_init_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/spawn/create-invite":{"post":{"tags":["spawn"],"summary":"Create Spawn Invite","operationId":"create_spawn_invite_api_v1_spawn_create_invite_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpawnInviteRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpawnInviteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/spawn/invites":{"get":{"tags":["spawn"],"summary":"List Spawn Invites","operationId":"list_spawn_invites_api_v1_spawn_invites_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSpawnInvitesResponse"}}}}}}},"/api/v1/spawn/invites/{invite_id}":{"delete":{"tags":["spawn"],"summary":"Revoke Spawn Invite","operationId":"revoke_spawn_invite_api_v1_spawn_invites__invite_id__delete","parameters":[{"name":"invite_id","in":"path","required":true,"schema":{"type":"string","title":"Invite Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/spawn/accept-invite":{"post":{"tags":["spawn"],"summary":"Accept Spawn Invite","operationId":"accept_spawn_invite_api_v1_spawn_accept_invite_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptSpawnInviteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptSpawnInviteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/introspect":{"get":{"tags":["aweb-auth"],"summary":"Introspect","description":"Validate the caller's auth context and return the scoped project_id.\n\nThis endpoint exists primarily so wrapper or proxy deployments can validate\nincoming Bearer tokens without duplicating API key verification logic.","operationId":"introspect_v1_auth_introspect_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Introspect V1 Auth Introspect Get"}}}}}}},"/v1/agents/suggest-alias-prefix":{"post":{"tags":["agents"],"summary":"Suggest Alias Prefix","description":"Suggest the next available classic alias prefix for a project.\n\nThis endpoint is intentionally unauthenticated so new\nagents can bootstrap cleanly in standalone coordination deployments.","operationId":"suggest_alias_prefix_v1_agents_suggest_alias_prefix_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestAliasPrefixRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestAliasPrefixResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/heartbeat":{"post":{"tags":["agents"],"summary":"Heartbeat","operationId":"heartbeat_v1_agents_heartbeat_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeartbeatResponse"}}}}}}},"/v1/agents/me":{"delete":{"tags":["agents"],"summary":"Delete Agent","operationId":"delete_agent_v1_agents_me_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAgentResponse"}}}}}},"patch":{"tags":["agents"],"summary":"Patch Agent","operationId":"patch_agent_v1_agents_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAgentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/{agent_id}":{"patch":{"tags":["agents"],"summary":"Patch Agent By Id","operationId":"patch_agent_by_id_v1_agents__agent_id__patch","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAgentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["agents"],"summary":"Delete Agent By Id","operationId":"delete_agent_by_id_v1_agents__agent_id__delete","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/resolve/{namespace}/{alias}":{"get":{"tags":["agents"],"summary":"Resolve Agent","operationId":"resolve_agent_v1_agents_resolve__namespace___alias__get","parameters":[{"name":"namespace","in":"path","required":true,"schema":{"type":"string","title":"Namespace"}},{"name":"alias","in":"path","required":true,"schema":{"type":"string","title":"Alias"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveAgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/me/log":{"get":{"tags":["agents"],"summary":"Agent Log","operationId":"agent_log_v1_agents_me_log_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentLogResponse"}}}}}}},"/v1/agents/me/identity":{"put":{"tags":["agents"],"summary":"Claim Identity","operationId":"claim_identity_v1_agents_me_identity_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimIdentityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimIdentityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/me/identity/reset":{"post":{"tags":["agents"],"summary":"Reset Identity","operationId":"reset_identity_v1_agents_me_identity_reset_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetIdentityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetIdentityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/me/rotate":{"put":{"tags":["agents"],"summary":"Rotate Key","operationId":"rotate_key_v1_agents_me_rotate_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/me/retire":{"put":{"tags":["agents"],"summary":"Retire Agent","operationId":"retire_agent_v1_agents_me_retire_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetireAgentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetireAgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/{agent_id}/retire":{"put":{"tags":["agents"],"summary":"Retire Agent By Id","operationId":"retire_agent_by_id_v1_agents__agent_id__retire_put","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetireAgentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetireAgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/{alias}/control":{"post":{"tags":["agents"],"summary":"Send Control Signal","operationId":"send_control_signal_v1_agents__alias__control_post","parameters":[{"name":"alias","in":"path","required":true,"schema":{"type":"string","title":"Alias"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendControlSignalRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents":{"get":{"tags":["agents"],"summary":"List Agents","description":"List agents in the current project with best-effort presence enrichment.","operationId":"list_agents_v1_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAgentsResponse"}}}}}}},"/v1/agents/{agent_id}/activity":{"get":{"tags":["agents"],"summary":"Get Agent Activity","description":"Return persistent lifecycle and coordination activity for an agent.","operationId":"get_agent_activity_v1_agents__agent_id__activity_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentActivityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/register":{"post":{"tags":["agents"],"summary":"Register Agent","description":"Register an agent and record presence for its workspace.\n\nPresence is a cache of SQL; the workspace must exist and be accessible under\nthe authenticated project.","operationId":"register_agent_v1_agents_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAgentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/sessions":{"get":{"tags":["aweb-chat"],"summary":"List Sessions","description":"List chat sessions for the authenticated agent.\n\nSessions are persistent. Returns sessions where agent is a participant.","operationId":"list_sessions_v1_chat_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionListResponse"}}}}}},"post":{"tags":["aweb-chat"],"summary":"Create Or Send","operationId":"create_or_send_v1_chat_sessions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/pending":{"get":{"tags":["aweb-chat"],"summary":"Pending","operationId":"pending_v1_chat_pending_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingResponse"}}}}}}},"/v1/chat/sessions/{session_id}/messages":{"get":{"tags":["aweb-chat"],"summary":"History","operationId":"history_v1_chat_sessions__session_id__messages_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Session Id"}},{"name":"unread_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unread Only"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["aweb-chat"],"summary":"Send Message","description":"Send a message in an existing chat session.\n\nSessions are persistent (no lifecycle states to check).\nUses canonical alias from participants table to prevent spoofing.\nSupports hang_on flag for requesting more time to reply.","operationId":"send_message_v1_chat_sessions__session_id__messages_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aweb__routes__chat__SendMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/aweb__routes__chat__SendMessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/sessions/{session_id}/read":{"post":{"tags":["aweb-chat"],"summary":"Mark Read","operationId":"mark_read_v1_chat_sessions__session_id__read_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkReadRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mark Read V1 Chat Sessions  Session Id  Read Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/sessions/{session_id}/stream":{"get":{"tags":["aweb-chat"],"summary":"Stream","operationId":"stream_v1_chat_sessions__session_id__stream_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"deadline","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Deadline"}},{"name":"after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"After"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/claims":{"get":{"tags":["claims"],"summary":"List Claims","description":"List active task claims for a project.\n\nClaims indicate which workspaces are actively working on which tasks.\nWhen an agent claims work and marks it in progress, they\nclaim that task within the project.\n\nArgs:\n    workspace_id: Optional. Filter to claims by a specific workspace.\n    limit: Maximum number of claims to return (default 50, max 200).\n    cursor: Pagination cursor from previous response for fetching next page.\n\nReturns:\n    List of active claims with task_ref, workspace info, and claim time.\n    Ordered by most recently claimed first.\n    Includes has_more and next_cursor for pagination.","operationId":"list_claims_v1_claims_get","parameters":[{"name":"workspace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter to specific workspace","title":"Workspace Id"},"description":"Filter to specific workspace"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":200,"minimum":1},{"type":"null"}],"description":"Maximum items per page","title":"Limit"},"description":"Maximum items per page"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor from previous response","title":"Cursor"},"description":"Pagination cursor from previous response"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/contacts":{"get":{"tags":["aweb-contacts"],"summary":"List Contacts Route","operationId":"list_contacts_route_v1_contacts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListContactsResponse"}}}}}},"post":{"tags":["aweb-contacts"],"summary":"Create Contact","operationId":"create_contact_v1_contacts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContactRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactView"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/contacts/{contact_id}":{"delete":{"tags":["aweb-contacts"],"summary":"Delete Contact","operationId":"delete_contact_v1_contacts__contact_id__delete","parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Contact V1 Contacts  Contact Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/conversations":{"get":{"tags":["aweb-conversations"],"summary":"List Conversations","operationId":"list_conversations_v1_conversations_get","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/did":{"post":{"tags":["did"],"summary":"Register Did","operationId":"register_did_v1_did_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidRegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Register Did V1 Did Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/did/{did_aw}/key":{"get":{"tags":["did"],"summary":"Get Key","operationId":"get_key_v1_did__did_aw__key_get","parameters":[{"name":"did_aw","in":"path","required":true,"schema":{"type":"string","title":"Did Aw"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/did/{did_aw}/addresses":{"get":{"tags":["did"],"summary":"List Did Addresses","operationId":"list_did_addresses_v1_did__did_aw__addresses_get","parameters":[{"name":"did_aw","in":"path","required":true,"schema":{"type":"string","title":"Did Aw"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/did/{did_aw}/head":{"get":{"tags":["did"],"summary":"Get Head","operationId":"get_head_v1_did__did_aw__head_get","parameters":[{"name":"did_aw","in":"path","required":true,"schema":{"type":"string","title":"Did Aw"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidHeadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/did/{did_aw}/full":{"get":{"tags":["did"],"summary":"Get Full","operationId":"get_full_v1_did__did_aw__full_get","parameters":[{"name":"did_aw","in":"path","required":true,"schema":{"type":"string","title":"Did Aw"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidFullResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/did/{did_aw}/log":{"get":{"tags":["did"],"summary":"Get Log","operationId":"get_log_v1_did__did_aw__log_get","parameters":[{"name":"did_aw","in":"path","required":true,"schema":{"type":"string","title":"Did Aw"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DidLogEntry"},"title":"Response Get Log V1 Did  Did Aw  Log Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/did/{did_aw}":{"put":{"tags":["did"],"summary":"Update Mapping","operationId":"update_mapping_v1_did__did_aw__put","parameters":[{"name":"did_aw","in":"path","required":true,"schema":{"type":"string","title":"Did Aw"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DidUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Mapping V1 Did  Did Aw  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/namespaces/{domain}/addresses":{"post":{"tags":["addresses"],"summary":"Register Address","description":"Register an external address under a DNS-backed namespace.","operationId":"register_address_v1_namespaces__domain__addresses_post","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressRegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["addresses"],"summary":"List Addresses","description":"List active addresses under a namespace with cursor pagination.","operationId":"list_addresses_v1_namespaces__domain__addresses_get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/namespaces/{domain}/addresses/{name}":{"get":{"tags":["addresses"],"summary":"Get Address","description":"Resolve an external address by name.","operationId":"get_address_v1_namespaces__domain__addresses__name__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["addresses"],"summary":"Update Address","description":"Update address metadata under a DNS-backed namespace.\n\nWhen `reachability` is omitted, this is a no-op that returns the current\naddress state unchanged.","operationId":"update_address_v1_namespaces__domain__addresses__name__put","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["addresses"],"summary":"Delete Address","description":"Soft-delete an address. Must be signed by the controller.\n\nDoes not require fresh DNS verification — the controller should always be\nable to delete addresses, even if DNS has lapsed or been revoked.","operationId":"delete_address_v1_namespaces__domain__addresses__name__delete","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Address V1 Namespaces  Domain  Addresses  Name  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/namespaces/{domain}/addresses/{name}/reassign":{"post":{"tags":["addresses"],"summary":"Reassign Address","description":"Reassign an address to a new identity (new did_aw + current_did_key).","operationId":"reassign_address_v1_namespaces__domain__addresses__name__reassign_post","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressReassignRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/namespaces":{"post":{"tags":["namespaces"],"summary":"Register Namespace","description":"Register a DNS-backed namespace.\n\nThe caller must prove control of the child controller key via the main\nAuthorization header. Registration authority then comes from either the\ndomain TXT record or a verified parent namespace authorization header.","operationId":"register_namespace_v1_namespaces_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NamespaceRegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NamespaceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["namespaces"],"summary":"List Namespaces","description":"List registered namespaces, optionally filtered by controller DID.","operationId":"list_namespaces_v1_namespaces_get","parameters":[{"name":"controller_did","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Controller Did"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NamespaceListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/namespaces/{domain}":{"get":{"tags":["namespaces"],"summary":"Get Namespace","description":"Query a namespace's status by domain.","operationId":"get_namespace_v1_namespaces__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NamespaceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["namespaces"],"summary":"Rotate Namespace Controller","description":"Rotate a namespace controller with new-key proof plus DNS or parent auth.\n\nThis is intentional key-loss recovery: the old controller key may be gone.\nThe caller must prove possession of the new controller key, and authority\nthen comes from either DNS re-verification or parent-domain authorization\nfor registered subdomains.","operationId":"rotate_namespace_controller_v1_namespaces__domain__put","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NamespaceRotateControllerRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NamespaceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["namespaces"],"summary":"Delete Namespace","description":"Soft-delete a namespace. Must be signed by the controller key.","operationId":"delete_namespace_v1_namespaces__domain__delete","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Namespace V1 Namespaces  Domain  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/events/stream":{"get":{"tags":["aweb-events"],"summary":"Event Stream","description":"Per-agent SSE event stream. Emits lightweight wake events when the agent\nhas new mail, chat messages, or available work.","operationId":"event_stream_v1_events_stream_get","parameters":[{"name":"deadline","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Deadline"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/messages":{"post":{"tags":["aweb-mail"],"summary":"Send Message","operationId":"send_message_v1_messages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aweb__routes__messages__SendMessageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/aweb__routes__messages__SendMessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/messages/inbox":{"get":{"tags":["aweb-mail"],"summary":"Inbox","operationId":"inbox_v1_messages_inbox_get","parameters":[{"name":"unread_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Unread Only"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/messages/{message_id}/ack":{"post":{"tags":["aweb-mail"],"summary":"Acknowledge","operationId":"acknowledge_v1_messages__message_id__ack_post","parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/projects/current":{"get":{"tags":["aweb-projects"],"summary":"Current Project","description":"Return the project associated with the current auth context.","operationId":"current_project_v1_projects_current_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Current Project V1 Projects Current Get"}}}}}}},"/v1/reservations":{"get":{"tags":["reservations"],"summary":"List Reservations","operationId":"list_reservations_v1_reservations_get","parameters":[{"name":"prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional resource key prefix filter","title":"Prefix"},"description":"Optional resource key prefix filter"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["reservations"],"summary":"Acquire Reservation","operationId":"acquire_reservation_v1_reservations_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationAcquireRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationAcquireResponse"}}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationConflictResponse"}}},"description":"Conflict"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations/renew":{"post":{"tags":["reservations"],"summary":"Renew Reservation","operationId":"renew_reservation_v1_reservations_renew_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationRenewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationRenewResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations/release":{"post":{"tags":["reservations"],"summary":"Release Reservation","operationId":"release_reservation_v1_reservations_release_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationReleaseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationReleaseResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationConflictResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/reservations/revoke":{"post":{"tags":["reservations"],"summary":"Revoke Reservations","operationId":"revoke_reservations_v1_reservations_revoke_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationRevokeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationRevokeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scopes":{"post":{"tags":["scopes"],"summary":"Provision Scope","description":"Provision a scope (project + agent + API key) on behalf of an external system.","operationId":"provision_scope_v1_scopes_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScopeProvisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScopeProvisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scopes/{scope_id}/agents":{"post":{"tags":["scopes"],"summary":"Bootstrap Agent In Scope","description":"Bootstrap an agent in an existing scope.","operationId":"bootstrap_agent_in_scope_v1_scopes__scope_id__agents_post","parameters":[{"name":"scope_id","in":"path","required":true,"schema":{"type":"string","title":"Scope Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScopeAgentBootstrapRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScopeAgentBootstrapResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["scopes"],"summary":"List Agents In Scope","description":"List all agents in a scope.","operationId":"list_agents_in_scope_v1_scopes__scope_id__agents_get","parameters":[{"name":"scope_id","in":"path","required":true,"schema":{"type":"string","title":"Scope Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScopeAgentListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/scopes/{scope_id}/agents/{agent_id}":{"get":{"tags":["scopes"],"summary":"Get Agent In Scope","description":"Get a specific agent by UUID or stable_id within a scope.","operationId":"get_agent_in_scope_v1_scopes__scope_id__agents__agent_id__get","parameters":[{"name":"scope_id","in":"path","required":true,"schema":{"type":"string","title":"Scope Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScopeAgentView"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/status":{"get":{"tags":["status"],"summary":"Status","description":"Aggregate workspace status: agent presence, claims, and conflicts.\n\nFilter by:\n- workspace_id: Show status for a specific workspace\n- repo_id: Show aggregated status for all workspaces in a repo (UUID)","operationId":"status_v1_status_get","parameters":[{"name":"workspace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Workspace Id"}},{"name":"repo_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":36,"maxLength":36},{"type":"null"}],"title":"Repo Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Status V1 Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/status/stream":{"get":{"tags":["status"],"summary":"Status Stream","description":"Server-Sent Events (SSE) stream for real-time updates.\n\nSubscribes to events and streams them as they occur. Events include\nmessages and task status changes.\n\nFilter by:\n- workspace_id: Stream events for a specific workspace\n- repo: Stream aggregated events for all workspaces in a repo (canonical origin)\n- human_name: Stream events for all workspaces owned by a specific human\n- No filter: Stream events for all workspaces in the authenticated project (bounded, ordered by recent activity)\n\nArgs:\n    workspace_id: UUID of a specific workspace to stream events for\n    repo: Repo canonical origin (e.g., \"github.com/org/repo\") to stream events\n          for all its workspaces\n    human_name: Owner name to stream events for all their workspaces\n    limit: Maximum number of workspaces to subscribe to (default 200, max 1000).\n           Ignored when workspace_id is specified. Workspaces are ordered by\n           recent activity, so the limit prioritizes active workspaces.\n    event_types: Optional comma-separated filter for event categories.\n                 Valid categories: reservation, message, task, chat.\n                 If not specified, all events are streamed.\n\nReturns:\n    SSE stream with events in the format:\n    ```\n    data: {\"type\": \"message.delivered\", \"workspace_id\": \"...\", ...}\n\n    data: {\"type\": \"task.status_changed\", \"workspace_id\": \"...\", ...}\n    ```","operationId":"status_stream_v1_status_stream_get","parameters":[{"name":"workspace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Workspace Id"}},{"name":"repo","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"description":"Filter by repo canonical origin (e.g., 'github.com/org/repo')","title":"Repo"},"description":"Filter by repo canonical origin (e.g., 'github.com/org/repo')"},{"name":"human_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"Filter by workspace owner name","title":"Human Name"},"description":"Filter by workspace owner name"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum workspaces to subscribe to (ignored when workspace_id is specified)","default":200,"title":"Limit"},"description":"Maximum workspaces to subscribe to (ignored when workspace_id is specified)"},{"name":"event_types","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated event categories to filter (e.g., 'message,task')","title":"Event Types"},"description":"Comma-separated event categories to filter (e.g., 'message,task')"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instructions/active":{"get":{"tags":["instructions"],"summary":"Get Active Project Instructions Endpoint","operationId":"get_active_project_instructions_endpoint_v1_instructions_active_get","parameters":[{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveProjectInstructionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instructions/history":{"get":{"tags":["instructions"],"summary":"List Project Instructions History","operationId":"list_project_instructions_history_v1_instructions_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max number of versions to return","default":20,"title":"Limit"},"description":"Max number of versions to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectInstructionsHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instructions":{"post":{"tags":["instructions"],"summary":"Create Project Instructions Endpoint","operationId":"create_project_instructions_endpoint_v1_instructions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectInstructionsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectInstructionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instructions/{project_instructions_id}":{"get":{"tags":["instructions"],"summary":"Get Project Instructions By Id Endpoint","operationId":"get_project_instructions_by_id_endpoint_v1_instructions__project_instructions_id__get","parameters":[{"name":"project_instructions_id","in":"path","required":true,"schema":{"type":"string","title":"Project Instructions Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveProjectInstructionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instructions/{project_instructions_id}/activate":{"post":{"tags":["instructions"],"summary":"Activate Project Instructions Endpoint","operationId":"activate_project_instructions_endpoint_v1_instructions__project_instructions_id__activate_post","parameters":[{"name":"project_instructions_id","in":"path","required":true,"schema":{"type":"string","title":"Project Instructions Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateProjectInstructionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/instructions/reset":{"post":{"tags":["instructions"],"summary":"Reset Project Instructions To Default Endpoint","operationId":"reset_project_instructions_to_default_endpoint_v1_instructions_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetProjectInstructionsResponse"}}}}}}},"/v1/roles/active":{"get":{"tags":["roles"],"summary":"Get Active Project Roles Endpoint","description":"Get the active project roles bundle for the project.","operationId":"get_active_project_roles_endpoint_v1_roles_active_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Legacy selector alias. If provided, includes selected_role in response.","title":"Role"},"description":"Legacy selector alias. If provided, includes selected_role in response."},{"name":"role_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Canonical selector name. If provided, includes selected_role in response.","title":"Role Name"},"description":"Canonical selector name. If provided, includes selected_role in response."},{"name":"only_selected","in":"query","required":false,"schema":{"type":"boolean","description":"If true, return only the selected role.","default":false,"title":"Only Selected"},"description":"If true, return only the selected role."},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveProjectRolesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/roles/history":{"get":{"tags":["roles"],"summary":"List Project Roles History","description":"List project roles version history for the project.","operationId":"list_project_roles_history_v1_roles_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max number of versions to return","default":20,"title":"Limit"},"description":"Max number of versions to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectRolesHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/roles":{"post":{"tags":["roles"],"summary":"Create Project Roles Endpoint","description":"Create a new project roles version for the project.","operationId":"create_project_roles_endpoint_v1_roles_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectRolesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectRolesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/roles/{project_roles_id}":{"get":{"tags":["roles"],"summary":"Get Project Roles By Id Endpoint","description":"Get a specific project roles version by ID.","operationId":"get_project_roles_by_id_endpoint_v1_roles__project_roles_id__get","parameters":[{"name":"project_roles_id","in":"path","required":true,"schema":{"type":"string","title":"Project Roles Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveProjectRolesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/roles/{project_roles_id}/activate":{"post":{"tags":["roles"],"summary":"Activate Project Roles Endpoint","description":"Set a project roles version as the active bundle for the project.","operationId":"activate_project_roles_endpoint_v1_roles__project_roles_id__activate_post","parameters":[{"name":"project_roles_id","in":"path","required":true,"schema":{"type":"string","title":"Project Roles Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateProjectRolesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/roles/reset":{"post":{"tags":["roles"],"summary":"Reset Project Roles To Default Endpoint","description":"Reset the project's active project roles to the current default bundle.","operationId":"reset_project_roles_to_default_endpoint_v1_roles_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetProjectRolesResponse"}}}}}}},"/v1/roles/deactivate":{"post":{"tags":["roles"],"summary":"Deactivate Project Roles Endpoint","description":"Deactivate project roles by replacing the active bundle with an empty bundle.","operationId":"deactivate_project_roles_endpoint_v1_roles_deactivate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateProjectRolesResponse"}}}}}}},"/v1/tasks":{"post":{"tags":["tasks"],"summary":"Create Task Route","operationId":"create_task_route_v1_tasks_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Task Route V1 Tasks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["tasks"],"summary":"List Tasks Unified","operationId":"list_tasks_unified_v1_tasks_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"assignee_agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Agent Id"}},{"name":"task_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Type"}},{"name":"priority","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4,"minimum":0},{"type":"null"}],"title":"Priority"}},{"name":"labels","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Labels"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Tasks Unified V1 Tasks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tasks/ready":{"get":{"tags":["tasks"],"summary":"List Ready Tasks Route","operationId":"list_ready_tasks_route_v1_tasks_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Ready Tasks Route V1 Tasks Ready Get"}}}}}}},"/v1/tasks/blocked":{"get":{"tags":["tasks"],"summary":"List Blocked Tasks Route","operationId":"list_blocked_tasks_route_v1_tasks_blocked_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Blocked Tasks Route V1 Tasks Blocked Get"}}}}}}},"/v1/tasks/active":{"get":{"tags":["tasks"],"summary":"List Active Work Route","operationId":"list_active_work_route_v1_tasks_active_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveWorkResponse"}}}}}}},"/v1/tasks/{ref}":{"get":{"tags":["tasks"],"summary":"Get Task Unified","operationId":"get_task_unified_v1_tasks__ref__get","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","title":"Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Task Unified V1 Tasks  Ref  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["tasks"],"summary":"Update Task Route","operationId":"update_task_route_v1_tasks__ref__patch","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","title":"Ref"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTaskRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Task Route V1 Tasks  Ref  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["tasks"],"summary":"Delete Task Route","operationId":"delete_task_route_v1_tasks__ref__delete","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","title":"Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Task Route V1 Tasks  Ref  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tasks/{ref}/deps":{"post":{"tags":["tasks"],"summary":"Add Dependency Route","operationId":"add_dependency_route_v1_tasks__ref__deps_post","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","title":"Ref"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddDependencyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Add Dependency Route V1 Tasks  Ref  Deps Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tasks/{ref}/deps/{dep_ref}":{"delete":{"tags":["tasks"],"summary":"Remove Dependency Route","operationId":"remove_dependency_route_v1_tasks__ref__deps__dep_ref__delete","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","title":"Ref"}},{"name":"dep_ref","in":"path","required":true,"schema":{"type":"string","title":"Dep Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Remove Dependency Route V1 Tasks  Ref  Deps  Dep Ref  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tasks/{ref}/comments":{"post":{"tags":["tasks"],"summary":"Add Comment Route","operationId":"add_comment_route_v1_tasks__ref__comments_post","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","title":"Ref"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCommentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Add Comment Route V1 Tasks  Ref  Comments Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["tasks"],"summary":"List Comments Route","operationId":"list_comments_route_v1_tasks__ref__comments_get","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","title":"Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Comments Route V1 Tasks  Ref  Comments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces/suggest-name-prefix":{"post":{"tags":["workspaces"],"summary":"Suggest Name Prefix","description":"Get the next available name prefix for a new workspace.\n\nGiven an origin_url, this endpoint:\n1. Looks up the repo to find the project\n2. Queries existing aliases to find used name prefixes\n3. Returns the first available classic name (e.g., alice, bob, alice-01)\n\nClassic names are used: alice, bob, charlie, etc. The client combines\nthe name_prefix with their role to form the full alias.\n\nReturns 404 if the repo is not registered and the caller is not authenticated.\nReturns 409 if the repo exists in multiple projects and the caller is not authenticated\n(or the authenticated project is not among them), or all names are taken.","operationId":"suggest_name_prefix_v1_workspaces_suggest_name_prefix_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestNamePrefixRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestNamePrefixResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces/register":{"post":{"tags":["workspaces"],"summary":"Register Workspace","description":"Register a workspace for the authenticated aweb agent.\n\nIdentity and project scoping are derived from the unified aweb core:\n- project_id comes from aweb auth/introspection\n- workspace_id is the aweb agent_id (v1 mapping)\n- alias/human_name come from the canonical agent profile","operationId":"register_workspace_v1_workspaces_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterWorkspaceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterWorkspaceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces/attach":{"post":{"tags":["workspaces"],"summary":"Register Attachment","description":"Register a non-repo runtime attachment for the authenticated aweb agent.\n\nThis creates a first-class coordination participant without requiring a\nshared repo identity or disclosing a local path.","operationId":"register_attachment_v1_workspaces_attach_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAttachmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAttachmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces/heartbeat":{"post":{"tags":["workspaces"],"summary":"Heartbeat","description":"Refresh workspace presence, enforcing \"presence is a cache of SQL\".\n\nOrder of operations:\n1) Ensure repo/workspace exists (SQL)\n2) Update presence (Redis)\n\nNote: If Redis is unavailable, SQL is still authoritative; presence updates\nare best-effort and will converge once the client retries.","operationId":"heartbeat_v1_workspaces_heartbeat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceHeartbeatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceHeartbeatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces/{workspace_id}":{"delete":{"tags":["workspaces"],"summary":"Delete Workspace","description":"Delete an ephemeral workspace and its bound identity.","operationId":"delete_workspace_v1_workspaces__workspace_id__delete","parameters":[{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","description":"Workspace ID to delete","title":"Workspace Id"},"description":"Workspace ID to delete"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkspaceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces":{"get":{"tags":["workspaces"],"summary":"List Workspaces","description":"List all registered workspaces from database with cursor-based pagination.\n\nReturns workspace information with optional presence/claim enrichment.\nWorkspaces without active presence show status='offline'.\nDeleted workspaces are excluded by default (use include_deleted=true to show).\n\nTenant isolation:\n- Always derived from authentication (project API key or proxy-injected internal context).\n\nArgs:\n    limit: Maximum number of workspaces to return (default 50, max 200).\n    cursor: Pagination cursor from previous response for fetching next page.\n\nReturns:\n    List of workspaces ordered by most recently updated first.\n    Includes has_more and next_cursor for pagination.\n\nUse /v1/workspaces/online for only currently active workspaces.","operationId":"list_workspaces_v1_workspaces_get","parameters":[{"name":"human_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"Filter by workspace owner","title":"Human Name"},"description":"Filter by workspace owner"},{"name":"repo","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"description":"Filter by repo canonical origin","title":"Repo"},"description":"Filter by repo canonical origin"},{"name":"alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"Filter by workspace alias","title":"Alias"},"description":"Filter by workspace alias"},{"name":"hostname","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"description":"Filter by machine hostname","title":"Hostname"},"description":"Filter by machine hostname"},{"name":"include_deleted","in":"query","required":false,"schema":{"type":"boolean","description":"Include soft-deleted workspaces","default":false,"title":"Include Deleted"},"description":"Include soft-deleted workspaces"},{"name":"include_claims","in":"query","required":false,"schema":{"type":"boolean","description":"Include active task claims","default":false,"title":"Include Claims"},"description":"Include active task claims"},{"name":"include_presence","in":"query","required":false,"schema":{"type":"boolean","description":"Include Redis presence data","default":true,"title":"Include Presence"},"description":"Include Redis presence data"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":200,"minimum":1},{"type":"null"}],"description":"Maximum items per page","title":"Limit"},"description":"Maximum items per page"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor from previous response","title":"Cursor"},"description":"Pagination cursor from previous response"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWorkspacesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces/team":{"get":{"tags":["workspaces"],"summary":"List Team Workspaces","description":"List a bounded team-status view of workspaces for coordination.\n\nThis endpoint is optimized for CLI usage and always returns a limited,\nprioritized set of workspaces.","operationId":"list_team_workspaces_v1_workspaces_team_get","parameters":[{"name":"human_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"Filter by workspace owner","title":"Human Name"},"description":"Filter by workspace owner"},{"name":"repo","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"description":"Filter by repo canonical origin","title":"Repo"},"description":"Filter by repo canonical origin"},{"name":"include_claims","in":"query","required":false,"schema":{"type":"boolean","description":"Include active task claims","default":true,"title":"Include Claims"},"description":"Include active task claims"},{"name":"include_presence","in":"query","required":false,"schema":{"type":"boolean","description":"Include Redis presence data","default":true,"title":"Include Presence"},"description":"Include Redis presence data"},{"name":"only_with_claims","in":"query","required":false,"schema":{"type":"boolean","description":"Only return workspaces with active claims","default":true,"title":"Only With Claims"},"description":"Only return workspaces with active claims"},{"name":"always_include_workspace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ensure a workspace is included even if filtered out","title":"Always Include Workspace Id"},"description":"Ensure a workspace is included even if filtered out"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Maximum workspaces to return","default":15,"title":"Limit"},"description":"Maximum workspaces to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWorkspacesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workspaces/online":{"get":{"tags":["workspaces"],"summary":"List Online Workspaces","description":"List only currently online workspaces (active presence in Redis).\n\nThis is a filtered view showing workspaces with recent activity.\nPresence expires after ~5 minutes of inactivity.\n\nFor all registered workspaces (including offline), use GET /v1/workspaces.","operationId":"list_online_workspaces_v1_workspaces_online_get","parameters":[{"name":"human_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"Filter by workspace owner","title":"Human Name"},"description":"Filter by workspace owner"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWorkspacesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/repos/lookup":{"post":{"tags":["repos"],"summary":"Lookup Repo","description":"Look up a repo by origin URL. Returns the repo and its project if found.\n\nThis is used by `aw init` / `aw use` to detect if a repo is already registered,\nallowing automatic project detection.\n\nReturns:\n- 200 with repo info if exactly one match\n- 404 if no matches\n- 409 with candidates if multiple projects have the same repo","operationId":"lookup_repo_v1_repos_lookup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoLookupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoLookupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/repos/ensure":{"post":{"tags":["repos"],"summary":"Ensure Repo","description":"Get or create a repo by origin URL. Used by `aw init` / `aw use` in standalone coordination deployments.\n\nIf a repo with the same canonical origin exists in the project, returns it\nwith created=false (and updates the origin_url to the new value).\nIf it doesn't exist, creates it and returns with created=true.\n\nThe canonical_origin is computed by normalizing the origin_url. Different\nURL formats (SSH vs HTTPS) that refer to the same repo will match.","operationId":"ensure_repo_v1_repos_ensure_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoEnsureRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoEnsureResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/repos":{"get":{"tags":["repos"],"summary":"List Repos","description":"List repos with optional project filter and cursor-based pagination.\n\nReturns active (non-deleted) repos, optionally filtered by project_id.\nEach repo includes a count of active workspaces.\n\nResults are ordered by (created_at, id) for deterministic pagination\nthat remains stable across inserts.","operationId":"list_repos_v1_repos_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":200,"minimum":1},{"type":"null"}],"description":"Maximum number of repos to return (default 50, max 200)","title":"Limit"},"description":"Maximum number of repos to return (default 50, max 200)"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination cursor from previous response","title":"Cursor"},"description":"Pagination cursor from previous response"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/repos/{repo_id}":{"delete":{"tags":["repos"],"summary":"Delete Repo","description":"Soft-delete a repo and cascade to ephemeral workspaces.\n\nThis operation:\n1. Sets deleted_at on the repo\n2. Soft-deletes all workspaces in the repo (sets deleted_at)\n3. Deletes all task claims for those workspaces\n4. Clears Redis presence for those workspaces\n\nReturns counts of affected resources.","operationId":"delete_repo_v1_repos__repo_id__delete","parameters":[{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Repo Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepoDeleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AcceptSpawnInviteRequest":{"properties":{"token":{"type":"string","maxLength":256,"minLength":1,"title":"Token"},"alias":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Alias"},"name":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Name"},"human_name":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Human Name"},"agent_type":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Agent Type"},"did":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Did"},"public_key":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Public Key"},"custody":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Custody"},"lifetime":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Lifetime"},"address_reachability":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Address Reachability"}},"type":"object","required":["token"],"title":"AcceptSpawnInviteRequest"},"AcceptSpawnInviteResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"},"created_at":{"type":"string","title":"Created At"},"api_key":{"type":"string","title":"Api Key"},"project_id":{"type":"string","title":"Project Id"},"project_slug":{"type":"string","title":"Project Slug"},"identity_id":{"type":"string","title":"Identity Id"},"agent_id":{"type":"string","title":"Agent Id"},"repo_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Id"},"canonical_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Origin"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"created":{"type":"boolean","title":"Created","default":false},"workspace_created":{"type":"boolean","title":"Workspace Created","default":false},"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stable Id"},"custody":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","title":"Lifetime","default":"ephemeral"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace"},"namespace_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace Slug"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"address_reachability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Reachability"},"server_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Server Url"},"access_mode":{"type":"string","title":"Access Mode"}},"type":"object","required":["created_at","api_key","project_id","project_slug","identity_id","agent_id","access_mode"],"title":"AcceptSpawnInviteResponse"},"AckResponse":{"properties":{"message_id":{"type":"string","title":"Message Id"},"acknowledged_at":{"type":"string","title":"Acknowledged At"}},"type":"object","required":["message_id","acknowledged_at"],"title":"AckResponse"},"ActivateProjectInstructionsResponse":{"properties":{"activated":{"type":"boolean","title":"Activated"},"active_project_instructions_id":{"type":"string","title":"Active Project Instructions Id"}},"type":"object","required":["activated","active_project_instructions_id"],"title":"ActivateProjectInstructionsResponse"},"ActivateProjectRolesResponse":{"properties":{"activated":{"type":"boolean","title":"Activated"},"active_project_roles_id":{"type":"string","title":"Active Project Roles Id"}},"type":"object","required":["activated","active_project_roles_id"],"title":"ActivateProjectRolesResponse","description":"Response for POST /v1/roles/{id}/activate."},"ActiveProjectInstructionsResponse":{"properties":{"project_instructions_id":{"type":"string","title":"Project Instructions Id"},"active_project_instructions_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Active Project Instructions Id"},"project_id":{"type":"string","title":"Project Id"},"version":{"type":"integer","title":"Version"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"document":{"$ref":"#/components/schemas/ProjectInstructionsDocument"}},"type":"object","required":["project_instructions_id","project_id","version","updated_at","document"],"title":"ActiveProjectInstructionsResponse"},"ActiveProjectRolesResponse":{"properties":{"project_roles_id":{"type":"string","title":"Project Roles Id"},"active_project_roles_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Active Project Roles Id"},"project_id":{"type":"string","title":"Project Id"},"version":{"type":"integer","title":"Version"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"roles":{"additionalProperties":{"$ref":"#/components/schemas/RoleDefinition"},"type":"object","title":"Roles"},"selected_role":{"anyOf":[{"$ref":"#/components/schemas/SelectedRoleInfo"},{"type":"null"}]},"adapters":{"additionalProperties":true,"type":"object","title":"Adapters"}},"type":"object","required":["project_roles_id","project_id","version","updated_at","roles"],"title":"ActiveProjectRolesResponse","description":"Response for GET /v1/roles/active."},"ActiveWorkResponse":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/ActiveWorkTaskSummary"},"type":"array","title":"Tasks"}},"type":"object","required":["tasks"],"title":"ActiveWorkResponse"},"ActiveWorkTaskSummary":{"properties":{"task_id":{"type":"string","title":"Task Id"},"task_ref":{"type":"string","title":"Task Ref"},"task_number":{"type":"integer","title":"Task Number"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"priority":{"type":"integer","title":"Priority"},"task_type":{"type":"string","title":"Task Type"},"assignee_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Agent Id"},"created_by_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Agent Id"},"parent_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Task Id"},"labels":{"items":{"type":"string"},"type":"array","title":"Labels"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"},"owner_alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Alias"},"claimed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Claimed At"},"canonical_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Origin"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch"}},"type":"object","required":["task_id","task_ref","task_number","title","status","priority","task_type","created_at","updated_at"],"title":"ActiveWorkTaskSummary"},"AddCommentRequest":{"properties":{"body":{"type":"string","maxLength":65536,"minLength":1,"title":"Body"}},"additionalProperties":false,"type":"object","required":["body"],"title":"AddCommentRequest"},"AddDependencyRequest":{"properties":{"depends_on":{"type":"string","minLength":1,"title":"Depends On"}},"additionalProperties":false,"type":"object","required":["depends_on"],"title":"AddDependencyRequest"},"AddressListResponse":{"properties":{"addresses":{"items":{"$ref":"#/components/schemas/AddressResponse"},"type":"array","title":"Addresses"},"has_more":{"type":"boolean","title":"Has More","default":false},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["addresses"],"title":"AddressListResponse"},"AddressReassignRequest":{"properties":{"did_aw":{"type":"string","minLength":1,"title":"Did Aw"},"current_did_key":{"type":"string","minLength":1,"title":"Current Did Key"}},"additionalProperties":false,"type":"object","required":["did_aw","current_did_key"],"title":"AddressReassignRequest"},"AddressRegisterRequest":{"properties":{"name":{"type":"string","maxLength":256,"minLength":1,"title":"Name"},"did_aw":{"type":"string","minLength":1,"title":"Did Aw"},"current_did_key":{"type":"string","minLength":1,"title":"Current Did Key"},"reachability":{"type":"string","maxLength":32,"title":"Reachability","default":"private"}},"additionalProperties":false,"type":"object","required":["name","did_aw","current_did_key"],"title":"AddressRegisterRequest"},"AddressResponse":{"properties":{"address_id":{"type":"string","title":"Address Id"},"domain":{"type":"string","title":"Domain"},"name":{"type":"string","title":"Name"},"did_aw":{"type":"string","title":"Did Aw"},"current_did_key":{"type":"string","title":"Current Did Key"},"reachability":{"type":"string","title":"Reachability"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["address_id","domain","name","did_aw","current_did_key","reachability","created_at"],"title":"AddressResponse"},"AddressUpdateRequest":{"properties":{"reachability":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Reachability"}},"additionalProperties":false,"type":"object","title":"AddressUpdateRequest"},"AgentActivityItem":{"properties":{"entry_id":{"type":"string","title":"Entry Id"},"source":{"type":"string","title":"Source"},"event_type":{"type":"string","title":"Event Type"},"summary":{"type":"string","title":"Summary"},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["entry_id","source","event_type","summary","created_at"],"title":"AgentActivityItem"},"AgentActivityResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"alias":{"type":"string","title":"Alias"},"items":{"items":{"$ref":"#/components/schemas/AgentActivityItem"},"type":"array","title":"Items"}},"type":"object","required":["agent_id","alias","items"],"title":"AgentActivityResponse"},"AgentInfo":{"properties":{"alias":{"type":"string","title":"Alias"},"human_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Name"},"project_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Slug"},"program":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"member":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member"},"repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"registered_at":{"type":"string","title":"Registered At"}},"type":"object","required":["alias","registered_at"],"title":"AgentInfo"},"AgentLogEntry":{"properties":{"log_id":{"type":"string","title":"Log Id"},"operation":{"type":"string","title":"Operation"},"old_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Did"},"new_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Did"},"signed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed By"},"entry_signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry Signature"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["log_id","operation","old_did","new_did","signed_by","entry_signature","metadata","created_at"],"title":"AgentLogEntry"},"AgentLogResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"address":{"type":"string","title":"Address"},"log":{"items":{"$ref":"#/components/schemas/AgentLogEntry"},"type":"array","title":"Log"}},"type":"object","required":["agent_id","address","log"],"title":"AgentLogResponse"},"AgentView":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"alias":{"type":"string","title":"Alias"},"owner_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Type"},"human_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Name"},"agent_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type"},"workspace_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Type"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"context_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context Kind"},"hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"},"workspace_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Path"},"repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch"},"status":{"type":"string","title":"Status","default":"offline"},"last_seen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Seen"},"online":{"type":"boolean","title":"Online","default":false},"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"custody":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","title":"Lifetime","default":"ephemeral"},"identity_status":{"type":"string","title":"Identity Status","default":"active"},"access_mode":{"type":"string","title":"Access Mode","default":"open"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"address_reachability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Reachability"}},"type":"object","required":["agent_id","alias"],"title":"AgentView"},"ClaimIdentityRequest":{"properties":{"did":{"type":"string","maxLength":256,"title":"Did"},"public_key":{"type":"string","maxLength":64,"title":"Public Key"},"custody":{"type":"string","const":"self","title":"Custody"},"lifetime":{"type":"string","const":"persistent","title":"Lifetime"}},"type":"object","required":["did","public_key","custody","lifetime"],"title":"ClaimIdentityRequest"},"ClaimIdentityResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"alias":{"type":"string","title":"Alias"},"did":{"type":"string","title":"Did"},"public_key":{"type":"string","title":"Public Key"},"stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stable Id"},"custody":{"type":"string","title":"Custody"},"lifetime":{"type":"string","title":"Lifetime"}},"type":"object","required":["agent_id","alias","did","public_key","custody","lifetime"],"title":"ClaimIdentityResponse"},"ClaimsResponse":{"properties":{"claims":{"items":{"$ref":"#/components/schemas/aweb__routes__claims__Claim"},"type":"array","title":"Claims"},"has_more":{"type":"boolean","title":"Has More","default":false},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["claims"],"title":"ClaimsResponse","description":"Response for GET /v1/claims."},"ContactView":{"properties":{"contact_id":{"type":"string","title":"Contact Id"},"contact_address":{"type":"string","title":"Contact Address"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["contact_id","contact_address","label","created_at"],"title":"ContactView"},"ConversationItem":{"properties":{"conversation_type":{"type":"string","title":"Conversation Type"},"conversation_id":{"type":"string","title":"Conversation Id"},"participants":{"items":{"type":"string"},"type":"array","title":"Participants"},"subject":{"type":"string","title":"Subject"},"last_message_at":{"type":"string","title":"Last Message At"},"last_message_from":{"type":"string","title":"Last Message From"},"last_message_preview":{"type":"string","title":"Last Message Preview"},"unread_count":{"type":"integer","title":"Unread Count"}},"type":"object","required":["conversation_type","conversation_id","participants","subject","last_message_at","last_message_from","last_message_preview","unread_count"],"title":"ConversationItem"},"ConversationsResponse":{"properties":{"conversations":{"items":{"$ref":"#/components/schemas/ConversationItem"},"type":"array","title":"Conversations"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["conversations","next_cursor"],"title":"ConversationsResponse"},"CreateContactRequest":{"properties":{"contact_address":{"type":"string","maxLength":256,"minLength":1,"title":"Contact Address"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"additionalProperties":false,"type":"object","required":["contact_address"],"title":"CreateContactRequest"},"CreateProjectInstructionsRequest":{"properties":{"document":{"$ref":"#/components/schemas/ProjectInstructionsDocument"},"base_project_instructions_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Project Instructions Id","description":"Optional project_instructions_id that this version is based on."},"created_by_workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Workspace Id","description":"Optional workspace_id of the creator for audit trail."}},"type":"object","required":["document"],"title":"CreateProjectInstructionsRequest"},"CreateProjectInstructionsResponse":{"properties":{"project_instructions_id":{"type":"string","title":"Project Instructions Id"},"project_id":{"type":"string","title":"Project Id"},"version":{"type":"integer","title":"Version"},"created":{"type":"boolean","title":"Created","default":true}},"type":"object","required":["project_instructions_id","project_id","version"],"title":"CreateProjectInstructionsResponse"},"CreateProjectRequest":{"properties":{"alias":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Alias"},"name":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Name"},"human_name":{"type":"string","maxLength":64,"title":"Human Name","default":""},"agent_type":{"type":"string","maxLength":32,"title":"Agent Type","default":"agent"},"lifetime":{"type":"string","pattern":"^(persistent|ephemeral)$","title":"Lifetime","default":"ephemeral"},"custody":{"anyOf":[{"type":"string","pattern":"^(self|custodial)$"},{"type":"null"}],"title":"Custody"},"address_reachability":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Address Reachability"},"did":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Did"},"public_key":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Public Key"},"project_slug":{"type":"string","maxLength":256,"title":"Project Slug"},"namespace_slug":{"anyOf":[{"type":"string","maxLength":63,"minLength":1},{"type":"null"}],"title":"Namespace Slug"}},"additionalProperties":false,"type":"object","required":["project_slug"],"title":"CreateProjectRequest","description":"Create a project, attach its namespace, and bootstrap the first identity."},"CreateProjectRolesRequest":{"properties":{"bundle":{"$ref":"#/components/schemas/ProjectRolesBundle","description":"Project roles bundle containing roles and adapters."},"base_project_roles_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Project Roles Id","description":"Optional bundle ID that this version is based on."},"created_by_workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Workspace Id","description":"Optional workspace_id of the creator for audit trail."}},"type":"object","required":["bundle"],"title":"CreateProjectRolesRequest","description":"Request body for POST /v1/roles."},"CreateProjectRolesResponse":{"properties":{"project_roles_id":{"type":"string","title":"Project Roles Id"},"project_id":{"type":"string","title":"Project Id"},"version":{"type":"integer","title":"Version"},"created":{"type":"boolean","title":"Created","default":true}},"type":"object","required":["project_roles_id","project_id","version"],"title":"CreateProjectRolesResponse","description":"Response for POST /v1/roles."},"CreateSessionRequest":{"properties":{"to_aliases":{"items":{"type":"string"},"type":"array","minItems":1,"title":"To Aliases"},"message":{"type":"string","title":"Message"},"leaving":{"type":"boolean","title":"Leaving","default":false},"wait_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Wait Seconds"},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id"},"reply_to_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reply To Message Id"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp"},"from_did":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"From Did"},"from_stable_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"From Stable Id"},"to_did":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"To Did"},"to_stable_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"To Stable Id"},"signature":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Signature"},"signing_key_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Signing Key Id"},"signed_payload":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Payload"}},"additionalProperties":false,"type":"object","required":["to_aliases","message"],"title":"CreateSessionRequest"},"CreateSessionResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"message_id":{"type":"string","title":"Message Id"},"participants":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Participants"},"sse_url":{"type":"string","title":"Sse Url"},"targets_connected":{"items":{"type":"string"},"type":"array","title":"Targets Connected"},"targets_left":{"items":{"type":"string"},"type":"array","title":"Targets Left"}},"type":"object","required":["session_id","message_id","participants","sse_url","targets_connected","targets_left"],"title":"CreateSessionResponse"},"CreateSpawnInviteRequest":{"properties":{"alias_hint":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Alias Hint"},"access_mode":{"type":"string","maxLength":64,"title":"Access Mode","default":"open"},"max_uses":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Uses"},"expires_in_seconds":{"anyOf":[{"type":"integer","minimum":60.0},{"type":"null"}],"title":"Expires In Seconds"}},"type":"object","title":"CreateSpawnInviteRequest"},"CreateSpawnInviteResponse":{"properties":{"invite_id":{"type":"string","title":"Invite Id"},"token":{"type":"string","title":"Token"},"token_prefix":{"type":"string","title":"Token Prefix"},"alias_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Hint"},"access_mode":{"type":"string","title":"Access Mode"},"max_uses":{"type":"integer","title":"Max Uses"},"expires_at":{"type":"string","title":"Expires At"},"namespace_slug":{"type":"string","title":"Namespace Slug"},"namespace":{"type":"string","title":"Namespace"},"server_url":{"type":"string","title":"Server Url"}},"type":"object","required":["invite_id","token","token_prefix","access_mode","max_uses","expires_at","namespace_slug","namespace","server_url"],"title":"CreateSpawnInviteResponse"},"CreateTaskRequest":{"properties":{"title":{"type":"string","maxLength":4096,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":65536,"title":"Description","default":""},"notes":{"type":"string","maxLength":65536,"title":"Notes","default":""},"priority":{"type":"integer","maximum":4.0,"minimum":0.0,"title":"Priority","default":2},"task_type":{"type":"string","enum":["task","bug","feature","epic","chore"],"title":"Task Type","default":"task"},"labels":{"items":{"type":"string"},"type":"array","title":"Labels"},"parent_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Task Id"},"assignee_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Agent Id"}},"additionalProperties":false,"type":"object","required":["title"],"title":"CreateTaskRequest"},"DeactivateProjectRolesResponse":{"properties":{"deactivated":{"type":"boolean","title":"Deactivated"},"active_project_roles_id":{"type":"string","title":"Active Project Roles Id"},"version":{"type":"integer","title":"Version"}},"type":"object","required":["deactivated","active_project_roles_id","version"],"title":"DeactivateProjectRolesResponse","description":"Response for POST /v1/roles/deactivate."},"DeleteAgentResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"status":{"type":"string","title":"Status"}},"type":"object","required":["agent_id","status"],"title":"DeleteAgentResponse"},"DeleteWorkspaceResponse":{"properties":{"workspace_id":{"type":"string","title":"Workspace Id"},"alias":{"type":"string","title":"Alias"},"deleted_at":{"type":"string","title":"Deleted At"}},"type":"object","required":["workspace_id","alias","deleted_at"],"title":"DeleteWorkspaceResponse","description":"Response for DELETE /v1/workspaces/{workspace_id} endpoint."},"DidFullResponse":{"properties":{"did_aw":{"type":"string","title":"Did Aw"},"current_did_key":{"type":"string","title":"Current Did Key"},"server":{"type":"string","title":"Server"},"address":{"type":"string","title":"Address"},"handle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Handle"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["did_aw","current_did_key","server","address","handle","created_at","updated_at"],"title":"DidFullResponse"},"DidHeadResponse":{"properties":{"did_aw":{"type":"string","title":"Did Aw"},"current_did_key":{"type":"string","title":"Current Did Key"},"seq":{"type":"integer","title":"Seq"},"entry_hash":{"type":"string","title":"Entry Hash"},"state_hash":{"type":"string","title":"State Hash"},"timestamp":{"type":"string","title":"Timestamp"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["did_aw","current_did_key","seq","entry_hash","state_hash","timestamp","updated_at"],"title":"DidHeadResponse"},"DidKeyEvidence":{"properties":{"seq":{"type":"integer","title":"Seq"},"operation":{"type":"string","title":"Operation"},"previous_did_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Did Key"},"new_did_key":{"type":"string","title":"New Did Key"},"prev_entry_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prev Entry Hash"},"entry_hash":{"type":"string","title":"Entry Hash"},"state_hash":{"type":"string","title":"State Hash"},"authorized_by":{"type":"string","title":"Authorized By"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["seq","operation","previous_did_key","new_did_key","prev_entry_hash","entry_hash","state_hash","authorized_by","signature","timestamp"],"title":"DidKeyEvidence"},"DidKeyResponse":{"properties":{"did_aw":{"type":"string","title":"Did Aw"},"current_did_key":{"type":"string","title":"Current Did Key"},"log_head":{"anyOf":[{"$ref":"#/components/schemas/DidKeyEvidence"},{"type":"null"}]}},"type":"object","required":["did_aw","current_did_key"],"title":"DidKeyResponse"},"DidLogEntry":{"properties":{"did_aw":{"type":"string","title":"Did Aw"},"seq":{"type":"integer","title":"Seq"},"operation":{"type":"string","title":"Operation"},"previous_did_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Did Key"},"new_did_key":{"type":"string","title":"New Did Key"},"prev_entry_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prev Entry Hash"},"entry_hash":{"type":"string","title":"Entry Hash"},"state_hash":{"type":"string","title":"State Hash"},"authorized_by":{"type":"string","title":"Authorized By"},"signature":{"type":"string","title":"Signature"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["did_aw","seq","operation","previous_did_key","new_did_key","prev_entry_hash","entry_hash","state_hash","authorized_by","signature","timestamp"],"title":"DidLogEntry"},"DidRegisterRequest":{"properties":{"did_aw":{"type":"string","maxLength":256,"title":"Did Aw"},"did_key":{"type":"string","maxLength":256,"title":"Did Key"},"server":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Server"},"address":{"type":"string","maxLength":256,"title":"Address"},"handle":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Handle"},"seq":{"type":"integer","minimum":1.0,"title":"Seq","default":1},"prev_entry_hash":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Prev Entry Hash"},"state_hash":{"type":"string","maxLength":128,"title":"State Hash"},"authorized_by":{"type":"string","maxLength":256,"title":"Authorized By"},"timestamp":{"type":"string","maxLength":64,"title":"Timestamp"},"proof":{"type":"string","maxLength":2048,"title":"Proof"}},"type":"object","required":["did_aw","did_key","address","state_hash","authorized_by","timestamp","proof"],"title":"DidRegisterRequest"},"DidUpdateRequest":{"properties":{"operation":{"type":"string","enum":["rotate_key","update_server"],"title":"Operation","default":"rotate_key"},"new_did_key":{"type":"string","maxLength":256,"title":"New Did Key"},"server":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Server"},"seq":{"type":"integer","minimum":1.0,"title":"Seq"},"prev_entry_hash":{"type":"string","maxLength":128,"title":"Prev Entry Hash"},"state_hash":{"type":"string","maxLength":128,"title":"State Hash"},"authorized_by":{"type":"string","maxLength":256,"title":"Authorized By"},"timestamp":{"type":"string","maxLength":64,"title":"Timestamp"},"signature":{"type":"string","maxLength":2048,"title":"Signature"}},"type":"object","required":["new_did_key","seq","prev_entry_hash","state_hash","authorized_by","timestamp","signature"],"title":"DidUpdateRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HeartbeatResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"last_seen":{"type":"string","title":"Last Seen"},"ttl_seconds":{"type":"integer","title":"Ttl Seconds"}},"type":"object","required":["agent_id","last_seen","ttl_seconds"],"title":"HeartbeatResponse"},"HistoryResponse":{"properties":{"messages":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Messages"}},"type":"object","required":["messages"],"title":"HistoryResponse"},"InboxMessage":{"properties":{"message_id":{"type":"string","title":"Message Id"},"from_agent_id":{"type":"string","title":"From Agent Id"},"from_alias":{"type":"string","title":"From Alias"},"from_address":{"type":"string","title":"From Address"},"subject":{"type":"string","title":"Subject"},"body":{"type":"string","title":"Body"},"priority":{"type":"string","enum":["low","normal","high","urgent"],"title":"Priority"},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"},"read_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Read At"},"created_at":{"type":"string","title":"Created At"},"from_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Did"},"from_stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Stable Id"},"to_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Did"},"to_stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Stable Id"},"to_address":{"type":"string","title":"To Address"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature"},"signing_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signing Key Id"},"signed_payload":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Payload"},"rotation_announcement":{"anyOf":[{"$ref":"#/components/schemas/RotationAnnouncement"},{"type":"null"}]},"replacement_announcement":{"anyOf":[{"$ref":"#/components/schemas/ReplacementAnnouncement"},{"type":"null"}]},"is_contact":{"type":"boolean","title":"Is Contact","default":false}},"type":"object","required":["message_id","from_agent_id","from_alias","from_address","subject","body","priority","thread_id","read_at","created_at","to_address"],"title":"InboxMessage"},"InboxResponse":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/InboxMessage"},"type":"array","title":"Messages"}},"type":"object","required":["messages"],"title":"InboxResponse"},"InitRequest":{"properties":{"alias":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Alias"},"name":{"anyOf":[{"type":"string","maxLength":64,"minLength":1},{"type":"null"}],"title":"Name"},"human_name":{"type":"string","maxLength":64,"title":"Human Name","default":""},"agent_type":{"type":"string","maxLength":32,"title":"Agent Type","default":"agent"},"lifetime":{"type":"string","pattern":"^(persistent|ephemeral)$","title":"Lifetime","default":"ephemeral"},"custody":{"anyOf":[{"type":"string","pattern":"^(self|custodial)$"},{"type":"null"}],"title":"Custody"},"address_reachability":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Address Reachability"},"did":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Did"},"public_key":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Public Key"},"project_slug":{"type":"string","maxLength":256,"title":"Project Slug","default":""},"project_name":{"type":"string","maxLength":256,"title":"Project Name","default":""},"namespace":{"anyOf":[{"type":"string","maxLength":63,"minLength":1},{"type":"null"}],"title":"Namespace"},"namespace_slug":{"anyOf":[{"type":"string","maxLength":63,"minLength":1},{"type":"null"}],"title":"Namespace Slug"},"project_id":{"anyOf":[{"type":"string","maxLength":36},{"type":"null"}],"title":"Project Id"},"repo_origin":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Repo Origin"},"role":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role Name"},"hostname":{"type":"string","maxLength":255,"title":"Hostname","default":""},"workspace_path":{"type":"string","maxLength":4096,"title":"Workspace Path","default":""}},"additionalProperties":false,"type":"object","title":"InitRequest","description":"Bootstrap an aweb identity and, optionally, an aweb workspace."},"InitResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"},"created_at":{"type":"string","title":"Created At"},"api_key":{"type":"string","title":"Api Key"},"project_id":{"type":"string","title":"Project Id"},"project_slug":{"type":"string","title":"Project Slug"},"identity_id":{"type":"string","title":"Identity Id"},"agent_id":{"type":"string","title":"Agent Id"},"repo_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Id"},"canonical_origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Origin"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"created":{"type":"boolean","title":"Created","default":false},"workspace_created":{"type":"boolean","title":"Workspace Created","default":false},"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stable Id"},"custody":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","title":"Lifetime","default":"ephemeral"},"namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace"},"namespace_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Namespace Slug"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"address_reachability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Reachability"},"server_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Server Url"}},"type":"object","required":["created_at","api_key","project_id","project_slug","identity_id","agent_id"],"title":"InitResponse"},"ListAgentsResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"agents":{"items":{"$ref":"#/components/schemas/AgentView"},"type":"array","title":"Agents"}},"type":"object","required":["project_id","agents"],"title":"ListAgentsResponse"},"ListContactsResponse":{"properties":{"contacts":{"items":{"$ref":"#/components/schemas/ContactView"},"type":"array","title":"Contacts"}},"type":"object","required":["contacts"],"title":"ListContactsResponse"},"ListSpawnInvitesResponse":{"properties":{"invites":{"items":{"$ref":"#/components/schemas/SpawnInviteView"},"type":"array","title":"Invites"}},"type":"object","required":["invites"],"title":"ListSpawnInvitesResponse"},"ListWorkspacesResponse":{"properties":{"workspaces":{"items":{"$ref":"#/components/schemas/aweb__coordination__routes__workspaces__WorkspaceInfo"},"type":"array","title":"Workspaces"},"has_more":{"type":"boolean","title":"Has More","default":false},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["workspaces"],"title":"ListWorkspacesResponse","description":"Response for listing workspaces."},"MarkReadRequest":{"properties":{"up_to_message_id":{"type":"string","minLength":1,"title":"Up To Message Id"}},"additionalProperties":false,"type":"object","required":["up_to_message_id"],"title":"MarkReadRequest"},"NamespaceListResponse":{"properties":{"namespaces":{"items":{"$ref":"#/components/schemas/NamespaceResponse"},"type":"array","title":"Namespaces"},"has_more":{"type":"boolean","title":"Has More"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["namespaces","has_more"],"title":"NamespaceListResponse"},"NamespaceRegisterRequest":{"properties":{"domain":{"type":"string","maxLength":256,"minLength":1,"title":"Domain"},"controller_did":{"anyOf":[{"type":"string","maxLength":256,"minLength":1},{"type":"null"}],"title":"Controller Did"}},"additionalProperties":false,"type":"object","required":["domain"],"title":"NamespaceRegisterRequest"},"NamespaceResponse":{"properties":{"namespace_id":{"type":"string","title":"Namespace Id"},"domain":{"type":"string","title":"Domain"},"controller_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Controller Did"},"verification_status":{"type":"string","title":"Verification Status"},"last_verified_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Verified At"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["namespace_id","domain","verification_status","created_at"],"title":"NamespaceResponse"},"NamespaceRotateControllerRequest":{"properties":{"new_controller_did":{"type":"string","maxLength":256,"minLength":1,"title":"New Controller Did"}},"additionalProperties":false,"type":"object","required":["new_controller_did"],"title":"NamespaceRotateControllerRequest"},"PatchAgentRequest":{"properties":{"access_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Mode"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"program":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","title":"PatchAgentRequest"},"PatchAgentResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"access_mode":{"type":"string","title":"Access Mode"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"program":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["agent_id","access_mode"],"title":"PatchAgentResponse"},"PendingResponse":{"properties":{"pending":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Pending"},"messages_waiting":{"type":"integer","title":"Messages Waiting","default":0}},"type":"object","required":["pending"],"title":"PendingResponse"},"ProjectInstructionsDocument":{"properties":{"body_md":{"type":"string","title":"Body Md","default":""},"format":{"type":"string","title":"Format","default":"markdown"}},"type":"object","title":"ProjectInstructionsDocument"},"ProjectInstructionsHistoryItem":{"properties":{"project_instructions_id":{"type":"string","title":"Project Instructions Id"},"version":{"type":"integer","title":"Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by_workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Workspace Id"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["project_instructions_id","version","created_at","created_by_workspace_id","is_active"],"title":"ProjectInstructionsHistoryItem"},"ProjectInstructionsHistoryResponse":{"properties":{"project_instructions_versions":{"items":{"$ref":"#/components/schemas/ProjectInstructionsHistoryItem"},"type":"array","title":"Project Instructions Versions"}},"type":"object","required":["project_instructions_versions"],"title":"ProjectInstructionsHistoryResponse"},"ProjectRolesBundle":{"properties":{"roles":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Roles"},"adapters":{"additionalProperties":true,"type":"object","title":"Adapters"}},"type":"object","title":"ProjectRolesBundle","description":"Versioned project roles bundle containing roles and adapters."},"ProjectRolesHistoryItem":{"properties":{"project_roles_id":{"type":"string","title":"Project Roles Id"},"version":{"type":"integer","title":"Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by_workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By Workspace Id"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["project_roles_id","version","created_at","created_by_workspace_id","is_active"],"title":"ProjectRolesHistoryItem","description":"A project roles version in the history list."},"ProjectRolesHistoryResponse":{"properties":{"project_roles_versions":{"items":{"$ref":"#/components/schemas/ProjectRolesHistoryItem"},"type":"array","title":"Project Roles Versions"}},"type":"object","required":["project_roles_versions"],"title":"ProjectRolesHistoryResponse","description":"Response for GET /v1/roles/history."},"RegisterAgentRequest":{"properties":{"workspace_id":{"type":"string","minLength":1,"title":"Workspace Id"},"alias":{"type":"string","maxLength":64,"minLength":1,"title":"Alias"},"human_name":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Human Name"},"project_slug":{"anyOf":[{"type":"string","maxLength":63},{"type":"null"}],"title":"Project Slug"},"program":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"task_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Description"},"repo":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Repo"},"branch":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Branch"},"role":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role","description":"Brief description of workspace purpose"},"role_name":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role Name","description":"Canonical selector name for the workspace role"},"ttl_seconds":{"anyOf":[{"type":"integer","maximum":86400.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Ttl Seconds","description":"Presence TTL in seconds (default 300, max 86400)"}},"type":"object","required":["workspace_id","alias"],"title":"RegisterAgentRequest"},"RegisterAgentResponse":{"properties":{"agent":{"$ref":"#/components/schemas/AgentInfo"},"workspace":{"$ref":"#/components/schemas/aweb__routes__agents__WorkspaceInfo"}},"type":"object","required":["agent","workspace"],"title":"RegisterAgentResponse"},"RegisterAttachmentRequest":{"properties":{"attachment_type":{"type":"string","enum":["local_dir","service_process","manual"],"title":"Attachment Type","description":"Non-repo runtime attachment type"},"role":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role","description":"Role used for project roles selection and coordination"},"role_name":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role Name","description":"Canonical selector name for the workspace role"},"hostname":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Hostname","description":"Optional coarse host label for runtime coordination"},"workspace_path":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Workspace Path","description":"Directory path for runtime coordination"}},"type":"object","required":["attachment_type"],"title":"RegisterAttachmentRequest","description":"Request body for /v1/workspaces/attach endpoint."},"RegisterAttachmentResponse":{"properties":{"workspace_id":{"type":"string","title":"Workspace Id"},"project_id":{"type":"string","title":"Project Id"},"project_slug":{"type":"string","title":"Project Slug"},"alias":{"type":"string","title":"Alias"},"human_name":{"type":"string","title":"Human Name"},"attachment_type":{"type":"string","title":"Attachment Type"},"created":{"type":"boolean","title":"Created"}},"type":"object","required":["workspace_id","project_id","project_slug","alias","human_name","attachment_type","created"],"title":"RegisterAttachmentResponse","description":"Response for /v1/workspaces/attach endpoint."},"RegisterWorkspaceRequest":{"properties":{"repo_origin":{"type":"string","maxLength":2048,"minLength":1,"title":"Repo Origin"},"role":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role","description":"Brief description of workspace purpose"},"role_name":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role Name","description":"Canonical selector name for the workspace role"},"hostname":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Hostname","description":"Machine hostname for gone workspace detection"},"workspace_path":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Workspace Path","description":"Directory path for gone workspace detection"}},"type":"object","required":["repo_origin"],"title":"RegisterWorkspaceRequest","description":"Request body for /v1/workspaces/register endpoint (clean-slate split)."},"RegisterWorkspaceResponse":{"properties":{"workspace_id":{"type":"string","title":"Workspace Id"},"project_id":{"type":"string","title":"Project Id"},"project_slug":{"type":"string","title":"Project Slug"},"repo_id":{"type":"string","title":"Repo Id"},"canonical_origin":{"type":"string","title":"Canonical Origin"},"alias":{"type":"string","title":"Alias"},"human_name":{"type":"string","title":"Human Name"},"created":{"type":"boolean","title":"Created"}},"type":"object","required":["workspace_id","project_id","project_slug","repo_id","canonical_origin","alias","human_name","created"],"title":"RegisterWorkspaceResponse","description":"Response for /v1/workspaces/register endpoint."},"ReplacementAnnouncement":{"properties":{"address":{"type":"string","title":"Address"},"old_did":{"type":"string","title":"Old Did"},"new_did":{"type":"string","title":"New Did"},"controller_did":{"type":"string","title":"Controller Did"},"timestamp":{"type":"string","title":"Timestamp"},"controller_signature":{"type":"string","title":"Controller Signature"}},"type":"object","required":["address","old_did","new_did","controller_did","timestamp","controller_signature"],"title":"ReplacementAnnouncement"},"RepoDeleteResponse":{"properties":{"id":{"type":"string","title":"Id"},"workspaces_deleted":{"type":"integer","title":"Workspaces Deleted"},"claims_deleted":{"type":"integer","title":"Claims Deleted"},"presence_cleared":{"type":"integer","title":"Presence Cleared"}},"type":"object","required":["id","workspaces_deleted","claims_deleted","presence_cleared"],"title":"RepoDeleteResponse","description":"Response for DELETE /v1/repos/{id}."},"RepoEnsureRequest":{"properties":{"project_id":{"type":"string","maxLength":36,"minLength":36,"title":"Project Id"},"origin_url":{"type":"string","maxLength":2048,"minLength":1,"title":"Origin Url"}},"type":"object","required":["project_id","origin_url"],"title":"RepoEnsureRequest","description":"Request body for POST /v1/repos/ensure."},"RepoEnsureResponse":{"properties":{"repo_id":{"type":"string","title":"Repo Id"},"canonical_origin":{"type":"string","title":"Canonical Origin"},"name":{"type":"string","title":"Name"},"created":{"type":"boolean","title":"Created"}},"type":"object","required":["repo_id","canonical_origin","name","created"],"title":"RepoEnsureResponse","description":"Response for POST /v1/repos/ensure."},"RepoListResponse":{"properties":{"repos":{"items":{"$ref":"#/components/schemas/RepoSummary"},"type":"array","title":"Repos"},"has_more":{"type":"boolean","title":"Has More","default":false},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["repos"],"title":"RepoListResponse","description":"Response for GET /v1/repos."},"RepoLookupRequest":{"properties":{"origin_url":{"type":"string","maxLength":2048,"minLength":1,"title":"Origin Url"}},"type":"object","required":["origin_url"],"title":"RepoLookupRequest","description":"Request body for POST /v1/repos/lookup."},"RepoLookupResponse":{"properties":{"repo_id":{"type":"string","title":"Repo Id"},"project_id":{"type":"string","title":"Project Id"},"project_slug":{"type":"string","title":"Project Slug"},"canonical_origin":{"type":"string","title":"Canonical Origin"},"name":{"type":"string","title":"Name"}},"type":"object","required":["repo_id","project_id","project_slug","canonical_origin","name"],"title":"RepoLookupResponse","description":"Response for POST /v1/repos/lookup."},"RepoSummary":{"properties":{"id":{"type":"string","title":"Id"},"project_id":{"type":"string","title":"Project Id"},"canonical_origin":{"type":"string","title":"Canonical Origin"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"workspace_count":{"type":"integer","title":"Workspace Count"}},"type":"object","required":["id","project_id","canonical_origin","name","created_at","workspace_count"],"title":"RepoSummary","description":"Summary of a repo for list view."},"ReservationAcquireRequest":{"properties":{"resource_key":{"type":"string","maxLength":4096,"minLength":1,"title":"Resource Key"},"ttl_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Ttl Seconds","default":3600},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":false,"type":"object","required":["resource_key"],"title":"ReservationAcquireRequest"},"ReservationAcquireResponse":{"properties":{"status":{"type":"string","title":"Status"},"project_id":{"type":"string","title":"Project Id"},"resource_key":{"type":"string","title":"Resource Key"},"holder_agent_id":{"type":"string","title":"Holder Agent Id"},"holder_alias":{"type":"string","title":"Holder Alias"},"acquired_at":{"type":"string","title":"Acquired At"},"expires_at":{"type":"string","title":"Expires At"}},"type":"object","required":["status","project_id","resource_key","holder_agent_id","holder_alias","acquired_at","expires_at"],"title":"ReservationAcquireResponse"},"ReservationConflictResponse":{"properties":{"detail":{"type":"string","title":"Detail"},"holder_agent_id":{"type":"string","title":"Holder Agent Id"},"holder_alias":{"type":"string","title":"Holder Alias"},"expires_at":{"type":"string","title":"Expires At"}},"type":"object","required":["detail","holder_agent_id","holder_alias","expires_at"],"title":"ReservationConflictResponse"},"ReservationListResponse":{"properties":{"reservations":{"items":{"$ref":"#/components/schemas/ReservationView"},"type":"array","title":"Reservations"}},"type":"object","required":["reservations"],"title":"ReservationListResponse"},"ReservationReleaseRequest":{"properties":{"resource_key":{"type":"string","maxLength":4096,"minLength":1,"title":"Resource Key"}},"additionalProperties":false,"type":"object","required":["resource_key"],"title":"ReservationReleaseRequest"},"ReservationReleaseResponse":{"properties":{"status":{"type":"string","title":"Status"},"resource_key":{"type":"string","title":"Resource Key"}},"type":"object","required":["status","resource_key"],"title":"ReservationReleaseResponse"},"ReservationRenewRequest":{"properties":{"resource_key":{"type":"string","maxLength":4096,"minLength":1,"title":"Resource Key"},"ttl_seconds":{"type":"integer","maximum":86400.0,"minimum":1.0,"title":"Ttl Seconds","default":3600}},"additionalProperties":false,"type":"object","required":["resource_key"],"title":"ReservationRenewRequest"},"ReservationRenewResponse":{"properties":{"status":{"type":"string","title":"Status"},"resource_key":{"type":"string","title":"Resource Key"},"expires_at":{"type":"string","title":"Expires At"}},"type":"object","required":["status","resource_key","expires_at"],"title":"ReservationRenewResponse"},"ReservationRevokeRequest":{"properties":{"prefix":{"type":"string","maxLength":4096,"title":"Prefix","default":""}},"additionalProperties":false,"type":"object","title":"ReservationRevokeRequest"},"ReservationRevokeResponse":{"properties":{"revoked_count":{"type":"integer","title":"Revoked Count"},"revoked_keys":{"items":{"type":"string"},"type":"array","title":"Revoked Keys"}},"type":"object","required":["revoked_count","revoked_keys"],"title":"ReservationRevokeResponse"},"ReservationView":{"properties":{"project_id":{"type":"string","title":"Project Id"},"resource_key":{"type":"string","title":"Resource Key"},"holder_agent_id":{"type":"string","title":"Holder Agent Id"},"holder_alias":{"type":"string","title":"Holder Alias"},"acquired_at":{"type":"string","title":"Acquired At"},"expires_at":{"type":"string","title":"Expires At"},"ttl_remaining_seconds":{"type":"integer","title":"Ttl Remaining Seconds"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["project_id","resource_key","holder_agent_id","holder_alias","acquired_at","expires_at","ttl_remaining_seconds","metadata"],"title":"ReservationView"},"ResetIdentityRequest":{"properties":{"confirm":{"type":"boolean","title":"Confirm"}},"type":"object","required":["confirm"],"title":"ResetIdentityRequest"},"ResetIdentityResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"alias":{"type":"string","title":"Alias"},"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"public_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Key"},"stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stable Id"},"custody":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custody"},"lifetime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lifetime"}},"type":"object","required":["agent_id","alias"],"title":"ResetIdentityResponse"},"ResetProjectInstructionsResponse":{"properties":{"reset":{"type":"boolean","title":"Reset"},"active_project_instructions_id":{"type":"string","title":"Active Project Instructions Id"},"version":{"type":"integer","title":"Version"}},"type":"object","required":["reset","active_project_instructions_id","version"],"title":"ResetProjectInstructionsResponse"},"ResetProjectRolesResponse":{"properties":{"reset":{"type":"boolean","title":"Reset"},"active_project_roles_id":{"type":"string","title":"Active Project Roles Id"},"version":{"type":"integer","title":"Version"}},"type":"object","required":["reset","active_project_roles_id","version"],"title":"ResetProjectRolesResponse","description":"Response for POST /v1/roles/reset."},"ResolveAgentResponse":{"properties":{"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stable Id"},"address":{"type":"string","title":"Address"},"agent_id":{"type":"string","title":"Agent Id"},"human_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Name"},"public_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Key"},"server":{"type":"string","title":"Server"},"controller_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Controller Did"},"custody":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","title":"Lifetime"},"status":{"type":"string","title":"Status"}},"type":"object","required":["did","stable_id","address","agent_id","human_name","public_key","server","custody","lifetime","status"],"title":"ResolveAgentResponse"},"RetireAgentRequest":{"properties":{"successor_agent_id":{"type":"string","title":"Successor Agent Id"},"retirement_proof":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retirement Proof"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp"}},"additionalProperties":false,"type":"object","required":["successor_agent_id"],"title":"RetireAgentRequest"},"RetireAgentResponse":{"properties":{"status":{"type":"string","title":"Status"},"agent_id":{"type":"string","title":"Agent Id"},"successor_agent_id":{"type":"string","title":"Successor Agent Id"}},"type":"object","required":["status","agent_id","successor_agent_id"],"title":"RetireAgentResponse"},"RoleDefinition":{"properties":{"title":{"type":"string","title":"Title"},"playbook_md":{"type":"string","title":"Playbook Md"}},"type":"object","required":["title","playbook_md"],"title":"RoleDefinition","description":"A single named role definition."},"RotateKeyRequest":{"properties":{"new_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Did"},"new_public_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Public Key"},"custody":{"type":"string","enum":["self","custodial"],"title":"Custody"},"rotation_signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rotation Signature"},"timestamp":{"type":"string","title":"Timestamp"}},"additionalProperties":false,"type":"object","required":["custody","timestamp"],"title":"RotateKeyRequest"},"RotateKeyResponse":{"properties":{"status":{"type":"string","title":"Status"},"old_did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Did"},"new_did":{"type":"string","title":"New Did"},"new_public_key":{"type":"string","title":"New Public Key"},"custody":{"type":"string","title":"Custody"}},"type":"object","required":["status","old_did","new_did","new_public_key","custody"],"title":"RotateKeyResponse"},"RotationAnnouncement":{"properties":{"old_did":{"type":"string","title":"Old Did"},"new_did":{"type":"string","title":"New Did"},"timestamp":{"type":"string","title":"Timestamp"},"old_key_signature":{"type":"string","title":"Old Key Signature"}},"type":"object","required":["old_did","new_did","timestamp","old_key_signature"],"title":"RotationAnnouncement"},"ScopeAgentBootstrapRequest":{"properties":{"alias":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Alias"},"human_name":{"type":"string","maxLength":64,"title":"Human Name","default":""},"agent_type":{"type":"string","maxLength":32,"title":"Agent Type","default":"agent"},"did":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Did"},"public_key":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Public Key"},"custody":{"anyOf":[{"type":"string","enum":["self","custodial"]},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","enum":["persistent","ephemeral"],"title":"Lifetime","default":"ephemeral"},"role":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Role Name"},"program":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Program"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"access_mode":{"type":"string","maxLength":64,"title":"Access Mode","default":"open"}},"additionalProperties":false,"type":"object","title":"ScopeAgentBootstrapRequest"},"ScopeAgentBootstrapResponse":{"properties":{"scope_id":{"type":"string","title":"Scope Id"},"agent_id":{"type":"string","title":"Agent Id"},"alias":{"type":"string","title":"Alias"},"agent_type":{"type":"string","title":"Agent Type","default":"agent"},"api_key":{"type":"string","title":"Api Key"},"created":{"type":"boolean","title":"Created"},"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stable Id"},"custody":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","title":"Lifetime","default":"ephemeral"}},"type":"object","required":["scope_id","agent_id","alias","api_key","created"],"title":"ScopeAgentBootstrapResponse"},"ScopeAgentListResponse":{"properties":{"scope_id":{"type":"string","title":"Scope Id"},"agents":{"items":{"$ref":"#/components/schemas/ScopeAgentView"},"type":"array","title":"Agents"}},"type":"object","required":["scope_id","agents"],"title":"ScopeAgentListResponse"},"ScopeAgentView":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"alias":{"type":"string","title":"Alias"},"human_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Name"},"agent_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type"},"access_mode":{"type":"string","title":"Access Mode","default":"open"},"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stable Id"},"custody":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","title":"Lifetime","default":"ephemeral"},"status":{"type":"string","title":"Status","default":"active"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"program":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["agent_id","alias"],"title":"ScopeAgentView"},"ScopeProvisionRequest":{"properties":{"project_slug":{"type":"string","maxLength":256,"minLength":1,"title":"Project Slug"},"project_name":{"type":"string","maxLength":256,"title":"Project Name","default":""},"project_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Project Id"},"tenant_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Tenant Id"},"owner_type":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Owner Type"},"owner_ref":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Owner Ref"},"alias":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Alias"},"human_name":{"type":"string","maxLength":64,"title":"Human Name","default":""},"agent_type":{"type":"string","maxLength":32,"title":"Agent Type","default":"agent"},"did":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Did"},"public_key":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Public Key"},"custody":{"anyOf":[{"type":"string","enum":["self","custodial"]},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","enum":["persistent","ephemeral"],"title":"Lifetime","default":"ephemeral"},"role":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Role Name"},"program":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Program"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"access_mode":{"type":"string","maxLength":64,"title":"Access Mode","default":"open"}},"additionalProperties":false,"type":"object","required":["project_slug"],"title":"ScopeProvisionRequest"},"ScopeProvisionResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"},"created_at":{"type":"string","title":"Created At"},"project_id":{"type":"string","title":"Project Id"},"project_slug":{"type":"string","title":"Project Slug"},"agent_id":{"type":"string","title":"Agent Id"},"alias":{"type":"string","title":"Alias"},"api_key":{"type":"string","title":"Api Key"},"created":{"type":"boolean","title":"Created"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"stable_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stable Id"},"custody":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custody"},"lifetime":{"type":"string","title":"Lifetime","default":"ephemeral"}},"type":"object","required":["created_at","project_id","project_slug","agent_id","alias","api_key","created"],"title":"ScopeProvisionResponse"},"SelectedRoleInfo":{"properties":{"role_name":{"type":"string","title":"Role Name"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"title":{"type":"string","title":"Title"},"playbook_md":{"type":"string","title":"Playbook Md"}},"type":"object","required":["role_name","title","playbook_md"],"title":"SelectedRoleInfo","description":"Selected role information."},"SendControlSignalRequest":{"properties":{"signal":{"type":"string","enum":["pause","resume","interrupt"],"title":"Signal"}},"additionalProperties":false,"type":"object","required":["signal"],"title":"SendControlSignalRequest"},"SessionListItem":{"properties":{"session_id":{"type":"string","title":"Session Id"},"participants":{"items":{"type":"string"},"type":"array","title":"Participants"},"created_at":{"type":"string","title":"Created At"},"sender_waiting":{"type":"boolean","title":"Sender Waiting","default":false}},"type":"object","required":["session_id","participants","created_at"],"title":"SessionListItem"},"SessionListResponse":{"properties":{"sessions":{"items":{"$ref":"#/components/schemas/SessionListItem"},"type":"array","title":"Sessions"}},"type":"object","required":["sessions"],"title":"SessionListResponse"},"SpawnInviteView":{"properties":{"invite_id":{"type":"string","title":"Invite Id"},"token_prefix":{"type":"string","title":"Token Prefix"},"alias_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias Hint"},"access_mode":{"type":"string","title":"Access Mode"},"max_uses":{"type":"integer","title":"Max Uses"},"current_uses":{"type":"integer","title":"Current Uses"},"expires_at":{"type":"string","title":"Expires At"},"revoked_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["invite_id","token_prefix","access_mode","max_uses","current_uses","expires_at","created_at"],"title":"SpawnInviteView"},"SuggestAliasPrefixRequest":{"properties":{"project_slug":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Project Slug"}},"type":"object","title":"SuggestAliasPrefixRequest"},"SuggestAliasPrefixResponse":{"properties":{"project_slug":{"type":"string","title":"Project Slug"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"name_prefix":{"type":"string","title":"Name Prefix"},"roles":{"items":{"type":"string"},"type":"array","title":"Roles"}},"type":"object","required":["project_slug","project_id","name_prefix"],"title":"SuggestAliasPrefixResponse"},"SuggestNamePrefixRequest":{"properties":{"origin_url":{"type":"string","maxLength":2048,"minLength":1,"title":"Origin Url","description":"Git origin URL"}},"type":"object","required":["origin_url"],"title":"SuggestNamePrefixRequest","description":"Request body for /v1/workspaces/suggest-name-prefix endpoint."},"SuggestNamePrefixResponse":{"properties":{"name_prefix":{"type":"string","title":"Name Prefix"},"project_id":{"type":"string","title":"Project Id"},"project_slug":{"type":"string","title":"Project Slug"},"repo_id":{"type":"string","title":"Repo Id"},"canonical_origin":{"type":"string","title":"Canonical Origin"}},"type":"object","required":["name_prefix","project_id","project_slug","repo_id","canonical_origin"],"title":"SuggestNamePrefixResponse","description":"Response for /v1/workspaces/suggest-name-prefix endpoint."},"UpdateTaskRequest":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":4096,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Description"},"notes":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Notes"},"status":{"anyOf":[{"type":"string","enum":["open","in_progress","closed"]},{"type":"null"}],"title":"Status"},"priority":{"anyOf":[{"type":"integer","maximum":4.0,"minimum":0.0},{"type":"null"}],"title":"Priority"},"task_type":{"anyOf":[{"type":"string","enum":["task","bug","feature","epic","chore"]},{"type":"null"}],"title":"Task Type"},"labels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Labels"},"assignee_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee Agent Id"}},"additionalProperties":false,"type":"object","title":"UpdateTaskRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WorkspaceHeartbeatRequest":{"properties":{"workspace_id":{"type":"string","minLength":1,"title":"Workspace Id"},"alias":{"type":"string","maxLength":64,"minLength":1,"title":"Alias"},"repo_origin":{"type":"string","maxLength":512,"minLength":1,"title":"Repo Origin","description":"Git remote origin URL"},"role":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role","description":"Brief description of workspace purpose"},"role_name":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Role Name","description":"Canonical selector name for the workspace role"},"current_branch":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Current Branch"},"timezone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Timezone"},"hostname":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Hostname"},"workspace_path":{"anyOf":[{"type":"string","maxLength":1024},{"type":"null"}],"title":"Workspace Path"},"human_name":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Human Name"}},"type":"object","required":["workspace_id","alias","repo_origin"],"title":"WorkspaceHeartbeatRequest"},"WorkspaceHeartbeatResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true},"workspace_id":{"type":"string","title":"Workspace Id"}},"type":"object","required":["workspace_id"],"title":"WorkspaceHeartbeatResponse"},"aweb__coordination__routes__workspaces__Claim":{"properties":{"task_ref":{"type":"string","title":"Task Ref"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"claimed_at":{"type":"string","title":"Claimed At"},"apex_task_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apex Task Ref"},"apex_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apex Title"},"apex_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apex Type"}},"type":"object","required":["task_ref","claimed_at"],"title":"Claim","description":"A task claim - represents a workspace working on a task.\n\nThe apex (apex_task_ref/apex_title/apex_type) is stored on the claim to avoid\nrecursive read-time computation. Titles/types are joined from native tasks."},"aweb__coordination__routes__workspaces__WorkspaceInfo":{"properties":{"workspace_id":{"type":"string","title":"Workspace Id"},"alias":{"type":"string","title":"Alias"},"human_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Name"},"context_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context Kind"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"project_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Slug"},"program":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Program"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch"},"member_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member Email"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"role_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role Name"},"hostname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hostname"},"workspace_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Path"},"apex_task_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apex Task Ref"},"apex_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apex Title"},"apex_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apex Type"},"focus_task_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Focus Task Ref"},"focus_task_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Focus Task Title"},"focus_task_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Focus Task Type"},"focus_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Focus Updated At"},"status":{"type":"string","title":"Status"},"last_seen":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Seen"},"deleted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deleted At"},"claims":{"items":{"$ref":"#/components/schemas/aweb__coordination__routes__workspaces__Claim"},"type":"array","title":"Claims","default":[]}},"type":"object","required":["workspace_id","alias","status"],"title":"WorkspaceInfo","description":"Workspace information from database with optional presence data."},"aweb__routes__agents__WorkspaceInfo":{"properties":{"workspace_id":{"type":"string","title":"Workspace Id"}},"type":"object","required":["workspace_id"],"title":"WorkspaceInfo"},"aweb__routes__chat__SendMessageRequest":{"properties":{"body":{"type":"string","minLength":1,"title":"Body"},"hang_on":{"type":"boolean","title":"Hang On","default":false},"reply_to_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reply To Message Id"},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp"},"from_did":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"From Did"},"from_stable_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"From Stable Id"},"to_did":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"To Did"},"to_stable_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"To Stable Id"},"signature":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Signature"},"signing_key_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Signing Key Id"},"signed_payload":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Payload"}},"additionalProperties":false,"type":"object","required":["body"],"title":"SendMessageRequest"},"aweb__routes__chat__SendMessageResponse":{"properties":{"message_id":{"type":"string","title":"Message Id"},"delivered":{"type":"boolean","title":"Delivered"},"extends_wait_seconds":{"type":"integer","title":"Extends Wait Seconds","default":0}},"type":"object","required":["message_id","delivered"],"title":"SendMessageResponse"},"aweb__routes__claims__Claim":{"properties":{"task_ref":{"type":"string","title":"Task Ref"},"workspace_id":{"type":"string","title":"Workspace Id"},"alias":{"type":"string","title":"Alias"},"human_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Name"},"claimed_at":{"type":"string","title":"Claimed At"},"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["task_ref","workspace_id","alias","human_name","claimed_at","project_id"],"title":"Claim","description":"A task claim - indicates a workspace is actively working on a task."},"aweb__routes__messages__SendMessageRequest":{"properties":{"to_agent_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"To Agent Id"},"to_alias":{"anyOf":[{"type":"string","maxLength":320,"minLength":1},{"type":"null"}],"title":"To Alias"},"subject":{"type":"string","title":"Subject","default":""},"body":{"type":"string","title":"Body"},"priority":{"type":"string","enum":["low","normal","high","urgent"],"title":"Priority","default":"normal"},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"},"message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message Id"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp"},"from_did":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"From Did"},"from_stable_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"From Stable Id"},"to_did":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"To Did"},"to_stable_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"To Stable Id"},"signature":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Signature"},"signing_key_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Signing Key Id"},"signed_payload":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signed Payload"}},"additionalProperties":false,"type":"object","required":["body"],"title":"SendMessageRequest"},"aweb__routes__messages__SendMessageResponse":{"properties":{"message_id":{"type":"string","title":"Message Id"},"status":{"type":"string","title":"Status"},"delivered_at":{"type":"string","title":"Delivered At"}},"type":"object","required":["message_id","status","delivered_at"],"title":"SendMessageResponse"}}}}