@cat-factory/mcp-server 0.11.0 → 0.13.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.
@@ -33,7 +33,7 @@ const QUERY_DEBUG_LIST_LLM_CALLS = ['agentKind', 'phase', 'outcome', 'contains',
33
33
  const QUERY_DEBUG_LIST_LOGS = ['limit', 'cursor'];
34
34
  const QUERY_DEBUG_LIST_RUNS = ['status', 'since', 'limit', 'cursor'];
35
35
  const QUERY_DEBUG_LIST_SEARCH_QUERIES = ['limit', 'cursor'];
36
- const QUERY_DEBUG_LIST_TOOL_CALLS = ['limit', 'cursor', 'jobId', 'order'];
36
+ const QUERY_DEBUG_LIST_TOOL_CALLS = ['limit', 'cursor', 'jobId', 'order', 'ok'];
37
37
  /** Every `/api/v1` operation this facade exposes as a tool, in resource-group order. */
38
38
  export const CAT_FACTORY_TOOLS = [
39
39
  {
@@ -283,6 +283,17 @@ export const CAT_FACTORY_TOOLS = [
283
283
  outputSchema: { "type": "object", "properties": { "budget": { "type": "object", "properties": { "costLimit": { "type": "number" }, "costSpent": { "type": "number" }, "exceeded": { "type": "boolean" }, "inputTokens": { "type": "number" }, "outputTokens": { "type": "number" } } }, "currency": { "type": "string" }, "periodStart": { "type": "number" }, "rows": { "type": "array", "items": { "type": "object", "properties": { "billing": { "type": "string", "description": "One of: metered, subscription. A newer deployment may report a member not in this list." }, "calls": { "type": "number" }, "costEstimate": { "type": "number" }, "inputTokens": { "type": "number" }, "model": { "type": "string" }, "outputTokens": { "type": "number" }, "provider": { "type": "string" }, "vendor": { "anyOf": [{ "type": "string" }, { "type": "null" }] } } } } } },
284
284
  invoke: (client, args) => client.usage.get(),
285
285
  },
286
+ {
287
+ name: 'me_get',
288
+ title: 'Describe the calling key',
289
+ group: 'me',
290
+ operationId: 'getPublicIdentity',
291
+ readOnly: true,
292
+ description: 'Describe the calling key\n\nReport what the key on this request is and what it may do: its id, its account, the ONE workspace every call under it acts within, its scope, and the label it was minted with. `read` scope, the floor of the ladder, because an integration’s startup self-check has to work whatever rung it holds. The scope ladder is INCLUSIVE (`read` ⊂ `write` ⊂ `decide` ⊂ `admin`), so compare against the rung an action needs rather than for equality.\n\nCalls `GET /api/v1/me` (operation `getPublicIdentity`).',
293
+ inputSchema: { "type": "object", "properties": {}, "additionalProperties": false },
294
+ outputSchema: { "type": "object", "properties": { "accountId": { "type": "string" }, "createdAt": { "type": "number" }, "keyId": { "type": "string" }, "label": { "type": "string" }, "scope": { "type": "string", "description": "One of: read, write, decide, admin. A newer deployment may report a member not in this list." }, "workspaceId": { "type": "string" } } },
295
+ invoke: (client, args) => client.me.get(),
296
+ },
286
297
  {
287
298
  name: 'decisions_answer_agent_decision',
288
299
  title: 'Answer an agent-raised decision',
@@ -291,7 +302,7 @@ export const CAT_FACTORY_TOOLS = [
291
302
  readOnly: false,
292
303
  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
304
  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 | 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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
295
306
  invoke: (client, args) => client.decisions.answerAgentDecision(str(args, 'runId'), str(args, 'decisionId'), args.body),
296
307
  },
297
308
  {
@@ -302,7 +313,7 @@ export const CAT_FACTORY_TOOLS = [
302
313
  readOnly: false,
303
314
  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
315
  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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
306
317
  invoke: (client, args) => client.decisions.answerFollowUp(str(args, 'runId'), str(args, 'itemId'), args.body),
307
318
  },
308
319
  {
@@ -313,7 +324,7 @@ export const CAT_FACTORY_TOOLS = [
313
324
  readOnly: false,
314
325
  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
326
  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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
317
328
  invoke: (client, args) => client.decisions.answerInterviewQuestion(str(args, 'runId'), args.body),
318
329
  },
319
330
  {
@@ -324,7 +335,7 @@ export const CAT_FACTORY_TOOLS = [
324
335
  readOnly: false,
325
336
  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`).',
326
337
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
328
339
  invoke: (client, args) => client.decisions.approveStep(str(args, 'runId'), str(args, 'approvalId'), args.body),
329
340
  },
330
341
  {
@@ -335,7 +346,7 @@ export const CAT_FACTORY_TOOLS = [
335
346
  readOnly: false,
336
347
  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`).',
337
348
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
339
350
  invoke: (client, args) => client.decisions.approveVisualConfirmation(str(args, 'runId')),
340
351
  },
341
352
  {
@@ -346,7 +357,7 @@ export const CAT_FACTORY_TOOLS = [
346
357
  readOnly: false,
347
358
  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`).',
348
359
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
350
361
  invoke: (client, args) => client.decisions.challengePrReviewFinding(str(args, 'runId'), str(args, 'findingId'), args.body),
351
362
  },
352
363
  {
@@ -357,7 +368,7 @@ export const CAT_FACTORY_TOOLS = [
357
368
  readOnly: false,
358
369
  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`).',
359
370
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
361
372
  invoke: (client, args) => client.decisions.chooseFork(str(args, 'runId'), args.body),
362
373
  },
363
374
  {
@@ -368,7 +379,7 @@ export const CAT_FACTORY_TOOLS = [
368
379
  readOnly: false,
369
380
  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`).',
370
381
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
372
383
  invoke: (client, args) => client.decisions.confirmHumanTest(str(args, 'runId')),
373
384
  },
374
385
  {
@@ -379,7 +390,7 @@ export const CAT_FACTORY_TOOLS = [
379
390
  readOnly: false,
380
391
  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
392
  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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
383
394
  invoke: (client, args) => client.decisions.continueInterview(str(args, 'runId')),
384
395
  },
385
396
  {
@@ -390,7 +401,7 @@ export const CAT_FACTORY_TOOLS = [
390
401
  readOnly: false,
391
402
  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
403
  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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
394
405
  invoke: (client, args) => client.decisions.dismissFollowUp(str(args, 'runId'), str(args, 'itemId')),
395
406
  },
396
407
  {
@@ -401,7 +412,7 @@ export const CAT_FACTORY_TOOLS = [
401
412
  readOnly: false,
402
413
  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`).',
403
414
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "findingId": { "type": "string", "description": "Path parameter `findingId`." } }, "additionalProperties": false, "required": ["runId", "findingId"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
405
416
  invoke: (client, args) => client.decisions.dismissPrReviewFinding(str(args, 'runId'), str(args, 'findingId')),
406
417
  },
407
418
  {
@@ -412,7 +423,7 @@ export const CAT_FACTORY_TOOLS = [
412
423
  readOnly: false,
413
424
  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
425
  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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
416
427
  invoke: (client, args) => client.decisions.fileFollowUp(str(args, 'runId'), str(args, 'itemId')),
417
428
  },
418
429
  {
@@ -423,7 +434,7 @@ export const CAT_FACTORY_TOOLS = [
423
434
  readOnly: false,
424
435
  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`).',
425
436
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
427
438
  invoke: (client, args) => client.decisions.incorporate(str(args, 'runId'), args.body),
428
439
  },
429
440
  {
@@ -434,7 +445,7 @@ export const CAT_FACTORY_TOOLS = [
434
445
  readOnly: false,
435
446
  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`).',
436
447
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
438
449
  invoke: (client, args) => client.decisions.incorporateBrainstorm(str(args, 'runId'), str(args, 'stage'), args.body),
439
450
  },
440
451
  {
@@ -445,7 +456,7 @@ export const CAT_FACTORY_TOOLS = [
445
456
  readOnly: false,
446
457
  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`).',
447
458
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
449
460
  invoke: (client, args) => client.decisions.incorporateClarity(str(args, 'runId'), args.body),
450
461
  },
451
462
  {
@@ -456,7 +467,7 @@ export const CAT_FACTORY_TOOLS = [
456
467
  readOnly: true,
457
468
  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`).',
458
469
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
460
471
  invoke: (client, args) => client.decisions.list(str(args, 'runId')),
461
472
  },
462
473
  {
@@ -467,7 +478,7 @@ export const CAT_FACTORY_TOOLS = [
467
478
  readOnly: false,
468
479
  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`).',
469
480
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
471
482
  invoke: (client, args) => client.decisions.proceed(str(args, 'runId')),
472
483
  },
473
484
  {
@@ -478,7 +489,7 @@ export const CAT_FACTORY_TOOLS = [
478
489
  readOnly: false,
479
490
  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`).',
480
491
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." } }, "additionalProperties": false, "required": ["runId", "stage"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
482
493
  invoke: (client, args) => client.decisions.proceedBrainstorm(str(args, 'runId'), str(args, 'stage')),
483
494
  },
484
495
  {
@@ -489,7 +500,7 @@ export const CAT_FACTORY_TOOLS = [
489
500
  readOnly: false,
490
501
  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`).',
491
502
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
493
504
  invoke: (client, args) => client.decisions.proceedClarity(str(args, 'runId')),
494
505
  },
495
506
  {
@@ -500,7 +511,7 @@ export const CAT_FACTORY_TOOLS = [
500
511
  readOnly: false,
501
512
  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
513
  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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
504
515
  invoke: (client, args) => client.decisions.proceedInterview(str(args, 'runId')),
505
516
  },
506
517
  {
@@ -511,7 +522,7 @@ export const CAT_FACTORY_TOOLS = [
511
522
  readOnly: false,
512
523
  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`).',
513
524
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
515
526
  invoke: (client, args) => client.decisions.rejectStep(str(args, 'runId'), str(args, 'approvalId'), args.body),
516
527
  },
517
528
  {
@@ -522,7 +533,7 @@ export const CAT_FACTORY_TOOLS = [
522
533
  readOnly: false,
523
534
  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`).',
524
535
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
526
537
  invoke: (client, args) => client.decisions.replyToBrainstormOption(str(args, 'runId'), str(args, 'stage'), str(args, 'itemId'), args.body),
527
538
  },
528
539
  {
@@ -533,7 +544,7 @@ export const CAT_FACTORY_TOOLS = [
533
544
  readOnly: false,
534
545
  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`).',
535
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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
537
548
  invoke: (client, args) => client.decisions.replyToClarityFinding(str(args, 'runId'), str(args, 'itemId'), args.body),
538
549
  },
539
550
  {
@@ -544,7 +555,7 @@ export const CAT_FACTORY_TOOLS = [
544
555
  readOnly: false,
545
556
  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`).',
546
557
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
548
559
  invoke: (client, args) => client.decisions.replyToFinding(str(args, 'runId'), str(args, 'itemId'), args.body),
549
560
  },
550
561
  {
@@ -555,7 +566,7 @@ export const CAT_FACTORY_TOOLS = [
555
566
  readOnly: false,
556
567
  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`).',
557
568
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
559
570
  invoke: (client, args) => client.decisions.requestHumanTestFix(str(args, 'runId'), args.body),
560
571
  },
561
572
  {
@@ -566,7 +577,7 @@ export const CAT_FACTORY_TOOLS = [
566
577
  readOnly: false,
567
578
  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`).',
568
579
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
570
581
  invoke: (client, args) => client.decisions.requestStepChanges(str(args, 'runId'), str(args, 'approvalId'), args.body),
571
582
  },
572
583
  {
@@ -577,7 +588,7 @@ export const CAT_FACTORY_TOOLS = [
577
588
  readOnly: false,
578
589
  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`).',
579
590
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
581
592
  invoke: (client, args) => client.decisions.requestVisualConfirmationFix(str(args, 'runId'), args.body),
582
593
  },
583
594
  {
@@ -588,7 +599,7 @@ export const CAT_FACTORY_TOOLS = [
588
599
  readOnly: false,
589
600
  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`).',
590
601
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
592
603
  invoke: (client, args) => client.decisions.reReview(str(args, 'runId')),
593
604
  },
594
605
  {
@@ -599,7 +610,7 @@ export const CAT_FACTORY_TOOLS = [
599
610
  readOnly: false,
600
611
  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`).',
601
612
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." } }, "additionalProperties": false, "required": ["runId", "stage"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
603
614
  invoke: (client, args) => client.decisions.reReviewBrainstorm(str(args, 'runId'), str(args, 'stage')),
604
615
  },
605
616
  {
@@ -610,7 +621,7 @@ export const CAT_FACTORY_TOOLS = [
610
621
  readOnly: false,
611
622
  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`).',
612
623
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
614
625
  invoke: (client, args) => client.decisions.reReviewClarity(str(args, 'runId')),
615
626
  },
616
627
  {
@@ -621,7 +632,7 @@ export const CAT_FACTORY_TOOLS = [
621
632
  readOnly: false,
622
633
  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`).',
623
634
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
625
636
  invoke: (client, args) => client.decisions.resolveBrainstormExceeded(str(args, 'runId'), str(args, 'stage'), args.body),
626
637
  },
627
638
  {
@@ -632,7 +643,7 @@ export const CAT_FACTORY_TOOLS = [
632
643
  readOnly: false,
633
644
  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`).',
634
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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
636
647
  invoke: (client, args) => client.decisions.resolveClarityExceeded(str(args, 'runId'), args.body),
637
648
  },
638
649
  {
@@ -643,7 +654,7 @@ export const CAT_FACTORY_TOOLS = [
643
654
  readOnly: false,
644
655
  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`).',
645
656
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
647
658
  invoke: (client, args) => client.decisions.resolveExceeded(str(args, 'runId'), args.body),
648
659
  },
649
660
  {
@@ -654,7 +665,7 @@ export const CAT_FACTORY_TOOLS = [
654
665
  readOnly: false,
655
666
  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`).',
656
667
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
658
669
  invoke: (client, args) => client.decisions.resolveInputGate(str(args, 'runId'), args.body),
659
670
  },
660
671
  {
@@ -665,7 +676,7 @@ export const CAT_FACTORY_TOOLS = [
665
676
  readOnly: false,
666
677
  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`).',
667
678
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
669
680
  invoke: (client, args) => client.decisions.resolveJudge(str(args, 'runId'), args.body),
670
681
  },
671
682
  {
@@ -676,7 +687,7 @@ export const CAT_FACTORY_TOOLS = [
676
687
  readOnly: false,
677
688
  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`).',
678
689
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
680
691
  invoke: (client, args) => client.decisions.resolvePrReview(str(args, 'runId'), args.body),
681
692
  },
682
693
  {
@@ -687,7 +698,7 @@ export const CAT_FACTORY_TOOLS = [
687
698
  readOnly: false,
688
699
  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`).',
689
700
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
691
702
  invoke: (client, args) => client.decisions.resolveStepExceeded(str(args, 'runId'), str(args, 'approvalId'), args.body),
692
703
  },
693
704
  {
@@ -698,7 +709,7 @@ export const CAT_FACTORY_TOOLS = [
698
709
  readOnly: false,
699
710
  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
711
  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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
702
713
  invoke: (client, args) => client.decisions.sendBackFollowUp(str(args, 'runId'), str(args, 'itemId')),
703
714
  },
704
715
  {
@@ -709,7 +720,7 @@ export const CAT_FACTORY_TOOLS = [
709
720
  readOnly: false,
710
721
  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`).',
711
722
  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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
713
724
  invoke: (client, args) => client.decisions.setBrainstormOptionStatus(str(args, 'runId'), str(args, 'stage'), str(args, 'itemId'), args.body),
714
725
  },
715
726
  {
@@ -720,7 +731,7 @@ export const CAT_FACTORY_TOOLS = [
720
731
  readOnly: false,
721
732
  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`).',
722
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"] },
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" } } },
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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
724
735
  invoke: (client, args) => client.decisions.setClarityFindingStatus(str(args, 'runId'), str(args, 'itemId'), args.body),
725
736
  },
726
737
  {
@@ -731,7 +742,7 @@ export const CAT_FACTORY_TOOLS = [
731
742
  readOnly: false,
732
743
  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`).',
733
744
  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"] },
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" } } },
745
+ 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" }, "unanswerable": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "reason": { "type": "string", "description": "One of: human_wait_gate, unclassified_gate, unwired_interview_gate. A newer deployment may report a member not in this list." }, "stepIndex": { "type": "number" }, "stepKind": { "type": "string" } } } } } },
735
746
  invoke: (client, args) => client.decisions.setFindingStatus(str(args, 'runId'), str(args, 'itemId'), args.body),
736
747
  },
737
748
  {
@@ -764,7 +775,7 @@ export const CAT_FACTORY_TOOLS = [
764
775
  readOnly: true,
765
776
  description: 'Get a run\'s diagnostic map\n\nOne run’s diagnostic overview: its steps, which telemetry sinks this deployment retains (and how much each holds), the LLM cost/latency rollups, and the derived signals worth looking at first.\n\nCalls `GET /api/v1/debug/runs/{runId}` (operation `getDebugRun`).',
766
777
  inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
767
- outputSchema: { "type": "object", "properties": { "diagnostics": { "anyOf": [{ "type": "object", "properties": { "host": { "type": "object", "properties": { "platform": { "type": "string" } } }, "lastDispatch": { "type": "object", "properties": { "agentKind": { "type": "string" }, "at": { "type": "number" }, "executionBackend": { "type": "string" }, "model": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "repo": { "type": "object", "properties": { "baseBranch": { "type": "string" }, "name": { "type": "string" }, "owner": { "type": "string" }, "provider": { "type": "string" } } }, "stepIndex": { "type": "number" } } } } }, { "type": "null" }] }, "generatedAt": { "type": "number" }, "kind": { "type": "string" }, "llm": { "type": "object", "properties": { "byAgentKind": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "cacheHitRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "cacheReadTokens": { "type": "number" }, "cacheWriteTokens": { "type": "number" }, "calls": { "type": "number" }, "completionTokens": { "type": "number" }, "costEstimate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "errors": { "type": "number" }, "maxOutputTokens": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "outputHeadroomRatio": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "overheadMs": { "type": "number" }, "peakCompletionTokens": { "type": "number" }, "promptTokens": { "type": "number" }, "transportOverheadRatio": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "truncatedCalls": { "type": "number" }, "upstreamMs": { "type": "number" }, "warnings": { "type": "number" } } } }, "byPhase": { "type": "array", "items": { "type": "object", "properties": { "cacheHitRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "cacheReadTokens": { "type": "number" }, "cacheWriteTokens": { "type": "number" }, "calls": { "type": "number" }, "carryCostShare": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "carryCostTokens": { "type": "number" }, "completionTokens": { "type": "number" }, "costEstimate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "errors": { "type": "number" }, "overheadMs": { "type": "number" }, "phase": { "type": "string" }, "promptTokens": { "type": "number" }, "truncatedCalls": { "type": "number" }, "upstreamMs": { "type": "number" }, "warnings": { "type": "number" } } } }, "costCurrency": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "totals": { "type": "object", "properties": { "cacheHitRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "cacheReadTokens": { "type": "number" }, "cacheWriteTokens": { "type": "number" }, "calls": { "type": "number" }, "completionTokens": { "type": "number" }, "costEstimate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "errors": { "type": "number" }, "overheadMs": { "type": "number" }, "promptTokens": { "type": "number" }, "transportOverheadRatio": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "truncatedCalls": { "type": "number" }, "upstreamMs": { "type": "number" }, "warnings": { "type": "number" } } } } }, "run": { "type": "object", "properties": { "blockId": { "type": "string" }, "createdAt": { "type": "number" }, "currentStep": { "type": "number" }, "failure": { "anyOf": [{ "type": "object", "properties": { "detail": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "hint": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "kind": { "type": "string", "description": "One of: preflight, dispatch, environment, evicted, timeout, agent, job_failed, rejected, companion_rejected, stalled, cancelled, unknown. A newer deployment may report a member not in this list." }, "lastSubtasks": { "anyOf": [{ "type": "object", "properties": { "completed": { "type": "number" }, "inProgress": { "type": "number" }, "items": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "status": { "type": "string", "description": "One of: pending, in_progress, completed. A newer deployment may report a member not in this list." } } } }, "total": { "type": "number" } } }, { "type": "null" }] }, "message": { "type": "string" }, "occurredAt": { "type": "number" }, "reason": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "stepIndex": { "type": "number" } } }, { "type": "null" }] }, "pipelineId": { "type": "string" }, "pipelineName": { "type": "string" }, "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." }, "stepCount": { "type": "number" } } }, "signals": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "code": { "type": "string" }, "count": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "message": { "type": "string" }, "severity": { "type": "string", "description": "One of: info, warning, error. A newer deployment may report a member not in this list." }, "stepIndex": { "anyOf": [{ "type": "number" }, { "type": "null" }] } } } }, "sinks": { "type": "object", "properties": { "agentContext": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } }, "llmCalls": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } }, "provisioningLog": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } }, "searchQueries": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } }, "toolCalls": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } } } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "evictionRecoveries": { "type": "number" }, "finishedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "firstEvictionDetail": { "anyOf": [{ "type": "object", "properties": { "chars": { "type": "number" }, "matchOffset": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "offset": { "type": "number" }, "text": { "type": "string" }, "totalChars": { "type": "number" }, "truncated": { "type": "boolean" } } }, { "type": "null" }] }, "hasStructuredResult": { "type": "boolean" }, "index": { "type": "number" }, "lastActivityAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "model": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "outputChars": { "type": "number" }, "progress": { "type": "number" }, "skipped": { "type": "boolean" }, "startedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "state": { "type": "string" }, "subtasks": { "anyOf": [{ "type": "object", "properties": { "completed": { "type": "number" }, "inProgress": { "type": "number" }, "total": { "type": "number" } } }, { "type": "null" }] } } } }, "version": { "type": "number" } } },
778
+ outputSchema: { "type": "object", "properties": { "diagnostics": { "anyOf": [{ "type": "object", "properties": { "host": { "type": "object", "properties": { "platform": { "type": "string" } } }, "lastDispatch": { "type": "object", "properties": { "agentKind": { "type": "string" }, "at": { "type": "number" }, "executionBackend": { "type": "string" }, "model": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "repo": { "type": "object", "properties": { "baseBranch": { "type": "string" }, "name": { "type": "string" }, "owner": { "type": "string" }, "provider": { "type": "string" } } }, "stepIndex": { "type": "number" } } } } }, { "type": "null" }] }, "generatedAt": { "type": "number" }, "kind": { "type": "string" }, "llm": { "type": "object", "properties": { "byAgentKind": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "cacheHitRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "cacheReadTokens": { "type": "number" }, "cacheWriteTokens": { "type": "number" }, "calls": { "type": "number" }, "completionTokens": { "type": "number" }, "costEstimate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "errors": { "type": "number" }, "maxOutputTokens": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "outputHeadroomRatio": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "overheadMs": { "type": "number" }, "peakCompletionTokens": { "type": "number" }, "promptTokens": { "type": "number" }, "transportOverheadRatio": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "truncatedCalls": { "type": "number" }, "upstreamMs": { "type": "number" }, "warnings": { "type": "number" } } } }, "byPhase": { "type": "array", "items": { "type": "object", "properties": { "cacheHitRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "cacheReadTokens": { "type": "number" }, "cacheWriteTokens": { "type": "number" }, "calls": { "type": "number" }, "carryCostShare": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "carryCostTokens": { "type": "number" }, "completionTokens": { "type": "number" }, "costEstimate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "errors": { "type": "number" }, "overheadMs": { "type": "number" }, "phase": { "type": "string" }, "promptTokens": { "type": "number" }, "truncatedCalls": { "type": "number" }, "upstreamMs": { "type": "number" }, "warnings": { "type": "number" } } } }, "costCurrency": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "totals": { "type": "object", "properties": { "cacheHitRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "cacheReadTokens": { "type": "number" }, "cacheWriteTokens": { "type": "number" }, "calls": { "type": "number" }, "completionTokens": { "type": "number" }, "costEstimate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "errors": { "type": "number" }, "overheadMs": { "type": "number" }, "promptTokens": { "type": "number" }, "transportOverheadRatio": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "truncatedCalls": { "type": "number" }, "upstreamMs": { "type": "number" }, "warnings": { "type": "number" } } } } }, "run": { "type": "object", "properties": { "blockId": { "type": "string" }, "createdAt": { "type": "number" }, "currentStep": { "type": "number" }, "failure": { "anyOf": [{ "type": "object", "properties": { "detail": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "hint": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "kind": { "type": "string", "description": "One of: preflight, dispatch, environment, evicted, timeout, agent, job_failed, rejected, companion_rejected, stalled, cancelled, unknown. A newer deployment may report a member not in this list." }, "lastSubtasks": { "anyOf": [{ "type": "object", "properties": { "completed": { "type": "number" }, "inProgress": { "type": "number" }, "items": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "status": { "type": "string", "description": "One of: pending, in_progress, completed. A newer deployment may report a member not in this list." } } } }, "total": { "type": "number" } } }, { "type": "null" }] }, "message": { "type": "string" }, "occurredAt": { "type": "number" }, "reason": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "stepIndex": { "type": "number" } } }, { "type": "null" }] }, "pipelineId": { "type": "string" }, "pipelineName": { "type": "string" }, "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." }, "stepCount": { "type": "number" } } }, "signals": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "code": { "type": "string" }, "count": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "message": { "type": "string" }, "severity": { "type": "string", "description": "One of: info, warning, error. A newer deployment may report a member not in this list." }, "stepIndex": { "anyOf": [{ "type": "number" }, { "type": "null" }] } } } }, "sinks": { "type": "object", "properties": { "agentContext": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } }, "llmCalls": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } }, "provisioningLog": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } }, "searchQueries": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } }, "toolCalls": { "type": "object", "properties": { "available": { "type": "boolean" }, "count": { "type": "number" } } } } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "evictionRecoveries": { "type": "number" }, "finishedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "firstEvictionDetail": { "anyOf": [{ "type": "object", "properties": { "chars": { "type": "number" }, "matchOffset": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "offset": { "type": "number" }, "text": { "type": "string" }, "totalChars": { "type": "number" }, "truncated": { "type": "boolean" } } }, { "type": "null" }] }, "hasStructuredResult": { "type": "boolean" }, "index": { "type": "number" }, "lastActivityAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "model": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "outputChars": { "type": "number" }, "progress": { "type": "number" }, "skipped": { "type": "boolean" }, "startedAt": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "state": { "type": "string" }, "subtasks": { "anyOf": [{ "type": "object", "properties": { "completed": { "type": "number" }, "inProgress": { "type": "number" }, "total": { "type": "number" } } }, { "type": "null" }] } } } }, "toolCalls": { "type": "object", "properties": { "byAgentKind": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "calls": { "type": "number" }, "failureRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "failures": { "type": "number" } } } }, "byTool": { "type": "array", "items": { "type": "object", "properties": { "calls": { "type": "number" }, "failureRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "failures": { "type": "number" }, "tool": { "type": "string" } } } }, "totals": { "type": "object", "properties": { "calls": { "type": "number" }, "failureRate": { "anyOf": [{ "type": "number" }, { "type": "null" }] }, "failures": { "type": "number" } } } } }, "version": { "type": "number" } } },
768
779
  invoke: (client, args) => client.debug.getRun(str(args, 'runId')),
769
780
  },
770
781
  {
@@ -829,7 +840,7 @@ export const CAT_FACTORY_TOOLS = [
829
840
  operationId: 'listDebugToolCalls',
830
841
  readOnly: true,
831
842
  description: 'List a run\'s tool calls\n\nThe tool calls the run’s agents made, in the order they made them — which command, against what, and what came back. The half of “how did this diff come about” that neither the diff nor a prompt body answers. Arguments and results are retained only when the deployment records agent context AND the workspace has not opted out; `bodies` says which, so an empty `args` is never mistaken for a call that took none.\n\nCalls `GET /api/v1/debug/runs/{runId}/tool-calls` (operation `listDebugToolCalls`).',
832
- inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "limit": { "type": "integer" }, "cursor": { "type": "string" }, "jobId": { "type": "string" }, "order": { "type": "string", "enum": ["recent", "trajectory"] } }, "additionalProperties": false, "required": ["runId"] },
843
+ inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "limit": { "type": "integer" }, "cursor": { "type": "string" }, "jobId": { "type": "string" }, "order": { "type": "string", "enum": ["recent", "trajectory"] }, "ok": { "type": "string", "enum": ["true", "false"] } }, "additionalProperties": false, "required": ["runId"] },
833
844
  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" } } } } } },
834
845
  invoke: (client, args) => client.debug.listToolCalls(str(args, 'runId'), pick(args, QUERY_DEBUG_LIST_TOOL_CALLS)),
835
846
  },
@@ -841,7 +852,7 @@ export const CAT_FACTORY_TOOLS = [
841
852
  readOnly: true,
842
853
  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
854
  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" } } },
855
+ 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" }] }, "modelPin": { "anyOf": [{ "type": "object", "properties": { "requested": { "type": "string" }, "status": { "type": "string", "description": "One of: applied, overridden, unavailable. A newer deployment may report a member not in this list." } } }, { "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" }] } } } }, "configUnreadable": { "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
856
  invoke: (client, args) => client.evidence.getReport(str(args, 'runId')),
846
857
  },
847
858
  {
@@ -918,6 +929,7 @@ export const CAT_FACTORY_TOOL_GROUPS = {
918
929
  'notifications': 'The workspace\'s human-actionable inbox: list, act on, or dismiss a run tail.',
919
930
  'webhook': 'The workspace\'s one outbound endpoint: register, inspect or remove the receiver that notifications, run-lifecycle events and health alerts are pushed to.',
920
931
  'usage': 'The billing period\'s metered budget position and the per-model breakdown behind it.',
932
+ 'me': 'What the calling key is and what it may do — the self-check an integration runs at startup.',
921
933
  '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.',
922
934
  'debug': 'A run\'s recorded telemetry: LLM calls, the context each agent was given, the tool calls it made, infra logs.',
923
935
  'evidence': 'What a run proved: the engine\'s verification report and the artifacts it captured, bytes included.',