@chusky/sdk 0.1.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -10
- package/README.md +26 -5
- package/dist/client.d.ts +298 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +254 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +615 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/widget.d.ts +25 -0
- package/dist/widget.d.ts.map +1 -0
- package/dist/widget.js +137 -0
- package/dist/widget.js.map +1 -0
- package/docs/api-contract.md +33 -0
- package/docs/budgets.mdx +16 -0
- package/docs/calls.mdx +53 -0
- package/docs/capabilities.mdx +9 -0
- package/docs/company-workspaces.mdx +76 -0
- package/docs/embedded-chat.mdx +76 -0
- package/docs/index.mdx +3 -0
- package/docs/meetings.mdx +73 -0
- package/docs/missions.mdx +129 -0
- package/docs/production.mdx +2 -0
- package/docs.json +15 -0
- package/openapi.yaml +311 -0
- package/package.json +54 -37
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Meetings
|
|
3
|
+
description: Prepare, join, participate in, and leave Recall meetings from the SDK.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Supported platforms
|
|
7
|
+
|
|
8
|
+
The meeting resource supports Recall links for Zoom, Google Meet, Microsoft
|
|
9
|
+
Teams, and Webex. Chusky validates the link and platform before sending
|
|
10
|
+
anything to Recall. Recall's optional shared-screen understanding is available
|
|
11
|
+
only where the deployment and Recall support it.
|
|
12
|
+
|
|
13
|
+
## Configure the representative
|
|
14
|
+
|
|
15
|
+
The meeting profile controls how Chusky participates. It contains the display
|
|
16
|
+
identity, communication guidance, approved knowledge, meeting tools, account
|
|
17
|
+
aliases, and calendar auto-join preference.
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
const profile = await chusky.meetings.updateProfile({
|
|
21
|
+
representativeName: "Chusky",
|
|
22
|
+
organizationName: "Acme Motors",
|
|
23
|
+
role: "sales",
|
|
24
|
+
communicationStyle: "Natural, concise, curious, and helpful.",
|
|
25
|
+
approvedKnowledge: "Only use the approved product and pricing facts.",
|
|
26
|
+
allowedComposioTools: ["GOOGLECALENDAR_CREATE_EVENT"],
|
|
27
|
+
autoJoinCalendar: false,
|
|
28
|
+
});
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Prepare and join
|
|
32
|
+
|
|
33
|
+
Preparation searches the owner's saved relationship/business context and
|
|
34
|
+
returns a private brief. It does not join a meeting. A direct join can receive
|
|
35
|
+
that brief as `clientContext`; a calendar-prepared join uses the opaque
|
|
36
|
+
preparation ID and never requires the caller to re-send the meeting URL.
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
const brief = await chusky.meetings.prepare({
|
|
40
|
+
clientName: "Jordan Lee",
|
|
41
|
+
objective: "Understand whether Acme Motors is a fit for the fleet program.",
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const meeting = await chusky.meetings.join({
|
|
45
|
+
meetingUrl: "https://meet.google.com/example-room",
|
|
46
|
+
title: "Acme Motors fleet discussion",
|
|
47
|
+
interactionMode: "representative",
|
|
48
|
+
clientName: "Jordan Lee",
|
|
49
|
+
objective: "Understand whether Acme Motors is a fit for the fleet program.",
|
|
50
|
+
}, { idempotencyKey: "acme-fleet-meeting-2026-09-15" });
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`joinAt` schedules the Recall bot when the event is at least ten minutes in the
|
|
54
|
+
future. For recurring calendar automation, use the preparation returned by
|
|
55
|
+
`meetings.list()` and call `joinPreparation(preparation.id)`.
|
|
56
|
+
|
|
57
|
+
## Roster, context, and lifecycle
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
const snapshot = await chusky.meetings.get(meeting.id);
|
|
61
|
+
const context = await chusky.meetings.context(meeting.id, "What approved facts are relevant to pricing?");
|
|
62
|
+
await chusky.meetings.leave(meeting.id);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The meeting snapshot includes the provider platform, lifecycle status, mission
|
|
66
|
+
metadata, and safe retention state. Participant roster and outcomes are
|
|
67
|
+
available in `meetings.list()` for the authenticated owner. Meeting context is
|
|
68
|
+
available only for an active representative meeting and contains relevant
|
|
69
|
+
owner-stored facts, not arbitrary private history.
|
|
70
|
+
|
|
71
|
+
Use signed Recall webhooks and durable Redis/QStash in production. A successful
|
|
72
|
+
join request means Chusky accepted and persisted the meeting lifecycle; use
|
|
73
|
+
`get()` or `list()` to observe admission, in-call, ended, and failed states.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Autonomous missions
|
|
3
|
+
description: Run multi-step business work with checkpoints, evidence, recovery, and bounded autonomy.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Missions are the SDK surface for work that must continue beyond one model request. A mission has an objective, an explicit definition of done, dependency-aware steps, budgets, durable events, evidence, and a verification record. It can pause for a timer, provider event, approval, or human input and can be resumed without recreating the work.
|
|
7
|
+
|
|
8
|
+
## Create a mission
|
|
9
|
+
|
|
10
|
+
Keep the definition of done concrete. If you provide steps, the first dependency-free steps may run in parallel; later steps cannot start until their dependencies are completed.
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
const mission = await chusky.missions.create({
|
|
14
|
+
title: "Qualified fintech leads",
|
|
15
|
+
objective: "Find 20 fintech companies matching our ICP and prepare CRM-ready profiles.",
|
|
16
|
+
definitionOfDone: "Every lead has a source URL, qualification reason, duplicate check, and approval-ready CRM payload.",
|
|
17
|
+
verificationMode: "strict",
|
|
18
|
+
requiredEvidence: ["source URL for every lead", "qualification assertion", "deduplication check"],
|
|
19
|
+
steps: [
|
|
20
|
+
{ id: "research", title: "Research companies", objective: "Collect source-backed company facts." },
|
|
21
|
+
{ id: "qualify", title: "Qualify and deduplicate", objective: "Apply the ICP and remove duplicates", dependsOn: ["research"] },
|
|
22
|
+
{ id: "prepare", title: "Prepare CRM payload", objective: "Draft the bounded CRM import", dependsOn: ["qualify"] },
|
|
23
|
+
],
|
|
24
|
+
maxDurationSeconds: 3 * 60 * 60,
|
|
25
|
+
maxSteps: 30,
|
|
26
|
+
maxToolCalls: 100,
|
|
27
|
+
maxCost: 15,
|
|
28
|
+
}, { idempotencyKey: "acme-fintech-leads-2026-09-21" });
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The create call starts durable execution. Use an idempotency key for retries after a network timeout; reusing it with a different body is rejected.
|
|
32
|
+
|
|
33
|
+
## Observe proof, not just status
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
const mission = await chusky.missions.get(missionId);
|
|
37
|
+
const proof = await chusky.missions.proof(missionId);
|
|
38
|
+
const events = await chusky.missions.events(missionId);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`proof()` is a bounded external record: it contains the definition of done, budget consumption, step results, evidence summaries, verification, and recent lifecycle events. It never returns private prompts, provider credentials, or raw connected-app payloads.
|
|
42
|
+
|
|
43
|
+
## Evidence and verification
|
|
44
|
+
|
|
45
|
+
Agents and supervising applications can attach source receipts, tool receipts, artifacts, before/after checks, assertions, or human confirmations. Verification does not invent evidence: strict missions remain unverified until every step is complete and required evidence is satisfied.
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
await chusky.missions.evidence(missionId, {
|
|
49
|
+
stepId: "research",
|
|
50
|
+
evidence: [{
|
|
51
|
+
kind: "source",
|
|
52
|
+
summary: "Company headcount and fintech classification confirmed.",
|
|
53
|
+
source: "https://example.com/company",
|
|
54
|
+
verified: true,
|
|
55
|
+
verifiedBy: "agent",
|
|
56
|
+
}],
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const verified = await chusky.missions.verify(missionId, {
|
|
60
|
+
confidence: 0.92,
|
|
61
|
+
verifiedBy: "system",
|
|
62
|
+
});
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Use the result of `verify()` as the release gate for downstream CRM writes, emails, purchases, or other external actions. Approval and tool policy remain separate safety boundaries.
|
|
66
|
+
|
|
67
|
+
## Waits, recovery, and replanning
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
await chusky.missions.pause(missionId);
|
|
71
|
+
await chusky.missions.resume(missionId);
|
|
72
|
+
await chusky.missions.repair(missionId, {
|
|
73
|
+
reason: "The enrichment provider returned incomplete records.",
|
|
74
|
+
nextAction: "Retry enrichment with the fallback provider.",
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
await chusky.missions.replan(missionId, {
|
|
78
|
+
reason: "The target market changed after the research step.",
|
|
79
|
+
steps: [
|
|
80
|
+
{ id: "research", title: "Research companies", objective: "Refresh source-backed facts." },
|
|
81
|
+
{ id: "qualify", title: "Requalify", objective: "Apply the new ICP", dependsOn: ["research"] },
|
|
82
|
+
],
|
|
83
|
+
});
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
For external providers, configure the mission to wait for a specific provider and event ID from the agent workflow. Resume it with `providerEvent()` when your verified webhook has durably accepted that exact event. For webhook delivery, prefer the signed endpoint `POST /v1/missions/:missionId/events/signed`; never treat an unsigned provider payload as authorization.
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
await chusky.missions.providerEvent(missionId, "stripe", "evt_123");
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Repeated delivery of the same expected event is safe. A mismatched event does not resume the mission.
|
|
93
|
+
|
|
94
|
+
## Context, departments, and outcomes
|
|
95
|
+
|
|
96
|
+
Missions are designed to work with the shared operating layer:
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
const context = await chusky.context.list({ purpose: "sales", query: "ICP" });
|
|
100
|
+
const departments = await chusky.departments.catalog();
|
|
101
|
+
const outcome = await chusky.outcomes.plan("qualified-fintech-leads", {
|
|
102
|
+
"ideal customer profile": "B2B fintech, 50+ employees",
|
|
103
|
+
"target geography": "United Kingdom",
|
|
104
|
+
"lead count": 20,
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Context nodes are owner-scoped, sensitivity-aware, and filtered for expiry/review rules. Department handoffs are typed work packets with explicit objectives, constraints, evidence requirements, and escalation boundaries. Outcome packages turn a business result into a governed plan rather than a vague prompt.
|
|
109
|
+
|
|
110
|
+
## CLI parity
|
|
111
|
+
|
|
112
|
+
The paired CLI exposes the same operational controls without inventing a second runtime:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
/missions
|
|
116
|
+
/missions <mission-id>
|
|
117
|
+
/mission create <title> | <objective> | <definition of done>
|
|
118
|
+
/mission pause|resume|cancel|repair <mission-id>
|
|
119
|
+
/mission proof|events <mission-id>
|
|
120
|
+
/mission evidence <mission-id> <JSON array>
|
|
121
|
+
/mission verify <mission-id> [evidence-id,...]
|
|
122
|
+
/mission replan <mission-id> <reason> | <steps JSON>
|
|
123
|
+
/mission event <mission-id> <provider> <provider-event-id>
|
|
124
|
+
/context [query]
|
|
125
|
+
/departments [catalog|provision|handoff ...]
|
|
126
|
+
/outcomes [slug|plan ...]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Both surfaces use the authenticated owner identity of the API key or paired CLI device. A CLI device cannot inspect another account's missions, context, evidence, departments, or outcomes.
|
package/docs/production.mdx
CHANGED
|
@@ -17,6 +17,8 @@ description: Deploy a reliable Chusky integration.
|
|
|
17
17
|
- Monitor webhook delivery failures, run failures, rate limits, and spend.
|
|
18
18
|
- Rotate project keys and webhook secrets on a schedule or incident.
|
|
19
19
|
- Test duplicate requests, expired approvals, unauthorized IDs, provider outages, and reconnects.
|
|
20
|
+
- For calls, test provider-unavailable responses, redacted call history, direct-call idempotency, and Bland/Twilio configuration separately.
|
|
21
|
+
- For meetings, test direct joins and calendar-prepared joins against an authorized staging meeting for each enabled Recall platform. Verify scheduled joins, cancellation, participant updates, meeting-end reconciliation, and idempotent retries before production use.
|
|
20
22
|
|
|
21
23
|
## Local validation
|
|
22
24
|
|
package/docs.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://mintlify.com/docs.json",
|
|
3
|
+
"name": "Chusky",
|
|
4
|
+
"colors": { "primary": "#111111", "light": "#f7f7f4", "dark": "#111111" },
|
|
5
|
+
"navigation": {
|
|
6
|
+
"tabs": [
|
|
7
|
+
{ "tab": "Documentation", "groups": [
|
|
8
|
+
{ "group": "Start here", "pages": ["docs/index", "docs/quickstart", "docs/concepts"] },
|
|
9
|
+
{ "group": "Build with Chusky", "pages": ["docs/company-workspaces", "docs/missions", "docs/embedded-chat", "docs/calls", "docs/meetings", "docs/streaming", "docs/models", "docs/files", "docs/approvals", "docs/tasks", "docs/policies", "docs/structured-output", "docs/fallbacks", "docs/budgets", "docs/capabilities", "docs/architecture"] },
|
|
10
|
+
{ "group": "Production", "pages": ["docs/webhooks", "docs/security", "docs/errors", "docs/releases", "docs/production"] }
|
|
11
|
+
] },
|
|
12
|
+
{ "tab": "API Reference", "openapi": "openapi.yaml", "pages": ["docs/api-contract"] }
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
package/openapi.yaml
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
openapi: 3.1.0
|
|
2
|
+
info:
|
|
3
|
+
title: Chusky Developer API
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
description: Self-hosted Chusky SDK API. Project/root API keys are server-side only. The first-party web dashboard may authenticate user-scoped resources with its Better Auth session cookie.
|
|
6
|
+
servers:
|
|
7
|
+
- url: https://your-chusky.example/v1
|
|
8
|
+
security:
|
|
9
|
+
- bearerAuth: []
|
|
10
|
+
paths:
|
|
11
|
+
/admin/projects:
|
|
12
|
+
get: { summary: List root-managed developer projects, responses: { '200': { description: OK } } }
|
|
13
|
+
post: { summary: Create a developer project and return its key exactly once, responses: { '201': { description: Created } } }
|
|
14
|
+
/admin/audit-events:
|
|
15
|
+
get: { summary: List root control-plane audit events, responses: { '200': { description: OK } } }
|
|
16
|
+
/admin/projects/{projectId}:
|
|
17
|
+
patch: { summary: Replace scopes for an active project, responses: { '200': { description: Updated } } }
|
|
18
|
+
delete: { summary: Revoke a developer project key, responses: { '204': { description: Revoked } } }
|
|
19
|
+
/admin/projects/{projectId}/rotate-key:
|
|
20
|
+
post: { summary: Replace a project key and return the new value exactly once, responses: { '201': { description: Rotated } } }
|
|
21
|
+
/account/projects:
|
|
22
|
+
get: { summary: List personal projects or projects attached to a verified organization member, responses: { '200': { description: OK } } }
|
|
23
|
+
post: { summary: Create a personal or organization project and return its key exactly once, responses: { '201': { description: Created }, '403': { description: Dashboard session, verified email, or organization admin required }, '409': { description: Active key limit reached } } }
|
|
24
|
+
/account/projects/{projectId}:
|
|
25
|
+
patch: { summary: Replace scopes for the authenticated owner's active project key, responses: { '200': { description: Updated }, '404': { description: Not found } } }
|
|
26
|
+
delete: { summary: Revoke the authenticated owner's project key, responses: { '204': { description: Revoked }, '404': { description: Not found } } }
|
|
27
|
+
/account/projects/{projectId}/rotate-key:
|
|
28
|
+
post: { summary: Rotate the authenticated owner's project key and return it exactly once, responses: { '201': { description: Rotated }, '404': { description: Not found } } }
|
|
29
|
+
/account/projects/{projectId}/company/runs:
|
|
30
|
+
get: { summary: List status-only company run summaries for a workspace owner or admin, responses: { '200': { description: OK }, '404': { description: Not found } } }
|
|
31
|
+
/account/projects/{projectId}/company/audit-events:
|
|
32
|
+
get: { summary: List bounded company project audit events for a workspace owner or admin, responses: { '200': { description: OK }, '404': { description: Not found } } }
|
|
33
|
+
/account/projects/{projectId}/company/usage:
|
|
34
|
+
get: { summary: Read company project usage for a workspace owner or admin, responses: { '200': { description: OK }, '404': { description: Not found } } }
|
|
35
|
+
/account/projects/{projectId}/policy:
|
|
36
|
+
get: { summary: Read an organization project policy as a verified member, responses: { '200': { description: OK }, '404': { description: Not found } } }
|
|
37
|
+
put: { summary: Replace project tool grants and per-run budgets as an owner or admin, responses: { '200': { description: Updated }, '400': { description: Invalid policy }, '404': { description: Not found } } }
|
|
38
|
+
/account/projects/{projectId}/agents:
|
|
39
|
+
get: { summary: List organization project agent profiles as a verified member, responses: { '200': { description: OK }, '404': { description: Not found } } }
|
|
40
|
+
post: { summary: Create a template-based company agent profile as an owner or admin, responses: { '201': { description: Created }, '404': { description: Not found } } }
|
|
41
|
+
/agents/templates:
|
|
42
|
+
get: { summary: List built-in company agent templates, responses: { '200': { description: OK } } }
|
|
43
|
+
/agents:
|
|
44
|
+
get: { summary: List agent profiles belonging to the current project key, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
45
|
+
post: { summary: Create a template-based agent profile within the current project, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Created }, '403': { description: Invalid template or grant } } }
|
|
46
|
+
/agents/{agentId}:
|
|
47
|
+
get: { summary: Get one current-project agent profile, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
48
|
+
patch: { summary: Update a current-project agent profile, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Updated } } }
|
|
49
|
+
delete: { summary: Delete a current-project agent profile, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Deleted } } }
|
|
50
|
+
/account/overview:
|
|
51
|
+
get: { summary: Get the authenticated account overview, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
52
|
+
/account/models:
|
|
53
|
+
get: { summary: List models available to the authenticated account, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
54
|
+
/account/organizations/{organizationId}/branding:
|
|
55
|
+
get: { summary: Get safe workspace branding, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: organizationId, in: path, required: true, schema: { type: string } }], responses: { '200': { description: Branding } } }
|
|
56
|
+
put: { summary: Update safe workspace branding as an owner or admin, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: organizationId, in: path, required: true, schema: { type: string } }], responses: { '200': { description: Updated branding } } }
|
|
57
|
+
/account/preferences:
|
|
58
|
+
get: { summary: Get account model and voice preferences, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Preferences } } }
|
|
59
|
+
patch: { summary: Update account model and voice preferences, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Updated } } }
|
|
60
|
+
/account/voice-options:
|
|
61
|
+
get: { summary: List deployment-supported Flux and Bland voice options, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Voice catalogue and provider availability } } }
|
|
62
|
+
/account/telegram-link:
|
|
63
|
+
post: { summary: Create a Telegram linking code for the account, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Linking code } } }
|
|
64
|
+
/account/calls:
|
|
65
|
+
get: { summary: List account voice calls with redacted destinations, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
66
|
+
post: { summary: Validate and start an outbound voice call, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Started call record } } }
|
|
67
|
+
/meetings:
|
|
68
|
+
get: { summary: List owner-scoped Recall meeting preparations, meetings, participants, and contacts, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
69
|
+
post: { summary: Join or schedule a Recall meeting, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Meeting lifecycle record } } }
|
|
70
|
+
/meetings/prepare:
|
|
71
|
+
post: { summary: Generate a private client-bound meeting brief without joining, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Prepared meeting mission } } }
|
|
72
|
+
/meetings/profile:
|
|
73
|
+
get: { summary: Get the account meeting representative profile, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Profile } } }
|
|
74
|
+
patch: { summary: Update the account meeting representative profile, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Updated profile } } }
|
|
75
|
+
/meetings/preparations/{preparationId}/join:
|
|
76
|
+
post: { summary: Join a verified calendar meeting preparation without returning its URL, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: preparationId, in: path, required: true, schema: { type: string } }], responses: { '201': { description: Meeting lifecycle record } } }
|
|
77
|
+
/meetings/{meetingId}:
|
|
78
|
+
get: { summary: Get one owner-scoped Recall meeting, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: meetingId, in: path, required: true, schema: { type: string } }], responses: { '200': { description: Meeting lifecycle record }, '404': { description: Not found } } }
|
|
79
|
+
/meetings/{meetingId}/leave:
|
|
80
|
+
post: { summary: Ask Recall to leave an owner-scoped meeting, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }, { name: meetingId, in: path, required: true, schema: { type: string } }], responses: { '200': { description: Updated meeting lifecycle record } } }
|
|
81
|
+
/meetings/{meetingId}/context:
|
|
82
|
+
get: { summary: Query the active representative meeting's approved business and relationship context, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: meetingId, in: path, required: true, schema: { type: string } }, { name: query, in: query, required: true, schema: { type: string, maxLength: 500 } }], responses: { '200': { description: Meeting context } } }
|
|
83
|
+
/meetings/contacts/{contactId}:
|
|
84
|
+
delete: { summary: Delete an owner-scoped meeting follow-up contact, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: contactId, in: path, required: true, schema: { type: string } }], responses: { '204': { description: Deleted }, '404': { description: Not found } } }
|
|
85
|
+
/apps:
|
|
86
|
+
get: { summary: List connected app toolkits, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
87
|
+
/apps/{toolkit}/connect:
|
|
88
|
+
post: { summary: Start connecting an app toolkit, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: OAuth connection URL } } }
|
|
89
|
+
/apps/connections:
|
|
90
|
+
get: { summary: List connected Composio accounts, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
91
|
+
/apps/connections/{connectionId}:
|
|
92
|
+
delete: { summary: Disconnect an owned Composio account, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Disconnected } } }
|
|
93
|
+
/triggers:
|
|
94
|
+
get: { summary: List account triggers, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
95
|
+
post: { summary: Create an account trigger, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Created } } }
|
|
96
|
+
/triggers/catalog/toolkits:
|
|
97
|
+
get: { summary: List Composio trigger-capable app toolkits, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
98
|
+
/triggers/catalog/toolkits/{toolkit}:
|
|
99
|
+
get: { summary: List paginated trigger types for an app toolkit, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: toolkit, in: path, required: true, schema: { type: string } }], responses: { '200': { description: OK } } }
|
|
100
|
+
/triggers/{triggerId}:
|
|
101
|
+
patch: { summary: Enable or disable an account trigger, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Updated } } }
|
|
102
|
+
delete: { summary: Delete an account trigger, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Deleted } } }
|
|
103
|
+
/threads:
|
|
104
|
+
get:
|
|
105
|
+
summary: List a user's threads
|
|
106
|
+
parameters: [{ $ref: '#/components/parameters/UserId' }]
|
|
107
|
+
responses: { '200': { description: OK } }
|
|
108
|
+
post:
|
|
109
|
+
summary: Create a thread
|
|
110
|
+
parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }]
|
|
111
|
+
responses: { '201': { description: Created } }
|
|
112
|
+
/threads/{threadId}:
|
|
113
|
+
get: { summary: Get one thread, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
114
|
+
patch: { summary: Update thread metadata, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Updated } } }
|
|
115
|
+
delete: { summary: Delete an idle thread, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Deleted } } }
|
|
116
|
+
/threads/{threadId}/runs:
|
|
117
|
+
get:
|
|
118
|
+
summary: List runs for a thread
|
|
119
|
+
parameters: [{ $ref: '#/components/parameters/UserId' }]
|
|
120
|
+
responses: { '200': { description: Cursor page } }
|
|
121
|
+
post:
|
|
122
|
+
summary: Run Chusky synchronously or queue a durable task with wait=false
|
|
123
|
+
parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }]
|
|
124
|
+
responses: { '201': { description: Created } }
|
|
125
|
+
/threads/{threadId}/runs/stream:
|
|
126
|
+
post:
|
|
127
|
+
summary: Stream an NDJSON agent run
|
|
128
|
+
parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }]
|
|
129
|
+
responses: { '200': { description: NDJSON stream } }
|
|
130
|
+
/threads/{threadId}/runs/{runId}:
|
|
131
|
+
get: { summary: Get a run, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
132
|
+
/threads/{threadId}/runs/{runId}/cancel:
|
|
133
|
+
post: { summary: Cancel a running run, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Cancelled } } }
|
|
134
|
+
/threads/{threadId}/runs/{runId}/resume:
|
|
135
|
+
post: { summary: Resume a failed, cancelled, or approval-paused run as a new durable run, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Resumed } } }
|
|
136
|
+
/threads/{threadId}/runs/{runId}/events:
|
|
137
|
+
get: { summary: Recover persisted run events, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
138
|
+
/threads/{threadId}/runs/{runId}/trace:
|
|
139
|
+
get: { summary: Inspect the durable model/tool/handoff trace; include_state=true returns the bounded checkpoint, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Durable trace } } }
|
|
140
|
+
/approvals/{approvalId}:
|
|
141
|
+
get: { summary: Get a pending approval, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
142
|
+
post: { summary: Approve or deny then resume safely, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Run result } } }
|
|
143
|
+
/tasks:
|
|
144
|
+
get: { summary: List tasks for an SDK user, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
145
|
+
/tasks/{taskId}:
|
|
146
|
+
get: { summary: Get one task, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
147
|
+
/tasks/{taskId}/retry:
|
|
148
|
+
post: { summary: Retry a failed, blocked, or cancelled task, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Requeued } } }
|
|
149
|
+
/tasks/{taskId}/cancel:
|
|
150
|
+
post: { summary: Cancel a queued or running task, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Cancelled } } }
|
|
151
|
+
/files:
|
|
152
|
+
post: { summary: Create a direct R2 upload URL, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Presigned URL } } }
|
|
153
|
+
/files/{fileId}:
|
|
154
|
+
get: { summary: Create a direct R2 download URL, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Presigned URL } } }
|
|
155
|
+
delete: { summary: Delete an owned R2 object and its file record, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Deleted } } }
|
|
156
|
+
/files/{fileId}/complete:
|
|
157
|
+
post: { summary: Verify an uploaded R2 object before it becomes downloadable, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Verified file } } }
|
|
158
|
+
/audit-events:
|
|
159
|
+
get: { summary: List bounded SDK audit events, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
160
|
+
/company/runs:
|
|
161
|
+
get: { summary: List status-only run summaries aggregated across callers of this company project; requires company:read, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK }, '404': { description: Not a company project } } }
|
|
162
|
+
/company/audit-events:
|
|
163
|
+
get: { summary: List bounded project audit events; requires company:read, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK }, '404': { description: Not a company project } } }
|
|
164
|
+
/company/usage:
|
|
165
|
+
get: { summary: Get monthly completed-run and model-cost totals for this company project; requires company:read, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK }, '404': { description: Not a company project } } }
|
|
166
|
+
/usage:
|
|
167
|
+
get: { summary: Get current SDK-user usage totals, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
168
|
+
/webhooks:
|
|
169
|
+
get: { summary: List webhook subscriptions, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
170
|
+
post: { summary: Create an HTTPS webhook subscription, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Created } } }
|
|
171
|
+
/webhooks/{webhookId}:
|
|
172
|
+
patch: { summary: Enable or disable a webhook subscription, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Updated } } }
|
|
173
|
+
delete: { summary: Disable a webhook subscription, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Disabled } } }
|
|
174
|
+
/webhooks/{webhookId}/deliveries:
|
|
175
|
+
get: { summary: List bounded delivery attempts for a subscription, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
176
|
+
/webhooks/{webhookId}/deliveries/{deliveryId}/retry:
|
|
177
|
+
post: { summary: Requeue a failed webhook delivery, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Requeued } } }
|
|
178
|
+
/approvals:
|
|
179
|
+
get: { summary: List pending approvals for the SDK user, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
180
|
+
/tools:
|
|
181
|
+
get: { summary: List native and connected Composio tools, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
182
|
+
/tools/{slug}:
|
|
183
|
+
get: { summary: Get one tool by exact slug, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
184
|
+
/skills:
|
|
185
|
+
get: { summary: Search the trusted project skill catalogue, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
186
|
+
/skills/{name}/files:
|
|
187
|
+
get: { summary: List all files bundled in a skill, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
188
|
+
/skills/{name}/files/read:
|
|
189
|
+
get: { summary: Read a bounded text file from a skill, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
190
|
+
/artifacts:
|
|
191
|
+
get: { summary: List durable Daytona artifacts, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
192
|
+
/artifacts/{id}:
|
|
193
|
+
get: { summary: Get an artifact record, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
194
|
+
delete: { summary: Delete an owned artifact record, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Deleted } } }
|
|
195
|
+
/artifacts/{id}/download:
|
|
196
|
+
get: { summary: Download an artifact from the persistent Daytona workspace, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Binary artifact bytes } } }
|
|
197
|
+
/videos:
|
|
198
|
+
get: { summary: List video generation jobs, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
199
|
+
post: { summary: Queue a durable video generation job, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '202': { description: Queued } } }
|
|
200
|
+
/videos/{id}:
|
|
201
|
+
get: { summary: Get video job status, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
202
|
+
/videos/{id}/cancel:
|
|
203
|
+
post: { summary: Cancel a queued video job, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Cancelled } } }
|
|
204
|
+
/workers:
|
|
205
|
+
get: { summary: List durable sub-agent delegations, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
206
|
+
post: { summary: Create a typed durable sub-agent delegation under Chusky supervision, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '202': { description: Queued } } }
|
|
207
|
+
/workers/{id}:
|
|
208
|
+
get: { summary: Get a sub-agent delegation and its contract, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
209
|
+
/workers/{id}/cancel:
|
|
210
|
+
post: { summary: Cancel a sub-agent delegation, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Cancelled } } }
|
|
211
|
+
/channels:
|
|
212
|
+
get: { summary: List verified channel connections, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
213
|
+
/channels/link-code:
|
|
214
|
+
post: { summary: Create a one-time link code for Slack, WhatsApp, or Sendblue, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Link instructions } } }
|
|
215
|
+
/channels/{provider}/{identityId}:
|
|
216
|
+
patch: { summary: Enable or disable proactive delivery for a linked channel, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Updated } } }
|
|
217
|
+
delete: { summary: Unlink an owned channel identity, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Unlinked } } }
|
|
218
|
+
/devices:
|
|
219
|
+
get: { summary: List active CLI devices without bearer tokens, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
220
|
+
/devices/{deviceId}:
|
|
221
|
+
delete: { summary: Revoke an owned CLI device, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Revoked } } }
|
|
222
|
+
/reminders:
|
|
223
|
+
get: { summary: List one-time reminders, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
224
|
+
post: { summary: Schedule a one-time reminder, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Scheduled } } }
|
|
225
|
+
/reminders/{id}:
|
|
226
|
+
delete: { summary: Cancel an owned reminder, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Cancelled } } }
|
|
227
|
+
/reminders/{id}/pause:
|
|
228
|
+
post: { summary: Pause an owned reminder, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Paused } } }
|
|
229
|
+
/reminders/{id}/resume:
|
|
230
|
+
post: { summary: Resume an owned reminder, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Resumed } } }
|
|
231
|
+
/reminders/{id}/run:
|
|
232
|
+
post: { summary: Queue an immediate reminder execution, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '202': { description: Queued } } }
|
|
233
|
+
/jobs:
|
|
234
|
+
get: { summary: List recurring schedules, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
235
|
+
post: { summary: Create a recurring QStash schedule, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Scheduled } } }
|
|
236
|
+
/jobs/{id}:
|
|
237
|
+
delete: { summary: Cancel an owned recurring schedule, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Cancelled } } }
|
|
238
|
+
/jobs/{id}/pause:
|
|
239
|
+
post: { summary: Pause an owned recurring schedule, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Paused } } }
|
|
240
|
+
/jobs/{id}/resume:
|
|
241
|
+
post: { summary: Resume an owned recurring schedule, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '200': { description: Resumed } } }
|
|
242
|
+
/jobs/{id}/run:
|
|
243
|
+
post: { summary: Queue an immediate recurring-job execution, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '202': { description: Queued } } }
|
|
244
|
+
/jobs/{id}/occurrences:
|
|
245
|
+
get: { summary: List owner-scoped recurring-job occurrences, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: limit, in: query, schema: { type: integer, minimum: 1, maximum: 100 } }], responses: { '200': { description: Occurrence history } } }
|
|
246
|
+
/missions:
|
|
247
|
+
get: { summary: List owner-scoped autonomous missions, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Mission records } } }
|
|
248
|
+
post: { summary: Create and start a durable dependency-aware mission, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Mission started } } }
|
|
249
|
+
/missions/{missionId}:
|
|
250
|
+
get: { summary: Get an autonomous mission, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Mission record } } }
|
|
251
|
+
/missions/{missionId}/events:
|
|
252
|
+
get: { summary: List mission lifecycle events, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Mission events } } }
|
|
253
|
+
post: { summary: Resume a mission for its exact expected provider event, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '202': { description: Continuation queued } } }
|
|
254
|
+
/missions/{missionId}/events/signed:
|
|
255
|
+
post: { summary: Verify and ingest a signed provider event for a mission, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '202': { description: Continuation queued } } }
|
|
256
|
+
/missions/{missionId}/proof:
|
|
257
|
+
get: { summary: Get bounded mission proof with budget, evidence, and verification, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Mission proof } } }
|
|
258
|
+
/missions/{missionId}/evidence:
|
|
259
|
+
post: { summary: Attach verified evidence records to a mission, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Updated mission } } }
|
|
260
|
+
/missions/{missionId}/verify:
|
|
261
|
+
post: { summary: Verify a mission definition of done, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Verification result } } }
|
|
262
|
+
/missions/{missionId}/repair:
|
|
263
|
+
post: { summary: Move a mission into an explicit repair state, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Repair state } } }
|
|
264
|
+
/missions/{missionId}/pause:
|
|
265
|
+
post: { summary: Pause a mission and cancel active slices, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Paused mission } } }
|
|
266
|
+
/missions/{missionId}/resume:
|
|
267
|
+
post: { summary: Resume a paused, blocked, or failed mission, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Resumed mission } } }
|
|
268
|
+
/missions/{missionId}/replan:
|
|
269
|
+
post: { summary: Replace the unfinished portion of a mission plan while preserving completed work, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Replanned mission } } }
|
|
270
|
+
/missions/{missionId}/steps/{stepId}/complete:
|
|
271
|
+
post: { summary: Complete the currently executable mission step, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }, { name: stepId, in: path, required: true, schema: { type: string } }], responses: { '200': { description: Updated mission } } }
|
|
272
|
+
/missions/{missionId}/cancel:
|
|
273
|
+
post: { summary: Cancel a mission and its active tasks, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Cancelled mission } } }
|
|
274
|
+
/context:
|
|
275
|
+
get: { summary: Select owner-scoped operating context, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Context nodes and prompt projection } } }
|
|
276
|
+
post: { summary: Save a sensitivity-aware context node, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Context node } } }
|
|
277
|
+
/departments/catalog:
|
|
278
|
+
get: { summary: List supported department operating templates, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Department catalogue } } }
|
|
279
|
+
/departments:
|
|
280
|
+
get: { summary: List owner department spaces, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Department spaces } } }
|
|
281
|
+
post: { summary: Provision a department space, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Department space } } }
|
|
282
|
+
/departments/{department}/handoffs:
|
|
283
|
+
post: { summary: Create a typed department work packet, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: department, in: path, required: true, schema: { type: string } }], responses: { '201': { description: Handoff packet } } }
|
|
284
|
+
/outcomes:
|
|
285
|
+
get: { summary: List governed business outcome packages, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Outcome packages } } }
|
|
286
|
+
/outcomes/{slug}:
|
|
287
|
+
get: { summary: Get one business outcome package, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: slug, in: path, required: true, schema: { type: string } }], responses: { '200': { description: Outcome package } } }
|
|
288
|
+
/outcomes/{slug}/plan:
|
|
289
|
+
post: { summary: Plan a governed outcome from supplied business inputs, parameters: [{ $ref: '#/components/parameters/UserId' }, { name: slug, in: path, required: true, schema: { type: string } }], responses: { '200': { description: Outcome plan } } }
|
|
290
|
+
/scratchpad:
|
|
291
|
+
get: { summary: Search private scratchpad notes, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
292
|
+
delete: { summary: Clear private scratchpad notes, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Cleared } } }
|
|
293
|
+
/scratchpad/{key}:
|
|
294
|
+
put: { summary: Write a private scratchpad note, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Updated } } }
|
|
295
|
+
delete: { summary: Delete a private scratchpad note, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Deleted } } }
|
|
296
|
+
/memory:
|
|
297
|
+
get: { summary: Search explicit structured memory, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
298
|
+
post: { summary: Save an explicit structured memory fact, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Saved } } }
|
|
299
|
+
/memory/{id}:
|
|
300
|
+
delete: { summary: Forget an owned memory fact, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '204': { description: Deleted } } }
|
|
301
|
+
/deliveries:
|
|
302
|
+
get: { summary: List outbound channel delivery receipts, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
303
|
+
/activity:
|
|
304
|
+
get: { summary: Get a bounded activity feed for polling dashboards, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
|
|
305
|
+
components:
|
|
306
|
+
securitySchemes:
|
|
307
|
+
bearerAuth: { type: http, scheme: bearer }
|
|
308
|
+
parameters:
|
|
309
|
+
UserId: { name: X-Chusky-User-Id, in: header, required: true, schema: { type: string, maxLength: 200 } }
|
|
310
|
+
IdempotencyKey: { name: Idempotency-Key, in: header, required: false, schema: { type: string, maxLength: 255 } }
|
|
311
|
+
MissionId: { name: missionId, in: path, required: true, schema: { type: string, pattern: '^mis_[A-Za-z0-9_-]+$' } }
|