@cat-factory/mcp-server 0.9.0 → 0.11.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.
@@ -291,9 +291,31 @@ export const CAT_FACTORY_TOOLS = [
291
291
  readOnly: false,
292
292
  description: 'Answer an agent-raised decision\n\nAnswer a question an agent raised mid-work. Resolving RE-RUNS the asking step with the choice folded in, rather than advancing past it. The choice is taken verbatim, so it may be one of the offered options or a steer of your own. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/questions/{decisionId}/answer` (operation `resolvePublicRunAgentDecision`).',
293
293
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "decisionId": { "type": "string", "description": "Path parameter `decisionId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "minLength": 1, "maxLength": 4000 } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "decisionId", "body"] },
294
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
294
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
295
295
  invoke: (client, args) => client.decisions.answerAgentDecision(str(args, 'runId'), str(args, 'decisionId'), args.body),
296
296
  },
297
+ {
298
+ name: 'decisions_answer_follow_up',
299
+ title: 'Answer a follow-up question',
300
+ group: 'decisions',
301
+ operationId: 'answerPublicRunFollowUp',
302
+ readOnly: false,
303
+ description: 'Answer a follow-up question\n\nAnswer one `question` item the Coder raised mid-run; the answer steers its next pass. Refused for a `follow_up` item, which is filed, sent back or dismissed instead. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/follow-ups/items/{itemId}/answer` (operation `answerPublicRunFollowUp`).',
304
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "answer": { "type": "string", "minLength": 1, "maxLength": 4000 } }, "required": ["answer"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "itemId", "body"] },
305
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
306
+ invoke: (client, args) => client.decisions.answerFollowUp(str(args, 'runId'), str(args, 'itemId'), args.body),
307
+ },
308
+ {
309
+ name: 'decisions_answer_interview_question',
310
+ title: 'Answer an interview question',
311
+ group: 'decisions',
312
+ operationId: 'answerPublicRunInterview',
313
+ readOnly: false,
314
+ description: 'Answer an interview question\n\nRecord an answer to one question the parked interviewer asked. Does NOT resume the run: answer the batch, then `continue` or `proceed`. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/interview/answer` (operation `answerPublicRunInterview`).',
315
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "answer": { "type": "string", "maxLength": 2000 }, "questionId": { "type": "string", "minLength": 1, "maxLength": 80 } }, "required": ["answer", "questionId"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
316
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
317
+ invoke: (client, args) => client.decisions.answerInterviewQuestion(str(args, 'runId'), args.body),
318
+ },
297
319
  {
298
320
  name: 'decisions_approve_step',
299
321
  title: 'Approve a parked step',
@@ -302,7 +324,7 @@ export const CAT_FACTORY_TOOLS = [
302
324
  readOnly: false,
303
325
  description: 'Approve a parked step\n\nApprove the proposal a gated step is holding up, optionally replacing it with an edited one (the edit is what flows to every downstream step), and advance the run. The `approvalId` comes from the run\'s decision list; passing it back is what makes a racing app user and a racing integration resolve the same gate. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/approvals/{approvalId}/approve` (operation `approvePublicRunStep`).',
304
326
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "approvalId": { "type": "string", "description": "Path parameter `approvalId`." }, "body": { "type": "object", "properties": { "proposal": { "type": "string", "maxLength": 50000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "approvalId", "body"] },
305
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
327
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
306
328
  invoke: (client, args) => client.decisions.approveStep(str(args, 'runId'), str(args, 'approvalId'), args.body),
307
329
  },
308
330
  {
@@ -313,7 +335,7 @@ export const CAT_FACTORY_TOOLS = [
313
335
  readOnly: false,
314
336
  description: 'Approve a visual-confirmation gate\n\nApprove the captured screenshots against the reference designs and advance the run. The images themselves are not readable over this API — the decision carries only artifact ids — so approving on the projection alone approves screenshots you have not seen. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/visual-confirmation/approve` (operation `approvePublicRunVisualConfirm`).',
315
337
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
316
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
338
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
317
339
  invoke: (client, args) => client.decisions.approveVisualConfirmation(str(args, 'runId')),
318
340
  },
319
341
  {
@@ -324,7 +346,7 @@ export const CAT_FACTORY_TOOLS = [
324
346
  readOnly: false,
325
347
  description: 'Challenge a PR review finding\n\nDispatch a read-only investigator to re-examine one finding against the full source, optionally with a specific concern. It upholds, strengthens or retracts the finding, and the review re-parks carrying the verdict. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/pr-review/findings/{findingId}/challenge` (operation `challengePublicRunPrReviewFinding`).',
326
348
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "findingId": { "type": "string", "description": "Path parameter `findingId`." }, "body": { "type": "object", "properties": { "question": { "type": "string", "maxLength": 4000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "findingId", "body"] },
327
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
349
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
328
350
  invoke: (client, args) => client.decisions.challengePrReviewFinding(str(args, 'runId'), str(args, 'findingId'), args.body),
329
351
  },
330
352
  {
@@ -335,7 +357,7 @@ export const CAT_FACTORY_TOOLS = [
335
357
  readOnly: false,
336
358
  description: 'Choose an implementation approach\n\nPick one of the proposed implementation forks (by id) or submit your own approach. The Coder then runs with the choice folded in as a binding directive. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/fork/choose` (operation `choosePublicRunFork`).',
337
359
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "custom": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "forkId": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
338
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
360
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
339
361
  invoke: (client, args) => client.decisions.chooseFork(str(args, 'runId'), args.body),
340
362
  },
341
363
  {
@@ -346,9 +368,31 @@ export const CAT_FACTORY_TOOLS = [
346
368
  readOnly: false,
347
369
  description: 'Confirm a human-test gate\n\nConfirm the change works in the ephemeral environment: it is torn down and the run advances. The decision carries the environment URL to exercise; confirming without exercising it approves untested work. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/human-test/confirm` (operation `confirmPublicRunHumanTest`).',
348
370
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
349
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
371
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
350
372
  invoke: (client, args) => client.decisions.confirmHumanTest(str(args, 'runId')),
351
373
  },
374
+ {
375
+ name: 'decisions_continue_interview',
376
+ title: 'Continue a parked interview',
377
+ group: 'decisions',
378
+ operationId: 'continuePublicRunInterview',
379
+ readOnly: false,
380
+ description: 'Continue a parked interview\n\nSubmit the recorded answers and resume: the interviewer runs again and may ask follow-up questions. ASYNCHRONOUS: the pass runs in the durable driver, so the next round arrives on a later read of the decision list. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/interview/continue` (operation `continuePublicRunInterview`).',
381
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
382
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
383
+ invoke: (client, args) => client.decisions.continueInterview(str(args, 'runId')),
384
+ },
385
+ {
386
+ name: 'decisions_dismiss_follow_up',
387
+ title: 'Dismiss a follow-up item',
388
+ group: 'decisions',
389
+ operationId: 'dismissPublicRunFollowUp',
390
+ readOnly: false,
391
+ description: 'Dismiss a follow-up item\n\nWave one item off without acting on it. Valid for either item kind, and (like every other verb here) releases the park once it is the last undecided item. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/follow-ups/items/{itemId}/dismiss` (operation `dismissPublicRunFollowUp`).',
392
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." } }, "additionalProperties": false, "required": ["runId", "itemId"] },
393
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
394
+ invoke: (client, args) => client.decisions.dismissFollowUp(str(args, 'runId'), str(args, 'itemId')),
395
+ },
352
396
  {
353
397
  name: 'decisions_dismiss_pr_review_finding',
354
398
  title: 'Dismiss a PR review finding',
@@ -357,9 +401,20 @@ export const CAT_FACTORY_TOOLS = [
357
401
  readOnly: false,
358
402
  description: 'Dismiss a PR review finding\n\nDrop one finding from the parked review entirely. Curation rather than a resolution: the run stays parked. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/pr-review/findings/{findingId}/dismiss` (operation `dismissPublicRunPrReviewFinding`).',
359
403
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "findingId": { "type": "string", "description": "Path parameter `findingId`." } }, "additionalProperties": false, "required": ["runId", "findingId"] },
360
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
404
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
361
405
  invoke: (client, args) => client.decisions.dismissPrReviewFinding(str(args, 'runId'), str(args, 'findingId')),
362
406
  },
407
+ {
408
+ name: 'decisions_file_follow_up',
409
+ title: 'File a follow-up item as an issue',
410
+ group: 'decisions',
411
+ operationId: 'filePublicRunFollowUp',
412
+ readOnly: false,
413
+ description: 'File a follow-up item as an issue\n\nFile one `follow_up` item on the workspace\'s issue tracker, recording the ticket ref on the item. Refused for a `question` item, and for a workspace with no tracker connected. Creating the issue is not idempotent, so a retry after a partial failure files a second one. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/follow-ups/items/{itemId}/file` (operation `filePublicRunFollowUp`).',
414
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." } }, "additionalProperties": false, "required": ["runId", "itemId"] },
415
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
416
+ invoke: (client, args) => client.decisions.fileFollowUp(str(args, 'runId'), str(args, 'itemId')),
417
+ },
363
418
  {
364
419
  name: 'decisions_incorporate',
365
420
  title: 'Incorporate the answers',
@@ -368,7 +423,7 @@ export const CAT_FACTORY_TOOLS = [
368
423
  readOnly: false,
369
424
  description: 'Incorporate the answers\n\nFold the recorded answers into one standardized requirements document. Asynchronous — the run re-reviews in the background, so the response shows the review `incorporating`. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/requirements/incorporate` (operation `incorporatePublicRunRequirements`).',
370
425
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "feedback": { "type": "string", "maxLength": 4000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
371
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
426
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
372
427
  invoke: (client, args) => client.decisions.incorporate(str(args, 'runId'), args.body),
373
428
  },
374
429
  {
@@ -379,7 +434,7 @@ export const CAT_FACTORY_TOOLS = [
379
434
  readOnly: false,
380
435
  description: 'Incorporate brainstorm picks\n\nFold the picks into one converged direction. ASYNCHRONOUS: the response shows the session `incorporating` while the durable driver folds and re-runs in the background. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/incorporate` (operation `incorporatePublicRunBrainstorm`).',
381
436
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." }, "body": { "type": "object", "properties": { "feedback": { "type": "string", "maxLength": 4000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "stage", "body"] },
382
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
437
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
383
438
  invoke: (client, args) => client.decisions.incorporateBrainstorm(str(args, 'runId'), str(args, 'stage'), args.body),
384
439
  },
385
440
  {
@@ -390,7 +445,7 @@ export const CAT_FACTORY_TOOLS = [
390
445
  readOnly: false,
391
446
  description: 'Incorporate clarity answers\n\nFold the recorded answers into one standardized bug report. ASYNCHRONOUS: the response shows the review `incorporating` while the durable driver folds and re-reviews in the background. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/incorporate` (operation `incorporatePublicRunClarity`).',
392
447
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "feedback": { "type": "string", "maxLength": 4000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
393
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
448
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
394
449
  invoke: (client, args) => client.decisions.incorporateClarity(str(args, 'runId'), args.body),
395
450
  },
396
451
  {
@@ -401,7 +456,7 @@ export const CAT_FACTORY_TOOLS = [
401
456
  readOnly: true,
402
457
  description: 'List a run\'s parked decisions\n\nRead what a run is currently asking a human: requirement-review findings (with the stable item ids a reply addresses) and any implementation-fork choice. `parked` is true while the run is blocked awaiting one of them.\n\nCalls `GET /api/v1/runs/{runId}/decisions` (operation `listPublicRunDecisions`).',
403
458
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
404
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
459
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
405
460
  invoke: (client, args) => client.decisions.list(str(args, 'runId')),
406
461
  },
407
462
  {
@@ -412,7 +467,7 @@ export const CAT_FACTORY_TOOLS = [
412
467
  readOnly: false,
413
468
  description: 'Proceed with the current requirements\n\nSettle the requirements phase and advance the parked run (used when nothing is outstanding). Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/requirements/proceed` (operation `proceedPublicRunRequirements`).',
414
469
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
415
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
470
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
416
471
  invoke: (client, args) => client.decisions.proceed(str(args, 'runId')),
417
472
  },
418
473
  {
@@ -423,7 +478,7 @@ export const CAT_FACTORY_TOOLS = [
423
478
  readOnly: false,
424
479
  description: 'Proceed past a brainstorm\n\nSettle the brainstorm with the last converged direction and advance the parked run. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/proceed` (operation `proceedPublicRunBrainstorm`).',
425
480
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." } }, "additionalProperties": false, "required": ["runId", "stage"] },
426
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
481
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
427
482
  invoke: (client, args) => client.decisions.proceedBrainstorm(str(args, 'runId'), str(args, 'stage')),
428
483
  },
429
484
  {
@@ -434,9 +489,20 @@ export const CAT_FACTORY_TOOLS = [
434
489
  readOnly: false,
435
490
  description: 'Proceed past the clarity review\n\nSettle the clarity phase with the last clarified report and advance the parked run. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/proceed` (operation `proceedPublicRunClarity`).',
436
491
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
437
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
492
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
438
493
  invoke: (client, args) => client.decisions.proceedClarity(str(args, 'runId')),
439
494
  },
495
+ {
496
+ name: 'decisions_proceed_interview',
497
+ title: 'Proceed past a parked interview',
498
+ group: 'decisions',
499
+ operationId: 'proceedPublicRunInterview',
500
+ readOnly: false,
501
+ description: 'Proceed past a parked interview\n\nStop the questions: the interviewer converges on the answers so far and the run advances. Also asynchronous, since converging is itself an interviewer pass. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/interview/proceed` (operation `proceedPublicRunInterview`).',
502
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
503
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
504
+ invoke: (client, args) => client.decisions.proceedInterview(str(args, 'runId')),
505
+ },
440
506
  {
441
507
  name: 'decisions_reject_step',
442
508
  title: 'Reject a parked step',
@@ -445,7 +511,7 @@ export const CAT_FACTORY_TOOLS = [
445
511
  readOnly: false,
446
512
  description: 'Reject a parked step\n\nReject the gated proposal: the run stops entirely, recording a terminal `rejected` failure the board can retry. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/approvals/{approvalId}/reject` (operation `rejectPublicRunStep`).',
447
513
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "approvalId": { "type": "string", "description": "Path parameter `approvalId`." }, "body": { "type": "object", "properties": { "reason": { "type": "string", "maxLength": 2000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "approvalId", "body"] },
448
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
514
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
449
515
  invoke: (client, args) => client.decisions.rejectStep(str(args, 'runId'), str(args, 'approvalId'), args.body),
450
516
  },
451
517
  {
@@ -456,7 +522,7 @@ export const CAT_FACTORY_TOOLS = [
456
522
  readOnly: false,
457
523
  description: 'Respond to a brainstorm option\n\nPick or steer one of the options the brainstorm agent proposed, for the named stage (`requirements` or `architecture`). A task may hold one live session per stage at once. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/options/{itemId}/reply` (operation `replyPublicRunBrainstormOption`).',
458
524
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "reply": { "type": "string", "minLength": 1, "maxLength": 4000 } }, "required": ["reply"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "stage", "itemId", "body"] },
459
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
525
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
460
526
  invoke: (client, args) => client.decisions.replyToBrainstormOption(str(args, 'runId'), str(args, 'stage'), str(args, 'itemId'), args.body),
461
527
  },
462
528
  {
@@ -467,7 +533,7 @@ export const CAT_FACTORY_TOOLS = [
467
533
  readOnly: false,
468
534
  description: 'Answer a clarity (bug-triage) finding\n\nRecord an answer to one clarity-review finding — the bug-report twin of the requirements loop. Returns the run\'s updated decision list. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/findings/{itemId}/reply` (operation `replyPublicRunClarityFinding`).',
469
535
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "reply": { "type": "string", "minLength": 1, "maxLength": 4000 } }, "required": ["reply"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "itemId", "body"] },
470
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
536
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
471
537
  invoke: (client, args) => client.decisions.replyToClarityFinding(str(args, 'runId'), str(args, 'itemId'), args.body),
472
538
  },
473
539
  {
@@ -478,7 +544,7 @@ export const CAT_FACTORY_TOOLS = [
478
544
  readOnly: false,
479
545
  description: 'Answer a review finding\n\nRecord an answer to one reviewer finding. Returns the run\'s updated decision list. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/requirements/findings/{itemId}/reply` (operation `replyPublicRunFinding`).',
480
546
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "reply": { "type": "string", "minLength": 1, "maxLength": 4000 } }, "required": ["reply"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "itemId", "body"] },
481
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
547
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
482
548
  invoke: (client, args) => client.decisions.replyToFinding(str(args, 'runId'), str(args, 'itemId'), args.body),
483
549
  },
484
550
  {
@@ -489,7 +555,7 @@ export const CAT_FACTORY_TOOLS = [
489
555
  readOnly: false,
490
556
  description: 'Request a fix from a human-test gate\n\nSubmit findings against the tested environment and dispatch a fixer, which commits onto the PR branch before the environment is rebuilt. The findings ARE the fixer prompt, so they cannot be blank. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/human-test/request-fix` (operation `requestPublicRunHumanTestFix`).',
491
557
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "findings": { "type": "string", "minLength": 1, "maxLength": 10000 } }, "required": ["findings"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
492
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
558
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
493
559
  invoke: (client, args) => client.decisions.requestHumanTestFix(str(args, 'runId'), args.body),
494
560
  },
495
561
  {
@@ -500,7 +566,7 @@ export const CAT_FACTORY_TOOLS = [
500
566
  readOnly: false,
501
567
  description: 'Request changes on a parked step\n\nSend the gated step back to re-run with your guidance folded in. Unlike the in-app twin this takes freeform feedback only: anchored per-block comments address source line ranges of a rendered proposal, which a headless caller never rendered. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/approvals/{approvalId}/request-changes` (operation `requestPublicRunStepChanges`).',
502
568
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "approvalId": { "type": "string", "description": "Path parameter `approvalId`." }, "body": { "type": "object", "properties": { "feedback": { "type": "string", "minLength": 1, "maxLength": 10000 } }, "required": ["feedback"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "approvalId", "body"] },
503
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
569
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
504
570
  invoke: (client, args) => client.decisions.requestStepChanges(str(args, 'runId'), str(args, 'approvalId'), args.body),
505
571
  },
506
572
  {
@@ -511,7 +577,7 @@ export const CAT_FACTORY_TOOLS = [
511
577
  readOnly: false,
512
578
  description: 'Request a fix from a visual-confirmation gate\n\nSubmit findings against the captured screenshots and dispatch a fixer. The findings ARE the fixer prompt, so they cannot be blank. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/visual-confirmation/request-fix` (operation `requestPublicRunVisualConfirmFix`).',
513
579
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "findings": { "type": "string", "minLength": 1, "maxLength": 10000 } }, "required": ["findings"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
514
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
580
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
515
581
  invoke: (client, args) => client.decisions.requestVisualConfirmationFix(str(args, 'runId'), args.body),
516
582
  },
517
583
  {
@@ -522,7 +588,7 @@ export const CAT_FACTORY_TOOLS = [
522
588
  readOnly: false,
523
589
  description: 'Re-review the incorporated document\n\nRun one more reviewer pass over the incorporated document. On convergence the parked run advances. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/requirements/re-review` (operation `reReviewPublicRunRequirements`).',
524
590
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
525
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
591
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
526
592
  invoke: (client, args) => client.decisions.reReview(str(args, 'runId')),
527
593
  },
528
594
  {
@@ -533,7 +599,7 @@ export const CAT_FACTORY_TOOLS = [
533
599
  readOnly: false,
534
600
  description: 'Re-run a brainstorm pass\n\nRun one more brainstorm pass against the converged direction. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/re-review` (operation `reReviewPublicRunBrainstorm`).',
535
601
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." } }, "additionalProperties": false, "required": ["runId", "stage"] },
536
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
602
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
537
603
  invoke: (client, args) => client.decisions.reReviewBrainstorm(str(args, 'runId'), str(args, 'stage')),
538
604
  },
539
605
  {
@@ -544,7 +610,7 @@ export const CAT_FACTORY_TOOLS = [
544
610
  readOnly: false,
545
611
  description: 'Re-triage the clarified report\n\nRun one more triage pass over the incorporated bug report. On convergence the parked run advances. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/re-review` (operation `reReviewPublicRunClarity`).',
546
612
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
547
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
613
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
548
614
  invoke: (client, args) => client.decisions.reReviewClarity(str(args, 'runId')),
549
615
  },
550
616
  {
@@ -555,7 +621,7 @@ export const CAT_FACTORY_TOOLS = [
555
621
  readOnly: false,
556
622
  description: 'Resolve a brainstorm at its iteration cap\n\nPick how a brainstorm that exhausted its pass budget proceeds: one more round, proceed with the last converged direction, or stop and reset the task. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/resolve-exceeded` (operation `resolvePublicRunBrainstormExceeded`).',
557
623
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["extra-round", "proceed", "stop-reset"] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "stage", "body"] },
558
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
624
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
559
625
  invoke: (client, args) => client.decisions.resolveBrainstormExceeded(str(args, 'runId'), str(args, 'stage'), args.body),
560
626
  },
561
627
  {
@@ -566,7 +632,7 @@ export const CAT_FACTORY_TOOLS = [
566
632
  readOnly: false,
567
633
  description: 'Resolve a clarity review at its iteration cap\n\nPick how a clarity review that exhausted its pass budget proceeds: one more round, proceed with the last clarified report, or stop and reset the task. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/resolve-exceeded` (operation `resolvePublicRunClarityExceeded`).',
568
634
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["extra-round", "proceed", "stop-reset"] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
569
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
635
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
570
636
  invoke: (client, args) => client.decisions.resolveClarityExceeded(str(args, 'runId'), args.body),
571
637
  },
572
638
  {
@@ -577,7 +643,7 @@ export const CAT_FACTORY_TOOLS = [
577
643
  readOnly: false,
578
644
  description: 'Resolve a review at its iteration cap\n\nPick how a review that exhausted its reviewer-pass budget proceeds: one more round, proceed with the last incorporated document, or stop and reset the task. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/requirements/resolve-exceeded` (operation `resolvePublicRunRequirementsExceeded`).',
579
645
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["extra-round", "proceed", "stop-reset"] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
580
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
646
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
581
647
  invoke: (client, args) => client.decisions.resolveExceeded(str(args, 'runId'), args.body),
582
648
  },
583
649
  {
@@ -588,7 +654,7 @@ export const CAT_FACTORY_TOOLS = [
588
654
  readOnly: false,
589
655
  description: 'Resolve a run parked on the task\'s input check\n\nSettle a run the pre-dispatch input gate parked before its first agent step because the task states nothing an agent could act on. `recheck` re-evaluates the task as it now stands (edit it over `PATCH /api/v1/tasks/{taskId}` first: the fix is verified, not taken on trust) and releases the run only if the blocking findings are gone; a still-blocked verdict comes back as an ordinary 200 with refreshed findings. `proceed` waives the findings, which stay on the run as an `overridden` record. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/input-gate/resolve` (operation `resolvePublicRunInputGate`).',
590
656
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["recheck", "proceed"] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
591
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
657
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
592
658
  invoke: (client, args) => client.decisions.resolveInputGate(str(args, 'runId'), args.body),
593
659
  },
594
660
  {
@@ -599,7 +665,7 @@ export const CAT_FACTORY_TOOLS = [
599
665
  readOnly: false,
600
666
  description: 'Resolve a parked judge verdict\n\nSettle a run parked on a judge verdict: proceed anyway, bounce the producing step for rework, or stop the run. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/judge/resolve` (operation `resolvePublicRunJudge`).',
601
667
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["proceed", "bounce", "stop"] }, "feedback": { "anyOf": [{ "type": "string" }, { "type": "null" }] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
602
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
668
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
603
669
  invoke: (client, args) => client.decisions.resolveJudge(str(args, 'runId'), args.body),
604
670
  },
605
671
  {
@@ -610,7 +676,7 @@ export const CAT_FACTORY_TOOLS = [
610
676
  readOnly: false,
611
677
  description: 'Resolve a parked PR deep review\n\nRecord the curated finding selection and say what to do with it: `finish` completes the read-only review, `fix` hands the selected findings to a fixer that commits onto the reviewed PR branch, `post` publishes them as inline PR review comments. `fix` and `post` need at least one selected finding and act on the real pull request. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/pr-review/resolve` (operation `resolvePublicRunPrReview`).',
612
678
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "action": { "type": "string", "enum": ["finish", "fix", "post"] }, "findingIds": { "type": "array", "items": { "type": "string" } } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
613
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
679
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
614
680
  invoke: (client, args) => client.decisions.resolvePrReview(str(args, 'runId'), args.body),
615
681
  },
616
682
  {
@@ -621,9 +687,20 @@ export const CAT_FACTORY_TOOLS = [
621
687
  readOnly: false,
622
688
  description: 'Resolve a companion gate at its rework cap\n\nPick how a quality companion that spent its automatic rework budget proceeds: one more round, proceed with the output as it stands, or stop and reset the task. A gate in this state reports `exceeded: true` and refuses the plain approve. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/approvals/{approvalId}/resolve-exceeded` (operation `resolvePublicRunStepExceeded`).',
623
689
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "approvalId": { "type": "string", "description": "Path parameter `approvalId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["extra-round", "proceed", "stop-reset"] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "approvalId", "body"] },
624
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
690
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
625
691
  invoke: (client, args) => client.decisions.resolveStepExceeded(str(args, 'runId'), str(args, 'approvalId'), args.body),
626
692
  },
693
+ {
694
+ name: 'decisions_send_back_follow_up',
695
+ title: 'Send a follow-up item back to the Coder',
696
+ group: 'decisions',
697
+ operationId: 'sendBackPublicRunFollowUp',
698
+ readOnly: false,
699
+ description: 'Send a follow-up item back to the Coder\n\nFold one `follow_up` item into another Coder pass (the item records as `queued`). Once every item is decided the run loops the Coder for the ones sent back, within the `maxLoops` budget the decision reports. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/follow-ups/items/{itemId}/send-back` (operation `sendBackPublicRunFollowUp`).',
700
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." } }, "additionalProperties": false, "required": ["runId", "itemId"] },
701
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
702
+ invoke: (client, args) => client.decisions.sendBackFollowUp(str(args, 'runId'), str(args, 'itemId')),
703
+ },
627
704
  {
628
705
  name: 'decisions_set_brainstorm_option_status',
629
706
  title: 'Dismiss or reopen a brainstorm option',
@@ -632,7 +709,7 @@ export const CAT_FACTORY_TOOLS = [
632
709
  readOnly: false,
633
710
  description: 'Dismiss or reopen a brainstorm option\n\nDismiss a proposed option, or reopen one dismissed by mistake. Only `open` options block incorporation. Requires a `decide`-scope key.\n\nCalls `PATCH /api/v1/runs/{runId}/decisions/brainstorm/{stage}/options/{itemId}` (operation `setPublicRunBrainstormOptionStatus`).',
634
711
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "status": { "type": "string", "enum": ["dismissed", "open"] } }, "required": ["status"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "stage", "itemId", "body"] },
635
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
712
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
636
713
  invoke: (client, args) => client.decisions.setBrainstormOptionStatus(str(args, 'runId'), str(args, 'stage'), str(args, 'itemId'), args.body),
637
714
  },
638
715
  {
@@ -643,7 +720,7 @@ export const CAT_FACTORY_TOOLS = [
643
720
  readOnly: false,
644
721
  description: 'Dismiss or reopen a clarity finding\n\nDismiss a clarity finding as not applicable, or reopen one dismissed by mistake. Only `open` findings block incorporation. Requires a `decide`-scope key.\n\nCalls `PATCH /api/v1/runs/{runId}/decisions/clarity/findings/{itemId}` (operation `setPublicRunClarityFindingStatus`).',
645
722
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "status": { "type": "string", "enum": ["dismissed", "open"] } }, "required": ["status"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "itemId", "body"] },
646
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
723
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
647
724
  invoke: (client, args) => client.decisions.setClarityFindingStatus(str(args, 'runId'), str(args, 'itemId'), args.body),
648
725
  },
649
726
  {
@@ -654,7 +731,7 @@ export const CAT_FACTORY_TOOLS = [
654
731
  readOnly: false,
655
732
  description: 'Dismiss or reopen a finding\n\nDismiss a finding as not applicable, or reopen one dismissed by mistake. Requires a `decide`-scope key.\n\nCalls `PATCH /api/v1/runs/{runId}/decisions/requirements/findings/{itemId}` (operation `setPublicRunFindingStatus`).',
656
733
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "status": { "type": "string", "enum": ["dismissed", "open"] } }, "required": ["status"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "itemId", "body"] },
657
- outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
734
+ outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation | follow-ups | interview). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
658
735
  invoke: (client, args) => client.decisions.setFindingStatus(str(args, 'runId'), str(args, 'itemId'), args.body),
659
736
  },
660
737
  {
@@ -756,9 +833,69 @@ export const CAT_FACTORY_TOOLS = [
756
833
  outputSchema: { "type": "object", "properties": { "nextCursor": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "toolCalls": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "args": { "type": "string" }, "argsDropped": { "type": "number" }, "bodies": { "type": "string", "description": "One of: stored, withheld. A newer deployment may report a member not in this list." }, "createdAt": { "type": "number" }, "endedAt": { "type": "number" }, "executionId": { "type": "string" }, "id": { "type": "string" }, "jobId": { "type": "string" }, "ok": { "type": "boolean" }, "result": { "type": "string" }, "resultDropped": { "type": "number" }, "seq": { "type": "number" }, "startedAt": { "type": "number" }, "tool": { "type": "string" }, "workspaceId": { "type": "string" } } } } } },
757
834
  invoke: (client, args) => client.debug.listToolCalls(str(args, 'runId'), pick(args, QUERY_DEBUG_LIST_TOOL_CALLS)),
758
835
  },
836
+ {
837
+ name: 'evidence_get_report',
838
+ title: 'Get a run\'s verification report',
839
+ group: 'evidence',
840
+ operationId: 'getPublicRunReport',
841
+ readOnly: true,
842
+ description: 'Get a run\'s verification report\n\nThe engine’s bundle of CAPTURED FACTS about a run: the CI gate’s verdict and failing checks, the platform’s own run of the service’s lint/test/build commands (with the failing output), the red-then-green reproduction proof for a bugfix, the tester’s structured report, requirement coverage, the throwaway-environment lifecycle, judge verdicts and the merge decision. Byte-for-byte the JSON block the pull-request body carries, composed on read, so it also answers for a run that never opened a pull request. Each section states `reported` or `absent` with a note, so a step that did not run never looks like a step that found nothing.\n\nCalls `GET /api/v1/runs/{runId}/report` (operation `getPublicRunReport`).',
843
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
844
+ outputSchema: { "type": "object", "properties": { "ci": { "type": "object", "properties": { "failingChecks": { "type": "array", "items": { "type": "object", "properties": { "conclusion": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "name": { "type": "string" }, "repo": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "url": { "anyOf": [{ "type": "string" }, { "type": "null" }] } } } }, "fixerAttempts": { "type": "number" }, "headSha": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "maxFixerAttempts": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "status": { "type": "string", "description": "One of: reported, absent. A newer deployment may report a member not in this list." }, "verdict": { "anyOf": [{ "type": "string", "description": "One of: pass, pending, fail. A newer deployment may report a member not in this list." }, { "type": "null" }] } } }, "environments": { "type": "object", "properties": { "entries": { "type": "array", "items": { "type": "object", "properties": { "error": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "frameId": { "type": "string" }, "status": { "type": "string", "description": "One of: ready, failed, skipped. A newer deployment may report a member not in this list." }, "url": { "anyOf": [{ "type": "string" }, { "type": "null" }] } } } }, "evidence": { "type": "object", "properties": { "capturedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "outcomes": { "type": "number" }, "ranAgainst": { "anyOf": [{ "type": "string", "description": "One of: local, ephemeral. A newer deployment may report a member not in this list." }, { "type": "null" }] }, "requirementVerdicts": { "type": "number" }, "screenshots": { "type": "array", "items": { "type": "object", "properties": { "artifactId": { "type": "string" }, "hasReference": { "type": "boolean" }, "url": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "view": { "type": "string" } } } }, "status": { "type": "string", "description": "One of: captured, local, undeclared, absent. A newer deployment may report a member not in this list." }, "url": { "anyOf": [{ "type": "string" }, { "type": "null" }] } } }, "gaps": { "type": "array", "items": { "type": "string" } }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "proof": { "type": "string", "description": "One of: complete, incomplete, not_applicable. A newer deployment may report a member not in this list." }, "status": { "type": "string", "description": "One of: reported, absent. A newer deployment may report a member not in this list." }, "teardown": { "type": "string", "description": "One of: confirmed, unconfirmed, pending, failed, not_applicable. A newer deployment may report a member not in this list." }, "timeline": { "type": "object", "properties": { "gap": { "anyOf": [{ "type": "string", "description": "One of: unwired, unreadable, truncated, not_provisioned. A newer deployment may report a member not in this list." }, { "type": "null" }] }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "provisionFailures": { "type": "number" }, "provisionedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "teardownFailures": { "type": "number" }, "teardownsUnconfirmed": { "type": "number" }, "tornDownAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] } } } } }, "generatedAt": { "type": "number" }, "judges": { "type": "object", "properties": { "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "status": { "type": "string", "description": "One of: reported, absent. A newer deployment may report a member not in this list." }, "verdicts": { "type": "array", "items": { "type": "object", "properties": { "bounces": { "type": "number" }, "disposition": { "anyOf": [{ "type": "string", "description": "One of: pass, park, bounce, fail. A newer deployment may report a member not in this list." }, { "type": "null" }] }, "findings": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "severity": { "type": "string", "description": "One of: low, medium, high, critical. A newer deployment may report a member not in this list." }, "title": { "type": "string" }, "where": { "type": "string" } } } }, "maxBounces": { "type": "number" }, "model": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "rubricName": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "rubricOverridden": { "type": "boolean" }, "score": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "stepKind": { "type": "string" }, "summary": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "threshold": { "anyOf": [{ "type": "number" }, { "type": "null" }] } } } } } }, "merge": { "type": "object", "properties": { "assessment": { "anyOf": [{ "type": "object", "properties": { "complexity": { "type": "number" }, "impact": { "type": "number" }, "rationale": { "type": "string" }, "risk": { "type": "number" } } }, { "type": "null" }] }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "outcome": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "presetName": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "reason": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "status": { "type": "string", "description": "One of: reported, absent. A newer deployment may report a member not in this list." } } }, "observability": { "type": "object", "properties": { "reportUrl": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "runUrl": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "trajectoryUrl": { "anyOf": [{ "type": "string" }, { "type": "null" }] } } }, "reproduction": { "type": "object", "properties": { "alternativeVerification": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "at": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "attempts": { "type": "number" }, "base": { "anyOf": [{ "type": "object", "properties": { "durationMs": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "exitCode": { "type": "number" }, "outputTail": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "passed": { "type": "boolean" }, "setupFailed": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }, "timedOut": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] } } }, { "type": "null" }] }, "command": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "final": { "anyOf": [{ "type": "object", "properties": { "durationMs": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "exitCode": { "type": "number" }, "outputTail": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "passed": { "type": "boolean" }, "setupFailed": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }, "timedOut": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] } } }, { "type": "null" }] }, "maxAttempts": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "observation": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "omittedTestPaths": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "reason": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "status": { "type": "string", "description": "One of: reported, absent. A newer deployment may report a member not in this list." }, "testPaths": { "type": "array", "items": { "type": "string" } }, "verdict": { "anyOf": [{ "type": "string", "description": "One of: reproduced, inconclusive, declared_infeasible. A newer deployment may report a member not in this list." }, { "type": "null" }] } } }, "requirements": { "type": "object", "properties": { "entries": { "type": "array", "items": { "type": "object", "properties": { "criteriaCount": { "type": "number" }, "detail": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "group": { "type": "string" }, "id": { "type": "string" }, "module": { "type": "string" }, "priority": { "type": "string", "description": "One of: must, should, could. A newer deployment may report a member not in this list." }, "state": { "type": "string", "description": "One of: aspirational, established. A newer deployment may report a member not in this list." }, "title": { "type": "string" }, "verdict": { "type": "string", "description": "One of: met, not_met, not_covered. A newer deployment may report a member not in this list." } } } }, "met": { "type": "number" }, "notCovered": { "type": "number" }, "notMet": { "type": "number" }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "regressions": { "type": "number" }, "status": { "type": "string", "description": "One of: reported, absent. A newer deployment may report a member not in this list." }, "total": { "type": "number" } } }, "run": { "type": "object", "properties": { "blockId": { "type": "string" }, "blockTitle": { "type": "string" }, "executionId": { "type": "string" }, "issues": { "type": "array", "items": { "type": "object", "properties": { "externalId": { "type": "string" }, "source": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } } } }, "pipelineId": { "type": "string" }, "pipelineName": { "type": "string" }, "provider": { "anyOf": [{ "type": "string", "description": "One of: github, gitlab. A newer deployment may report a member not in this list." }, { "type": "null" }] }, "repo": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "startedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "steps": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "index": { "type": "number" }, "model": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "state": { "type": "string" } } } } } }, "tests": { "type": "object", "properties": { "concerns": { "type": "array", "items": { "type": "object", "properties": { "severity": { "type": "string" }, "title": { "type": "string" } } } }, "environment": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "fixerAttempts": { "type": "number" }, "greenlight": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }, "maxFixerAttempts": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "outcomes": { "type": "array", "items": { "type": "object", "properties": { "detail": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "name": { "type": "string" }, "status": { "type": "string" } } } }, "status": { "type": "string", "description": "One of: reported, absent. A newer deployment may report a member not in this list." }, "summary": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "tested": { "type": "array", "items": { "type": "string" } } } }, "truncations": { "type": "array", "items": { "type": "string" } }, "validation": { "type": "object", "properties": { "at": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "attempts": { "type": "number" }, "commands": { "type": "array", "items": { "type": "object", "properties": { "command": { "type": "string" }, "durationMs": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "exitCode": { "type": "number" }, "label": { "type": "string" }, "outputTail": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "passed": { "type": "boolean" }, "timedOut": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] } } } }, "maxAttempts": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "note": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "passed": { "anyOf": [{ "type": "boolean" }, { "type": "null" }] }, "status": { "type": "string", "description": "One of: reported, absent. A newer deployment may report a member not in this list." }, "stepKind": { "anyOf": [{ "type": "string" }, { "type": "null" }] } } }, "version": { "type": "number" } } },
845
+ invoke: (client, args) => client.evidence.getReport(str(args, 'runId')),
846
+ },
847
+ {
848
+ name: 'evidence_list_artifacts',
849
+ title: 'List a run\'s captured artifacts',
850
+ group: 'evidence',
851
+ operationId: 'listPublicRunArtifacts',
852
+ readOnly: true,
853
+ description: 'List a run\'s captured artifacts\n\nThe binary artifacts the run captured (UI screenshots) plus the reference images they were reviewed against: id, kind, view, content type, exact byte size and content hash. Unpaged: the capture path caps how many one run may store, so the response size is bounded before the request. Fetch the bytes with the blob endpoint.\n\nCalls `GET /api/v1/runs/{runId}/artifacts` (operation `listPublicRunArtifacts`).',
854
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
855
+ outputSchema: { "type": "object", "properties": { "artifacts": { "type": "array", "items": { "type": "object", "properties": { "artifactId": { "type": "string" }, "byteSize": { "type": "number" }, "contentType": { "type": "string" }, "createdAt": { "type": "number" }, "hash": { "type": "string" }, "kind": { "type": "string", "description": "One of: screenshot, reference. A newer deployment may report a member not in this list." }, "view": { "anyOf": [{ "type": "string" }, { "type": "null" }] } } } } } },
856
+ invoke: (client, args) => client.evidence.listArtifacts(str(args, 'runId')),
857
+ },
858
+ {
859
+ name: 'keys_create',
860
+ title: 'Provision an API key',
861
+ group: 'keys',
862
+ operationId: 'createPublicKey',
863
+ readOnly: false,
864
+ description: 'Provision an API key\n\nMint a key for the calling key’s own workspace and return its raw secret EXACTLY ONCE, so store it now: it is not recoverable. Omitting `scope` mints a `write` key. `admin` cannot be minted here: a key provisioned over the API can never itself provision, which keeps the chain one link long. Requires an `admin`-scope key.\n\nCalls `POST /api/v1/keys` (operation `createPublicKey`).',
865
+ inputSchema: { "type": "object", "properties": { "body": { "type": "object", "properties": { "label": { "type": "string", "minLength": 1, "maxLength": 120 }, "scope": { "type": "string", "enum": ["read", "write", "decide"] } }, "required": ["label"], "description": "The request body." } }, "additionalProperties": false, "required": ["body"] },
866
+ outputSchema: { "type": "object", "properties": { "key": { "type": "object", "properties": { "accountId": { "type": "string" }, "createdAt": { "type": "number" }, "createdByKeyId": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "createdByUserId": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "id": { "type": "string" }, "label": { "type": "string" }, "lastUsedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "revokedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "scope": { "type": "string", "description": "One of: read, write, decide, admin. A newer deployment may report a member not in this list." }, "workspaceId": { "type": "string" } } }, "secret": { "type": "string" } } },
867
+ invoke: (client, args) => client.keys.create(args.body),
868
+ },
869
+ {
870
+ name: 'keys_list',
871
+ title: 'List the workspace\'s API keys',
872
+ group: 'keys',
873
+ operationId: 'listPublicKeys',
874
+ readOnly: true,
875
+ description: 'List the workspace\'s API keys\n\nThe live (non-revoked) keys for the calling key’s workspace, metadata only; a secret is never readable back. `createdByKeyId` names the key that provisioned a key headlessly; `createdByUserId` names the person who minted one in the app.\n\nCalls `GET /api/v1/keys` (operation `listPublicKeys`).',
876
+ inputSchema: { "type": "object", "properties": {}, "additionalProperties": false },
877
+ outputSchema: { "type": "object", "properties": { "keys": { "type": "array", "items": { "type": "object", "properties": { "accountId": { "type": "string" }, "createdAt": { "type": "number" }, "createdByKeyId": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "createdByUserId": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "id": { "type": "string" }, "label": { "type": "string" }, "lastUsedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "revokedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "scope": { "type": "string", "description": "One of: read, write, decide, admin. A newer deployment may report a member not in this list." }, "workspaceId": { "type": "string" } } } } } },
878
+ invoke: (client, args) => client.keys.list(),
879
+ },
880
+ {
881
+ name: 'keys_revoke',
882
+ title: 'Revoke an API key',
883
+ group: 'keys',
884
+ operationId: 'revokePublicKey',
885
+ readOnly: false,
886
+ description: 'Revoke an API key\n\nRevoke a key AND every key it minted, so a leaked provisioning key cannot outlive its own revocation through the credentials it left behind. Idempotent, and it may name the calling key. Requires an `admin`-scope key.\n\nCalls `DELETE /api/v1/keys/{keyId}` (operation `revokePublicKey`).',
887
+ inputSchema: { "type": "object", "properties": { "keyId": { "type": "string", "description": "Path parameter `keyId`." } }, "additionalProperties": false, "required": ["keyId"] },
888
+ invoke: (client, args) => client.keys.revoke(str(args, 'keyId')),
889
+ },
759
890
  ];
760
891
  /** The operations this facade does not expose, each with its reason. */
761
892
  export const CAT_FACTORY_OMITTED_OPERATIONS = [
893
+ {
894
+ operationId: 'getPublicArtifactBlob',
895
+ route: 'GET /api/v1/artifacts/{artifactId}/blob',
896
+ sdkCall: 'client.evidence.downloadArtifact()',
897
+ reason: 'A tool result is text or a declared content block, not an arbitrary byte stream, so an image download has no honest shape here. Call `evidence_list_artifacts` for the ids, sizes and content types, and fetch the bytes over HTTP (or through an SDK) with the same key.',
898
+ },
762
899
  {
763
900
  operationId: 'streamPublicJobEvents',
764
901
  route: 'GET /api/v1/jobs/{id}/events',
@@ -781,7 +918,9 @@ export const CAT_FACTORY_TOOL_GROUPS = {
781
918
  'notifications': 'The workspace\'s human-actionable inbox: list, act on, or dismiss a run tail.',
782
919
  'webhook': 'The workspace\'s one outbound endpoint: register, inspect or remove the receiver that notifications, run-lifecycle events and health alerts are pushed to.',
783
920
  'usage': 'The billing period\'s metered budget position and the per-model breakdown behind it.',
784
- 'decisions': 'Every way a run stops for a person: approval gates, review and brainstorm loops, forks, judge verdicts, PR review findings and the human-verdict gates.',
921
+ 'decisions': 'Every way a run stops for a person: approval gates, review and brainstorm loops, forks, judge verdicts, PR review findings, the human-verdict gates, follow-up triage and the interview gates.',
785
922
  'debug': 'A run\'s recorded telemetry: LLM calls, the context each agent was given, the tool calls it made, infra logs.',
923
+ 'evidence': 'What a run proved: the engine\'s verification report and the artifacts it captured, bytes included.',
924
+ 'keys': 'The workspace\'s own API keys: provision one headlessly, list them, revoke one (and what it minted).',
786
925
  };
787
926
  //# sourceMappingURL=tools.generated.js.map