API Reference
The Aegis API creates, observes, steers, and approves durable automation runs through the local app. This reference documents methods, paths, scopes, request bodies, and response contracts.
Base URL
Local development defaults to:
http://127.0.0.1:4317
The host and port come from AGENT_HARNESS_HOST and AGENT_HARNESS_PORT. Binding beyond localhost should use bearer-token authentication and a private network boundary.
Authentication
Most API routes require the operator token when AGENT_HARNESS_TOKEN is configured:
Authorization: Bearer <operator-token>
Content-Type: application/json
GET /health is unauthenticated for local process checks. Static UI assets are served without API auth only in localhost local-public mode.
AGENT_HARNESS_AGENT_TOKEN enables a narrower headless-agent token. Agent tokens can inspect allowed state and add steering input, but cannot approve high-risk actions, mutate operator-owned configuration, read secret metadata, or use blocked/destructive operations.
Response Contracts
JSON responses are validated in development and test modes against Zod contracts in src/shared/contracts.ts. Contract validation can also be enabled with:
AGENT_HARNESS_VALIDATE_CONTRACTS=1
Key contract discovery endpoints include GET /agent-client/contract for headless-agent boundaries and GET /agent-profiles for the active coordinator and specialist profile registry.
Errors use a simple JSON envelope:
{
"error": "Human-readable error message"
}
Typical status codes are 200 for reads and updates, 201 for created records, 202 for accepted webhook work, 400 for invalid input, 401 for missing auth, 403 for token scope denial, 404 for missing routes or records, and 500 for unexpected server errors.
Scope Legend
| Scope | Meaning |
|---|---|
| Public | Available without API token. |
| Operator | Requires the operator token when auth is enabled. |
| Agent readable | Allowed for the scoped headless-agent token. |
| Agent steering | Allowed for headless agents when the operation only routes work or adds guidance. |
| Human only | Requires a human approval decision. |
| Internal | Used by the bundled dashboard or local host integration; not a stable external contract. |
Core Shapes
Create Coordinator Run
POST /coordinator/runs creates a coordinator-led run with a delegation plan and planned task sessions.
{
"request": "Inspect this repository and propose a small docs patch.",
"repoPath": "/path/to/project",
"worker": {
"provider": "codex",
"model": "gpt-5.3-codex"
},
"verifier": {
"command": "npm test"
}
}
Approval Decision
POST /approvals/:id/approve and POST /approvals/:id/reject accept the same decision body. Repo-write approvals require evidence review fields before the runtime can apply the prepared bundle.
{
"actorType": "human",
"reviewerNote": "Reviewed the diff and verifier output.",
"reviewedEvidence": true,
"reviewedHashes": true,
"reviewedPolicyClass": true
}
Memory Record
POST /memory creates durable context for coordinator and run prompts.
{
"type": "decision",
"scope": "project",
"content": "Use static docs pages for API reference.",
"source": {
"kind": "conversation",
"id": "conversation_..."
}
}
System And Local Service
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /health |
Public | Health object | Local process readiness check. |
| GET | /agent-client/contract |
Operator, agent readable | headlessAgentClientContractSchema |
Lists operation classes and agent-token boundaries. |
| GET | /control-plane/status |
Operator, agent readable | controlPlaneStatusSchema |
Server config, worker state, queue health, recent failures, provider status, and links. Agent responses redact provider credential details. |
| GET | /control-plane/logs?stream=stdout\|stderr |
Operator | Log tail object | Bounded local stdout/stderr tail. |
| GET | /control-plane/backup-manifest |
Operator | backupManifestSchema |
Exports migration metadata without raw secret values. |
| POST | /control-plane/restore-verification |
Operator | restoreVerificationReportSchema |
Verifies candidate restored data read-only before migration cutover. |
| GET | /events |
Operator | Server-sent events | Control-plane event stream. |
Notifications
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /notifications |
Operator, agent readable | notificationInboxSnapshotSchema |
Inbox derived from approvals, run failures, trace events, and outputs. |
| POST | /notifications/:id/read |
Operator | notificationInboxSnapshotSchema |
Marks one notification read. |
| POST | /notifications/:id/unread |
Operator | notificationInboxSnapshotSchema |
Marks one notification unread. |
| POST | /notifications/:id/dismiss |
Operator | notificationInboxSnapshotSchema |
Hides one notification without mutating the source record. |
| POST | /notifications/:id/archive |
Operator | notificationInboxSnapshotSchema |
Archives one notification. |
| POST | /notifications/:id/delete |
Operator | notificationInboxSnapshotSchema |
Deletes notification state only. |
| POST | /notifications/read-all |
Operator | notificationInboxSnapshotSchema |
Marks all inbox items read. |
Coordinator And Conversations
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /coordinator/command-center |
Operator, agent readable | commandCenterSnapshotSchema |
Aggregate dashboard state for active runs, blockers, pending approvals, and recent failures. |
| GET | /coordinator/conversations |
Operator, agent readable | conversationSessionSchema[] |
Lists coordinator chat sessions. |
| POST | /coordinator/conversations |
Operator | conversationDetailsSchema |
Creates a new conversation. Body: createConversationSessionInputSchema. |
| GET | /coordinator/conversations/:id |
Operator, agent readable | conversationDetailsSchema |
Reads a conversation with events and run links. |
| PATCH | /coordinator/conversations/:id |
Operator | conversationDetailsSchema |
Renames, archives, or updates session metadata. Body: updateConversationSessionInputSchema. |
| GET | /coordinator/conversations/:id/runtime-events |
Operator, agent readable | conversationRuntimeEventRecordSchema[] |
Supports cursor and limit. Use cursor=latest to start after the current tail. |
| GET | /coordinator/conversations/:id/runtime-events/stream |
Operator | Server-sent events | Live runtime events for one conversation. |
| GET | /coordinator/conversations/:id/plans |
Operator, agent readable | coordinatorPlanRecordSchema[] |
Durable coordinator plans. |
| GET | /coordinator/conversations/:id/artifact?path=... |
Operator, agent readable | Artifact object | Reads one conversation-scoped artifact. |
| GET | /coordinator/conversations/:id/design-docs |
Operator, agent readable | coordinatorDesignDocRecordSchema[] |
Design documents created during planning. |
| GET | /coordinator/conversations/:id/execution-graphs |
Operator, agent readable | coordinatorExecutionGraphRecordSchema[] |
Execution graph records for planned work. |
| GET | /coordinator/conversations/:id/turns |
Operator, agent readable | coordinatorTurnTranscriptSchema[] |
Model/tool turn transcripts. |
| GET | /coordinator/conversations/:id/summary |
Operator, agent readable | conversationSummarySchema |
Reads the current durable summary. |
| POST | /coordinator/conversations/:id/summary |
Operator | conversationSummarySchema |
Creates or refreshes a summary memory record. |
| POST | /coordinator/conversations/:id/pre-run-checklist |
Operator, agent steering | preRunChecklistSchema |
Records the coordinator’s preflight interpretation before queueing work. Body: coordinatorMessageInputSchema. |
| POST | /coordinator/conversations/:id/attachments |
Operator | conversationAttachmentSchema[] |
Stores uploaded conversation attachments. Body: createConversationAttachmentsInputSchema. |
| POST | /coordinator/conversations/:id/events |
Operator, agent steering | conversationDetailsSchema |
Appends durable user/coordinator/system events. Body: appendConversationEventInputSchema. |
| POST | /coordinator/conversations/:id/messages |
Operator, agent steering | coordinatorMessageResultSchema |
Processes a coordinator message through the intent layer. Body: coordinatorMessageInputSchema. |
| POST | /coordinator/conversations/:id/research-assets |
Operator | conversationDetailsSchema |
Saves generated or imported research assets. Body: saveConversationResearchAssetInputSchema. |
Runs, Task Sessions, And Approvals
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| POST | /coordinator/runs |
Operator, agent steering | Queued run object | Creates a coordinator-led run. Body: createCoordinatorRunInputSchema. |
| POST | /runs |
Operator, agent steering | Queued run object | Creates a direct workflow run. Body: createRunInputSchema. |
| GET | /runs |
Operator, agent readable | Run summary array | Lists active runs. |
| POST | /runs/archive |
Operator | { archived: number } |
Archives terminal active runs. |
| POST | /runs/:id/delete |
Operator | { deleted: string } |
Local destructive cleanup endpoint. |
| POST | /runs/:id/retry |
Operator, agent steering | Queued run object | Queues a new run from source configuration; optional body can include corrected request fields. |
| GET | /runs/:id |
Operator, agent readable | Run details object | Reads run state, jobs, tasks, approvals, traces, and summary. |
| GET | /runs/:id/workspace |
Operator, agent readable | runWorkspaceSnapshotSchema |
Aggregate run workspace for dashboard and headless inspection. |
| GET | /runs/:id/artifact-index |
Operator, agent readable | artifactIndexSnapshotSchema |
Artifact metadata with purpose, preview type, hashes, labels, related approvals, and evaluations. |
| GET | /runs/:id/delegation-plan |
Operator, agent readable | Delegation plan object | Coordinator-authored specialist plan. |
| GET | /runs/:id/task-sessions |
Operator, agent readable | Task session summary array | Lists specialist task sessions attached to a run. |
| POST | /runs/:id/coordinator-report |
Operator, agent steering | Coordinator report object | Records a status report without approving high-risk work. |
| POST | /runs/:id/pause |
Operator | Run object | Pauses a running or queued run. |
| POST | /runs/:id/resume |
Operator | Run object | Resumes a paused run. |
| POST | /runs/:id/cancel |
Operator | Run object | Cancels a run. |
| POST | /runs/:id/task-cards/:taskId/retry |
Operator, agent steering | Task card result | Retries one task card. Body may include reason. |
| POST | /runs/:id/task-cards/:taskId/escalate |
Operator, agent steering | Task card result | Escalates one task card. Body may include reason. |
| POST | /runs/:id/task-cards/:taskId/block |
Operator, agent steering | Task card result | Blocks one task card. Body may include reason. |
| GET | /runs/:id/timeline |
Operator, agent readable | Timeline object | Stage and trace timeline. |
| GET | /runs/:id/audit |
Operator, agent readable | Audit export object | Archival audit package. |
| GET | /runs/:id/audit-view |
Operator, agent readable | auditViewSnapshotSchema |
Dashboard-readable narrative audit view. |
| GET | /runs/:id/replay-packet |
Operator, agent readable | runReplayPacketSchema |
Compact reproduction packet and dry-run replay plan. |
| GET | /runs/:id/artifacts |
Operator, agent readable | Artifact path array | Lists run artifacts. |
| GET | /runs/:id/artifact?path=... |
Operator, agent readable | Artifact object | Reads one artifact body. |
| GET | /runs/:id/artifact-file?path=... |
Operator | Binary response | Downloads one artifact file. |
| POST | /runs/:id/research-notes |
Operator | researchNoteSchema |
Saves a run-scoped research note. Body: saveResearchNoteInputSchema. |
| POST | /runs/:id/research-assets |
Operator | researchAssetSchema |
Creates a research asset. Body: createResearchAssetInputSchema. |
| GET | /task-sessions/:id |
Operator, agent readable | taskSessionDetailsSchema |
Reads role/profile context, guidance, artifacts, evaluations, and trace slices. |
| POST | /task-sessions/:id/guidance |
Operator, agent steering | taskSessionDetailsSchema |
Appends steering guidance consumed at the next task boundary. Body: addTaskGuidanceInputSchema. |
| POST | /task-sessions/:id/stop |
Operator | taskSessionDetailsSchema |
Requests stop for one task session. |
| GET | /approvals/queue |
Operator, agent readable | approvalQueueSnapshotSchema |
Pending approvals with evidence, hashes, related run/session context, and authority status. |
| POST | /approvals/:id/approve |
Human only | Approval result | Approves an approval checkpoint. Body: approvalDecisionInputSchema. |
| POST | /approvals/:id/reject |
Human only | Approval result | Rejects an approval checkpoint. Body: approvalDecisionInputSchema. |
Project Context And Research Utilities
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /projects/context |
Operator, agent readable | projectContextDocumentSchema[] or projectContextDocumentWithContentSchema[] |
Lists or searches project context documents. Query: projectPath, status, documentType, includeArchived, query, limit. |
| POST | /projects/context |
Operator | projectContextDocumentSchema |
Creates a project context document. Body: createProjectContextDocumentInputSchema. |
| GET | /projects/context/:id |
Operator, agent readable | projectContextDocumentWithContentSchema |
Reads one context document. |
| PATCH | /projects/context/:id |
Operator | projectContextDocumentSchema |
Updates one context document. Body: updateProjectContextDocumentInputSchema. |
| POST | /projects/context/:id/archive |
Operator | projectContextDocumentSchema |
Archives one context document. |
| POST | /research/source-metadata |
Operator | Metadata object | Fetches metadata for a source URL. Body: { "url": "..." }. |
| POST | /research/source-search |
Operator | Search result array | Searches public research sources. Body: query, optional limit. |
| POST | /research/source-preview |
Operator | Preview object | Builds a preview for one source URL. |
Secrets, OAuth, And Connector Credentials
Secret values are write-only. API responses return metadata, hashes, redacted previews, storage class, and material status only. Scoped headless-agent tokens cannot read secret records or connector credential metadata.
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /secrets |
Operator | secretRecordSchema[] |
Query by kind, provider, or status. |
| POST | /secrets |
Operator | secretRecordSchema |
Stores or rotates local secret material. Body: setSecretInputSchema. |
| GET | /secrets/status |
Operator | secretStatusSchema[] |
Verifies local material presence without revealing values. |
| GET | /secrets/:id |
Operator | secretRecordSchema |
Reads secret metadata only. |
| GET | /secrets/:id/status |
Operator | secretStatusSchema |
Checks one secret’s local material. |
| POST | /secrets/:id/delete |
Operator | secretRecordSchema |
Deletes local material and marks metadata deleted. |
| GET | /oauth/accounts |
Operator | oauthConnectorAccountSchema[] |
Query by provider, connectorId, or status. |
| GET | /oauth/apps/:connectorId |
Operator | oauthAppConfigSchema |
Reads connector OAuth app metadata. |
| POST | /oauth/apps/:connectorId |
Operator | oauthAppConfigSchema |
Saves connector OAuth app config. Body: oauthAppConfigInputSchema. |
| POST | /oauth/apps/:connectorId/start |
Operator | oauthAuthorizationStartResultSchema |
Starts OAuth for a configured connector app. |
| POST | /oauth/start |
Operator | oauthAuthorizationStartResultSchema |
Starts generic OAuth authorization. Body: oauthAuthorizationStartInputSchema. |
| POST | /oauth/callback |
Operator | oauthConnectorAccountSchema |
Completes OAuth authorization. Body: oauthAuthorizationCallbackInputSchema. |
| GET | /oauth/callback |
Public callback | HTML response | Browser redirect target for configured OAuth apps. |
| POST | /oauth/accounts/:id/refresh |
Operator | oauthConnectorAccountSchema |
Refreshes one connected account. Body: oauthRefreshInputSchema. |
| POST | /oauth/accounts/:id/revoke |
Operator | oauthConnectorAccountSchema |
Revokes one connected account. |
| GET | /apple-developer/app |
Operator | appleDeveloperAppConfigSchema |
Reads Apple Developer connector app config. |
| POST | /apple-developer/app |
Operator | appleDeveloperAppConfigSchema |
Saves Apple Developer app config. |
| POST | /apple-developer/app/smoke-check |
Operator | appleDeveloperAppConfigSchema |
Runs a connector smoke check. |
| GET | /plaid/app |
Operator | plaidAppConfigSchema |
Reads Plaid app config. |
| POST | /plaid/app |
Operator | plaidAppConfigSchema |
Saves Plaid app config. |
| POST | /plaid/app/smoke-check |
Operator | plaidAppConfigSchema |
Runs a Plaid smoke check. |
| POST | /plaid/link/token/create |
Operator | plaidLinkTokenCreateResultSchema |
Creates a Plaid Link token. |
| POST | /plaid/link/token/exchange |
Operator | plaidPublicTokenExchangeResultSchema |
Exchanges a public token for local item material. |
| GET | /plaid/connections |
Operator | plaidConnectionsListOutputSchema |
Lists Plaid items and accounts. |
| POST | /plaid/accounts/:id/settings |
Operator | plaidAccountSchema |
Updates Plaid account settings. |
| POST | /plaid/items/:id/disconnect |
Operator | plaidItemDisconnectResultSchema |
Disconnects a Plaid item. |
Planner
Planner endpoints power the local task, calendar, search, and personal context dashboard. They are operator APIs unless otherwise documented in GET /agent-client/contract.
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| POST | /planner/refresh |
Operator | plannerRefreshRunSchema[] |
Refreshes configured planner sources. Body: plannerRefreshInputSchema. |
| GET | /planner/refresh/pending |
Operator | plannerPendingCountsSchema |
Estimates pending source changes. Query accepts source and date filters. |
| GET | /planner/settings |
Operator | plannerSettingsSchema |
Reads planner settings. |
| POST | /planner/settings |
Operator | plannerSettingsSchema |
Saves planner settings. Body: plannerSettingsInputSchema. |
| GET | /planner/retrieval/status |
Operator | plannerRetrievalStatusSchema |
Reads local retrieval backend status. |
| POST | /planner/retrieval/start |
Operator | plannerRetrievalStatusSchema |
Starts local Elasticsearch retrieval when configured. |
| GET | /planner/sources/registry |
Operator | plannerSourceCapabilitySchema[] |
Lists source capabilities. |
| GET | /planner/sources/status |
Operator | plannerSourceStatusSchema[] |
Lists source/account refresh health. |
| GET | /planner/search |
Operator | plannerArtifactSearchResultSchema[] |
Query: query or q, sources, accountId, from, to, itemTypes, limit, includeDiagnostics. |
| POST | /planner/ask |
Operator | plannerAskResponseSchema |
Answers against planner artifacts. Body: plannerAskInputSchema. |
| POST | /planner/ask/stream |
Operator | Server-sent events | Streaming planner answer. |
| POST | /planner/calendar-actions |
Operator | plannerCalendarActionResponseSchema |
Plans a calendar action without executing it. |
| POST | /planner/calendar-actions/execute |
Operator | plannerCalendarActionResponseSchema |
Executes a reviewed calendar action. |
| POST | /planner/calendar-actions/drafts/send |
Operator | plannerCalendarDraftSendResponseSchema |
Sends a prepared calendar proposal draft. |
| POST | /planner/calendar-actions/drafts/delete |
Operator | plannerCalendarDraftDeleteResponseSchema |
Deletes a calendar proposal draft. |
| POST | /planner/calendar-events/create |
Operator | plannerArtifactRecordSchema |
Creates a calendar event and planner artifact. |
| GET | /planner/artifacts |
Operator | plannerArtifactRecordSchema[] |
Lists artifacts with source, account, status, type, priority, person, query, date, limit, and offset filters. |
| GET | /planner/artifacts/:id |
Operator | plannerArtifactRecordSchema |
Reads one planner artifact. |
| POST | /planner/artifacts/:id/classify |
Operator | plannerArtifactRecordSchema |
Classifies one artifact. Body: plannerClassifyArtifactInputSchema. |
| POST | /planner/artifacts/:id/rescrape |
Operator | plannerArtifactRecordSchema |
Rescrapes one artifact. |
| GET | /planner/time-off |
Operator | plannerArtifactRecordSchema[] |
Calendar-backed vacation/time-off view. |
| GET | /planner/meetings |
Operator | plannerArtifactRecordSchema[] |
Calendar-backed meetings view. |
| GET | /planner/conflicts |
Operator | plannerConflictSchema[] |
Lists scheduling conflicts. |
| POST | /planner/conflicts/:id/suppress |
Operator | plannerConflictSuppressionSchema |
Suppresses one conflict. |
| POST | /planner/conflicts/:id/unsuppress |
Operator | plannerConflictUnsuppressionSchema |
Restores one suppressed conflict. |
| POST | /planner/conflicts/by-artifact/:id/suppress |
Operator | plannerConflictSuppressionSchema[] |
Suppresses all conflicts from one artifact. |
| GET | /planner/tasks |
Operator | plannerTaskSchema[] |
Lists tasks by source, account, state, priority, schedule, due date, limit, or offset. |
| POST | /planner/tasks |
Operator | plannerTaskSchema |
Creates a manual planner task. |
| PATCH | /planner/tasks/:id |
Operator | plannerTaskSchema |
Updates one task. Body: plannerUpdateTaskInputSchema. |
| PUT | /planner/tasks/:id |
Operator | plannerTaskSchema |
Same update contract as PATCH. |
| DELETE | /planner/tasks/:id |
Operator | plannerTaskSchema |
Archives one task. |
| POST | /planner/tasks/:id/toggle |
Operator | plannerTaskSchema |
Toggles task completion state. |
| POST | /planner/tasks/:id/schedule |
Operator | plannerTaskSchema |
Schedules one task. |
| POST | /planner/tasks/reorder |
Operator | plannerTaskSchema[] |
Reorders tasks. |
| POST | /planner/tasks/_bulk/toggle |
Operator | plannerTaskSchema[] |
Toggles multiple tasks. |
| POST | /planner/tasks/_bulk/schedule |
Operator | plannerTaskSchema[] |
Schedules multiple tasks. |
Profiles, Capabilities, Skills, And Workflows
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /agent-profiles |
Operator, agent readable | agentProfileRecordSchema[] |
Query by role, status, or workflowTemplateId. |
| GET | /agent-profiles/:id |
Operator, agent readable | agentProfileRecordSchema |
Reads one agent profile. |
| DELETE | /agent-profiles/:id |
Operator | { deleted: true } |
Deletes a user profile entry. |
| POST | /agent-profiles/settings |
Operator | agentProfileRecordSchema |
Applies profile settings. Body: applyAgentProfileSettingsInputSchema. |
| GET | /agent-profile-changes |
Operator | agentProfileChangeRequestSchema[] |
Query by status or targetProfileId. |
| POST | /agent-profile-changes |
Operator | agentProfileChangeRequestSchema |
Creates a pending profile change request. |
| GET | /agent-profile-changes/:id |
Operator | agentProfileChangeRequestSchema |
Reads a change request. |
| POST | /agent-profile-changes/:id/approve |
Human only | agentProfileChangeRequestSchema |
Activates an approved user profile change. |
| POST | /agent-profile-changes/:id/reject |
Human only | agentProfileChangeRequestSchema |
Rejects a profile change while preserving audit history. |
| GET | /capabilities |
Operator, agent readable | capabilityRecordSchema[] |
Query by kind or state. |
| GET | /capabilities/:id |
Operator, agent readable | capabilityRecordSchema |
Reads one tool/skill/capability record. |
| GET | /skills |
Operator, agent readable | skillManifestSchema[] |
Lists installed skill manifests. |
| GET | /skills/schema |
Operator | skillManifestBuilderSchema |
Schema used by the skill builder. |
| POST | /skills/validate |
Operator | skillManifestValidationResultSchema |
Validates a skill manifest. |
| POST | /skills/import |
Operator | skillManifestImportResultSchema |
Imports a skill manifest. |
| GET | /workflow-templates |
Operator, agent readable | Workflow template array | Lists built-in workflow templates. |
| GET | /workflow-primitives |
Operator, agent readable | workflowPrimitiveSchema[] |
Lists workflow authoring primitives. |
| POST | /workflow-builder/assist |
Operator | workflowBuilderAssistResultSchema |
Assists workflow authoring. |
| POST | /workflow-test-runs/run |
Operator | workflowTestRunResultSchema |
Executes a draft workflow test run. |
| GET | /saved-workflows |
Operator | savedWorkflowSchema[] |
Lists saved workflow definitions. |
| POST | /saved-workflows |
Operator | savedWorkflowSchema |
Creates or updates a saved workflow. |
| GET | /saved-workflows/:id |
Operator | savedWorkflowSchema |
Reads one saved workflow. |
| DELETE | /saved-workflows/:id |
Operator | Delete result | Deletes one saved workflow. |
| POST | /saved-workflows/:id/activate |
Operator | savedWorkflowSchema |
Activates one saved workflow. |
| POST | /saved-workflows/:id/deactivate |
Operator | savedWorkflowSchema |
Deactivates one saved workflow. |
| POST | /saved-workflows/:id/run |
Operator | workflowTestRunResultSchema |
Runs a saved workflow manually. |
| GET | /tools |
Operator, agent readable | Tool record array | Lists executable tool registry entries. |
Automations
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /automations |
Operator | automationDefinitionSchema[] |
Query by status. |
| POST | /automations |
Operator | automationDetailsSchema |
Creates an automation. Body: automationDefinitionInputSchema. |
| GET | /automations/:id |
Operator | automationDetailsSchema |
Reads one automation definition and event history. |
| DELETE | /automations/:id |
Operator | Delete result | Deletes one automation definition. |
| POST | /automations/:id/enable |
Operator | automationDetailsSchema |
Enables one automation. |
| POST | /automations/:id/disable |
Operator | automationDetailsSchema |
Disables one automation. |
| POST | /automations/:id/pause |
Operator | automationDetailsSchema |
Pauses one automation. |
| GET | /automations/:id/preview |
Operator | automationPreviewSchema |
Dry-run preview; reports what would be queued without creating a run. |
| POST | /automations/:id/trigger |
Operator | Trigger result | Manually triggers one automation. |
| POST | /automation-webhooks/:path |
Webhook | Accepted result | Triggers matching webhook automations. Header: x-agent-harness-webhook-secret. |
Memory
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /memory |
Operator, agent readable | memoryRecordSchema[] |
Query by query, type, scope, runId, conversationId, or status. |
| POST | /memory |
Operator | memoryRecordSchema |
Creates a durable memory record. Body: createMemoryRecordInputSchema. |
| POST | /memory/:id/archive |
Operator | memoryRecordSchema |
Archives one memory record without deleting history. |
| GET | /memory/context-preview |
Operator, agent readable | memoryContextPreviewSchema |
Shows active records selected for a conversation/run/task context. |
| GET | /memory/candidates |
Operator | memoryCandidateSchema[] |
Query pending, promoted, or rejected candidates. |
| POST | /memory/candidates/:id/promote |
Operator | memoryRecordSchema |
Promotes a candidate into an active memory record. |
| POST | /memory/candidates/:id/reject |
Operator | memoryCandidateSchema |
Marks a candidate rejected but keeps it auditable. |
| POST | /memory/maintenance |
Operator | memoryMaintenanceReportSchema |
Runs summary extraction, review, optional stale archive, and optional promotion. |
| POST | /memory/review |
Operator | memoryReviewReportSchema |
Creates a non-destructive memory review report. |
| GET | /memory/reviews |
Operator | memoryReviewReportSchema[] |
Lists prior memory reviews. |
| GET | /memory/reviews/:id |
Operator | memoryReviewReportSchema |
Reads one memory review. |
Audio Sessions
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /audio-sessions |
Operator | audioSessionSchema[] |
Lists audio sessions. |
| POST | /audio-sessions |
Operator | audioSessionDetailsSchema |
Creates a transcription or realtime-audio session. Body: createAudioSessionInputSchema. |
| GET | /audio-sessions/:id |
Operator | audioSessionDetailsSchema |
Reads one audio session with events. |
| POST | /audio-sessions/:id/events |
Operator | audioSessionDetailsSchema |
Appends transcript/status/error events. |
| POST | /audio-sessions/:id/transcriptions |
Operator | audioTranscriptionResultSchema |
Records a local STT/import request and optional transcript text. |
| POST | /audio-sessions/:id/end |
Operator | audioSessionDetailsSchema |
Ends one audio session. |
Models And Providers
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | /models?provider=... |
Operator, agent readable | String array | Lists models for configured provider catalogs or static fallbacks. |
| GET | /providers/health |
Operator, agent readable | Record<string, providerHealthSchema> |
Reports CLI/API reachability, catalog source, credentials, last errors, and model preview. Agent responses redact credential status and secret identifiers. |
| GET | /providers/:provider/health-history |
Operator | providerHealthCheckRecordSchema[] |
Recent durable on-demand health-check records. Query: limit. |
| POST | /providers/:provider/health-check |
Operator | providerHealthSchema |
Runs an on-demand provider check with forced catalog refresh when supported. |
| GET | /model-catalog |
Operator, agent readable | modelCatalogEntrySchema[] |
Provider/model metadata for routing: execution path, privacy, capabilities, roles, and notes. |
| POST | /model-routing/preview |
Operator, agent readable | modelRoutingPreviewSchema |
Returns selected model, alternatives, rationale, warnings, and matching policy ID. |
| GET | /model-routing/policies |
Operator | modelRoutingPolicySchema[] |
Query by status. |
| POST | /model-routing/policies |
Operator | modelRoutingPolicySchema |
Creates or updates a routing policy. Body: modelRoutingPolicyInputSchema. |
| GET | /model-routing/policies/:id |
Operator | modelRoutingPolicySchema |
Reads one routing policy. |
Static Dashboard And Local Shell Routes
These routes support the bundled dashboard and local host integration. They are documented for operator awareness, but they should not be treated as stable third-party API contracts.
| Method | Path | Scope | Response Contract | Notes |
|---|---|---|---|---|
| GET | / |
Public or token-mode UI | HTML | Bundled dashboard shell. |
| GET | /dashboard/styles.css |
Public or token-mode UI | CSS | Bundled dashboard CSS. |
| GET | /dashboard/app.js |
Public or token-mode UI | JavaScript | Bundled dashboard JavaScript. |
| GET | /assets/... |
Public or token-mode UI | Static asset | Bundled dashboard assets. |
| POST | /shell/select-directory |
Internal | Directory selection result | Host file picker integration. |
| POST | /shell/open-path |
Internal | Open-path result | Opens a local host path. |
| GET | /shell/git-status?path=... |
Internal | Git status object | Reads local git status for dashboard display. |
| POST | /dashboard/calendar/events |
Internal | Calendar event array | Dashboard calendar aggregation route. |
| GET | /history |
Internal | Run history array | Legacy dashboard history route. |
Safety Notes
- Approval endpoints are not generic action shortcuts. Repo writes, external side effects, and unsupported high-risk approval classes remain human-owned and require explicit evidence review.
- OAuth and connector endpoints store raw tokens and secrets outside the SQLite metadata database in local secret material. API responses must never expose raw secret values.
- Webhook automations are accepted only through configured automation definitions and should use the webhook secret header.
- Purchases, trades, tax advice, self-extension, network automation, and device control are future high-risk domains with explicit blocked policy classes. They cannot execute until a connector deliberately enables the class with verifier coverage, approval checkpoints, and audit traces.
- Public HTTPS is deferred to a later deployment layer behind a reverse proxy or private access layer.
- Model/provider behavior is documented in the model-provider guide and routing API sections.
- Operator dashboard response shapes are summarized in
docs/architecture/operator-contracts.md; headless agent boundaries are documented indocs/architecture/headless-agent-client.md.