One daemon contract
These clients target the daemon /v1 contract, not the operator console. Python and TypeScript packages are public on PyPI and npm. Request the platform evaluation package or private Go repository access when needed. See SDKs for language setup and download the OpenAPI 3.1 contract for HTTP shapes.
JavaScript method names are camelCase. Python uses snake_case. Go uses exported identifiers.
Method matrix
| Daemon operation | JavaScript | Python | Go | Scope |
|---|---|---|---|---|
| Action | action | action | Action | Caller; capability and action. Record a decision and, when allowed, mint a grant; does not execute the downstream action. |
| Brokered action | brokered | brokered | Brokered | Caller; preserve the original task and effect key for documented retries and reconciliation. No exactly-once downstream guarantee is made. Decide and execute through AAES Govern's connector. |
| Resume deferred action | resume | resume | Resume | Caller; resubmit the deferred action unchanged under the same effect key to /v1/action/resume. Complete a standing decision deferral, or leave it standing when revalidation still defers. This method does not execute a brokered action; use the brokered-resume method below for that path. |
| Brokered resume | resumeBrokered | resume_brokered | ResumeBrokered | Caller; resubmit the deferred brokered action unchanged under the same effect key to /v1/brokered/resume. Revalidate the standing deferral and execute through AAES Govern's connector when allowed; revalidation can defer again, and 404 means no matching standing deferral exists. |
| Federation | federate | federate | Federate | Caller; required task and effect key. Federation interface; unavailable in the supplied distribution (403 "no federated backend"). With a separately wired and validated backend, the response contains sensitive credential material or issuance instructions; redaction of diagnostic output is not removal of that material from the response. |
| Present grant | presentGrant | present_grant | PresentGrant | Caller; bind a stored grant to the authenticated presenter. |
| Observe | observe | observe | Observe | Caller observation; reported effect, not verified execution. |
| Capabilities and catalog | capabilities, catalog | same | Capabilities, Catalog | Entitled versus requestable kept separate. |
| Access ask and read | requestAccess, accessRequest | request_access, access_request | RequestAccess, AccessRequest | Caller. |
| Task list and read | listTask, task | list_task, task | ListTask, Task | Person sees tenant; others own assigned or managed tasks. |
| Approval list and read | listApprovals, approval | list_approvals, approval | ListApprovals, Approval | Person sees the permitted queue; others own intents. |
| Entitlements | listEntitlements | list_entitlements | ListEntitlements | Own actor; a person may select an actor in tenant. |
| Receipt list and read | listReceipts, receipt | list_receipts, receipt | ListReceipts, Receipt | Person sees tenant; others own intents. |
| Manager cards | managerCards, decideManagerCard | manager_cards, decide_manager_card | ManagerCards, DecideManagerCard | Authenticated agent manager only. Agent-manager decisions are recorded in the agent's capacity; they can never satisfy the mandatory authorized-person approval for a capability registered as irreversible, and an agent cannot approve its own request. |
| Access revocation | OperatorClient.revokeAccessRequest | OperatorClient.revoke_access_request | NewOperator(...).RevokeAccessRequest | Separately issued person token, server enforced. |
| Health and readiness | health | health | Health | One call reads both probes (/healthz liveness and /readyz readiness) and returns the daemon's own answers. |
Reads, pages, and refusals
The new read APIs return daemon wire names (task_id, counts_toward_coverage), while existing action results retain their language-native names. JavaScript wire shapes are available from @aaes-ai/sdk/wire. Go has concrete read structs; Python read responses are annotated dictionaries.
Read pages and filters
Task, approval, entitlement, and receipt lists return one page at a time. Pass page.next_cursor back as the cursor to read the next page. The limit is 1 to 200; omit it to use the server default. Capabilities, catalogue, and manager-card responses use their own array shapes and have no pagination parameters.
Timestamps use RFC3339 strings. Filters select records; they cannot change the caller's identity. The SDK URL encodes filter values. AAES Govern refuses unauthorized actor or sponsor filters from a non-person caller. Reading approvals with state=all requires an intent.
Validate requests and handle failures
Record IDs are encoded as one path segment. JavaScript rejects unknown filter or mutation keys, and Python rejects unknown keyword arguments. Go request types expose only documented fields.
Manager decisions must include an explicit grant boolean and identify the card, approval, and payload hash that binds the decision to the request. Omitting grant returns HTTP 400. The SDK never retries manager decisions or access revocations, including after a 503 with retries enabled.
Read failures throw or return AAES's HTTP status and reason. Refused action decisions retain their structured refusal result. Follow the API reference for retries and reconciliation: a brokered action may have happened before its outcome could be recorded, and a federated mint failure has its own retry rules.
Not on this client
Console administrative operations (create or update agents, policies, resources, identity, task transitions, browser approvals) belong to the operator console session. They are not exposed through an agent bearer client. Approval channel callbacks are server integration endpoints, not SDK methods. This package does not provide an OAuth server, cloud provisioning, live integration, receipt verification, or general-purpose HTTP passthrough.
Verify an export from your evaluation install with the public aaesverify verifier. See the CLI guide.