@chusky/sdk 1.8.1 → 1.9.1

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/openapi.yaml CHANGED
@@ -107,10 +107,12 @@ paths:
107
107
  get: { summary: List account voice calls with redacted destinations, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
108
108
  post: { summary: Validate and start an outbound voice call, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Started call record } } }
109
109
  /meetings:
110
- get: { summary: List owner-scoped Recall meeting preparations, meetings, participants, and contacts, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
110
+ get: { summary: List owner-scoped Recall meeting rooms, preparations, meetings, participants, and contacts, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: OK } } }
111
111
  post: { summary: Join or schedule a Recall meeting, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Meeting lifecycle record } } }
112
112
  /meetings/prepare:
113
113
  post: { summary: Generate a private client-bound meeting brief without joining, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Prepared meeting mission } } }
114
+ /meetings/stream:
115
+ get: { summary: Stream owner-scoped meeting workspace snapshots over Server-Sent Events, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: text/event-stream meeting snapshots } } }
114
116
  /meetings/profile:
115
117
  get: { summary: Get the account meeting representative profile, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Profile } } }
116
118
  patch: { summary: Update the account meeting representative profile, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Updated profile } } }
@@ -158,7 +160,7 @@ paths:
158
160
  /triggers/{triggerId}:
159
161
  patch:
160
162
  summary: Enable, disable, or update the owner-authored instructions for a trigger
161
- parameters: [{ name: triggerId, in: path, required: true, schema: { type: string } }, { $ref: '#/components/parameters/UserId' }]
163
+ parameters: [{ name: triggerId, in: path, required: true, schema: { type: string } }, { $ref: '#/components/parameters/UserId' }]
162
164
  requestBody:
163
165
  required: true
164
166
  content:
@@ -322,9 +324,36 @@ paths:
322
324
  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 } } }
323
325
  /missions:
324
326
  get: { summary: List owner-scoped autonomous missions, parameters: [{ $ref: '#/components/parameters/UserId' }], responses: { '200': { description: Mission records } } }
325
- post: { summary: Create and start a durable dependency-aware mission, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }], responses: { '201': { description: Mission started } } }
327
+ post:
328
+ summary: Create and start a durable dependency-aware mission
329
+ parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/IdempotencyKey' }]
330
+ requestBody:
331
+ required: true
332
+ content:
333
+ application/json:
334
+ schema:
335
+ type: object
336
+ required: [title, objective, definitionOfDone]
337
+ properties:
338
+ title: { type: string, maxLength: 240 }
339
+ objective: { type: string, maxLength: 8000 }
340
+ definitionOfDone: { type: string, maxLength: 4000 }
341
+ maxDurationSeconds: { type: integer, minimum: 60, maximum: 2592000 }
342
+ durationMode: { type: string, enum: [active, wall_clock], default: active }
343
+ maxLifetimeSeconds: { type: integer, minimum: 60, maximum: 2592000, description: Absolute elapsed-time limit from start including waits; active default is 14 days. }
344
+ automaticExtensionSeconds: { type: integer, minimum: 0, maximum: 3600, default: 0 }
345
+ maxAutomaticExtensions: { type: integer, minimum: 0, maximum: 10, default: 0 }
346
+ maxSteps: { type: integer, minimum: 1, maximum: 1000 }
347
+ maxSlices: { type: integer, minimum: 1, maximum: 100000 }
348
+ maxToolCalls: { type: integer, minimum: 1, maximum: 10000 }
349
+ maxCost: { type: number, minimum: 0, maximum: 10000 }
350
+ workSchedule: { $ref: '#/components/schemas/MissionWorkSchedule' }
351
+ budgetCeiling: { $ref: '#/components/schemas/MissionBudgetCeiling' }
352
+ responses: { '201': { description: Mission started with persisted timing and bounded extension usage } }
326
353
  /missions/{missionId}:
327
354
  get: { summary: Get an autonomous mission, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Mission record } } }
355
+ /missions/{missionId}/doctor:
356
+ get: { summary: Explain the current durable mission state and exact safe next action, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Bounded read-only mission diagnosis } } }
328
357
  /missions/{missionId}/events:
329
358
  get: { summary: List mission lifecycle events, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Mission events } } }
330
359
  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 } } }
@@ -342,6 +371,20 @@ paths:
342
371
  post: { summary: Pause a mission and cancel active slices, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Paused mission } } }
343
372
  /missions/{missionId}/resume:
344
373
  post: { summary: Resume a paused, blocked, or failed mission, parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }], responses: { '200': { description: Resumed mission } } }
374
+ /missions/{missionId}/control:
375
+ post:
376
+ summary: Adjust an unfinished mission budget or work schedule within its owner-saved ceiling
377
+ parameters: [{ $ref: '#/components/parameters/UserId' }, { $ref: '#/components/parameters/MissionId' }]
378
+ requestBody:
379
+ required: true
380
+ content:
381
+ application/json:
382
+ schema:
383
+ type: object
384
+ properties:
385
+ budget: { $ref: '#/components/schemas/MissionBudgetCeiling' }
386
+ workSchedule: { $ref: '#/components/schemas/MissionWorkSchedule' }
387
+ responses: { '200': { description: Updated mission policy } }
345
388
  /missions/{missionId}/replan:
346
389
  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 } } }
347
390
  /missions/{missionId}/steps/{stepId}/complete:
@@ -518,6 +561,25 @@ components:
518
561
  securitySchemes:
519
562
  bearerAuth: { type: http, scheme: bearer }
520
563
  schemas:
564
+ MissionBudgetCeiling:
565
+ type: object
566
+ additionalProperties: false
567
+ properties:
568
+ maxDurationSeconds: { type: integer, minimum: 60, maximum: 2592000 }
569
+ maxSteps: { type: integer, minimum: 1, maximum: 1000 }
570
+ maxSlices: { type: integer, minimum: 1, maximum: 100000 }
571
+ maxToolCalls: { type: integer, minimum: 1, maximum: 10000 }
572
+ maxCost: { type: number, minimum: 0, maximum: 10000 }
573
+ MissionWorkSchedule:
574
+ type: object
575
+ additionalProperties: false
576
+ required: [timezone, windowStart, windowEnd, dailyBudgetSeconds, cadenceSeconds]
577
+ properties:
578
+ timezone: { type: string, maxLength: 100 }
579
+ windowStart: { type: string, pattern: '^(?:[01]\d|2[0-3]):[0-5]\d$' }
580
+ windowEnd: { type: string, pattern: '^(?:[01]\d|2[0-3]):[0-5]\d$' }
581
+ dailyBudgetSeconds: { type: integer, minimum: 60, maximum: 86400 }
582
+ cadenceSeconds: { type: integer, minimum: 60, maximum: 86400 }
521
583
  Compensation:
522
584
  type: object
523
585
  required: [id, ownerId, originalActionId, provider, objective, status, attempts, maxAttempts, idempotencyKey, createdAt, updatedAt]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chusky/sdk",
3
- "version": "1.8.1",
3
+ "version": "1.9.1",
4
4
  "description": "TypeScript SDK for Chusky's developer API.",
5
5
  "license": "MIT",
6
6
  "repository": {