@cat-factory/mcp-server 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -4
- package/dist/bin.js +9 -3
- package/dist/bin.js.map +1 -1
- package/dist/config.d.ts +38 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -5
- package/dist/config.js.map +1 -1
- package/dist/http.d.ts +44 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +64 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +22 -4
- package/dist/instructions.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/dist/stdio.d.ts.map +1 -1
- package/dist/stdio.js +1 -1
- package/dist/stdio.js.map +1 -1
- package/dist/tools.generated.d.ts.map +1 -1
- package/dist/tools.generated.js +289 -13
- package/dist/tools.generated.js.map +1 -1
- package/package.json +9 -2
package/dist/tools.generated.js
CHANGED
|
@@ -33,6 +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
37
|
/** Every `/api/v1` operation this facade exposes as a tool, in resource-group order. */
|
|
37
38
|
export const CAT_FACTORY_TOOLS = [
|
|
38
39
|
{
|
|
@@ -282,6 +283,50 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
282
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" }] } } } } } },
|
|
283
284
|
invoke: (client, args) => client.usage.get(),
|
|
284
285
|
},
|
|
286
|
+
{
|
|
287
|
+
name: 'decisions_answer_agent_decision',
|
|
288
|
+
title: 'Answer an agent-raised decision',
|
|
289
|
+
group: 'decisions',
|
|
290
|
+
operationId: 'resolvePublicRunAgentDecision',
|
|
291
|
+
readOnly: false,
|
|
292
|
+
description: 'Answer an agent-raised decision\n\nAnswer a question an agent raised mid-work. Resolving RE-RUNS the asking step with the choice folded in, rather than advancing past it. The choice is taken verbatim, so it may be one of the offered options or a steer of your own. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/questions/{decisionId}/answer` (operation `resolvePublicRunAgentDecision`).',
|
|
293
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "decisionId": { "type": "string", "description": "Path parameter `decisionId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "minLength": 1, "maxLength": 4000 } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "decisionId", "body"] },
|
|
294
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
295
|
+
invoke: (client, args) => client.decisions.answerAgentDecision(str(args, 'runId'), str(args, 'decisionId'), args.body),
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
name: 'decisions_approve_step',
|
|
299
|
+
title: 'Approve a parked step',
|
|
300
|
+
group: 'decisions',
|
|
301
|
+
operationId: 'approvePublicRunStep',
|
|
302
|
+
readOnly: false,
|
|
303
|
+
description: 'Approve a parked step\n\nApprove the proposal a gated step is holding up, optionally replacing it with an edited one (the edit is what flows to every downstream step), and advance the run. The `approvalId` comes from the run\'s decision list; passing it back is what makes a racing app user and a racing integration resolve the same gate. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/approvals/{approvalId}/approve` (operation `approvePublicRunStep`).',
|
|
304
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "approvalId": { "type": "string", "description": "Path parameter `approvalId`." }, "body": { "type": "object", "properties": { "proposal": { "type": "string", "maxLength": 50000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "approvalId", "body"] },
|
|
305
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
306
|
+
invoke: (client, args) => client.decisions.approveStep(str(args, 'runId'), str(args, 'approvalId'), args.body),
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
name: 'decisions_approve_visual_confirmation',
|
|
310
|
+
title: 'Approve a visual-confirmation gate',
|
|
311
|
+
group: 'decisions',
|
|
312
|
+
operationId: 'approvePublicRunVisualConfirm',
|
|
313
|
+
readOnly: false,
|
|
314
|
+
description: 'Approve a visual-confirmation gate\n\nApprove the captured screenshots against the reference designs and advance the run. The images themselves are not readable over this API — the decision carries only artifact ids — so approving on the projection alone approves screenshots you have not seen. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/visual-confirmation/approve` (operation `approvePublicRunVisualConfirm`).',
|
|
315
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
|
|
316
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
317
|
+
invoke: (client, args) => client.decisions.approveVisualConfirmation(str(args, 'runId')),
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
name: 'decisions_challenge_pr_review_finding',
|
|
321
|
+
title: 'Challenge a PR review finding',
|
|
322
|
+
group: 'decisions',
|
|
323
|
+
operationId: 'challengePublicRunPrReviewFinding',
|
|
324
|
+
readOnly: false,
|
|
325
|
+
description: 'Challenge a PR review finding\n\nDispatch a read-only investigator to re-examine one finding against the full source, optionally with a specific concern. It upholds, strengthens or retracts the finding, and the review re-parks carrying the verdict. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/pr-review/findings/{findingId}/challenge` (operation `challengePublicRunPrReviewFinding`).',
|
|
326
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "findingId": { "type": "string", "description": "Path parameter `findingId`." }, "body": { "type": "object", "properties": { "question": { "type": "string", "maxLength": 4000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "findingId", "body"] },
|
|
327
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
328
|
+
invoke: (client, args) => client.decisions.challengePrReviewFinding(str(args, 'runId'), str(args, 'findingId'), args.body),
|
|
329
|
+
},
|
|
285
330
|
{
|
|
286
331
|
name: 'decisions_choose_fork',
|
|
287
332
|
title: 'Choose an implementation approach',
|
|
@@ -290,9 +335,31 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
290
335
|
readOnly: false,
|
|
291
336
|
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`).',
|
|
292
337
|
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"] },
|
|
293
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
294
339
|
invoke: (client, args) => client.decisions.chooseFork(str(args, 'runId'), args.body),
|
|
295
340
|
},
|
|
341
|
+
{
|
|
342
|
+
name: 'decisions_confirm_human_test',
|
|
343
|
+
title: 'Confirm a human-test gate',
|
|
344
|
+
group: 'decisions',
|
|
345
|
+
operationId: 'confirmPublicRunHumanTest',
|
|
346
|
+
readOnly: false,
|
|
347
|
+
description: 'Confirm a human-test gate\n\nConfirm the change works in the ephemeral environment: it is torn down and the run advances. The decision carries the environment URL to exercise; confirming without exercising it approves untested work. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/human-test/confirm` (operation `confirmPublicRunHumanTest`).',
|
|
348
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
|
|
349
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
350
|
+
invoke: (client, args) => client.decisions.confirmHumanTest(str(args, 'runId')),
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
name: 'decisions_dismiss_pr_review_finding',
|
|
354
|
+
title: 'Dismiss a PR review finding',
|
|
355
|
+
group: 'decisions',
|
|
356
|
+
operationId: 'dismissPublicRunPrReviewFinding',
|
|
357
|
+
readOnly: false,
|
|
358
|
+
description: 'Dismiss a PR review finding\n\nDrop one finding from the parked review entirely. Curation rather than a resolution: the run stays parked. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/pr-review/findings/{findingId}/dismiss` (operation `dismissPublicRunPrReviewFinding`).',
|
|
359
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "findingId": { "type": "string", "description": "Path parameter `findingId`." } }, "additionalProperties": false, "required": ["runId", "findingId"] },
|
|
360
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
361
|
+
invoke: (client, args) => client.decisions.dismissPrReviewFinding(str(args, 'runId'), str(args, 'findingId')),
|
|
362
|
+
},
|
|
296
363
|
{
|
|
297
364
|
name: 'decisions_incorporate',
|
|
298
365
|
title: 'Incorporate the answers',
|
|
@@ -301,9 +368,31 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
301
368
|
readOnly: false,
|
|
302
369
|
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`).',
|
|
303
370
|
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"] },
|
|
304
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
372
|
invoke: (client, args) => client.decisions.incorporate(str(args, 'runId'), args.body),
|
|
306
373
|
},
|
|
374
|
+
{
|
|
375
|
+
name: 'decisions_incorporate_brainstorm',
|
|
376
|
+
title: 'Incorporate brainstorm picks',
|
|
377
|
+
group: 'decisions',
|
|
378
|
+
operationId: 'incorporatePublicRunBrainstorm',
|
|
379
|
+
readOnly: false,
|
|
380
|
+
description: 'Incorporate brainstorm picks\n\nFold the picks into one converged direction. ASYNCHRONOUS: the response shows the session `incorporating` while the durable driver folds and re-runs in the background. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/incorporate` (operation `incorporatePublicRunBrainstorm`).',
|
|
381
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." }, "body": { "type": "object", "properties": { "feedback": { "type": "string", "maxLength": 4000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "stage", "body"] },
|
|
382
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
383
|
+
invoke: (client, args) => client.decisions.incorporateBrainstorm(str(args, 'runId'), str(args, 'stage'), args.body),
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
name: 'decisions_incorporate_clarity',
|
|
387
|
+
title: 'Incorporate clarity answers',
|
|
388
|
+
group: 'decisions',
|
|
389
|
+
operationId: 'incorporatePublicRunClarity',
|
|
390
|
+
readOnly: false,
|
|
391
|
+
description: 'Incorporate clarity answers\n\nFold the recorded answers into one standardized bug report. ASYNCHRONOUS: the response shows the review `incorporating` while the durable driver folds and re-reviews in the background. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/incorporate` (operation `incorporatePublicRunClarity`).',
|
|
392
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "feedback": { "type": "string", "maxLength": 4000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
|
|
393
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
394
|
+
invoke: (client, args) => client.decisions.incorporateClarity(str(args, 'runId'), args.body),
|
|
395
|
+
},
|
|
307
396
|
{
|
|
308
397
|
name: 'decisions_list',
|
|
309
398
|
title: 'List a run\'s parked decisions',
|
|
@@ -312,7 +401,7 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
312
401
|
readOnly: true,
|
|
313
402
|
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`).',
|
|
314
403
|
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
|
|
315
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
405
|
invoke: (client, args) => client.decisions.list(str(args, 'runId')),
|
|
317
406
|
},
|
|
318
407
|
{
|
|
@@ -323,9 +412,64 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
323
412
|
readOnly: false,
|
|
324
413
|
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`).',
|
|
325
414
|
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
|
|
326
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
416
|
invoke: (client, args) => client.decisions.proceed(str(args, 'runId')),
|
|
328
417
|
},
|
|
418
|
+
{
|
|
419
|
+
name: 'decisions_proceed_brainstorm',
|
|
420
|
+
title: 'Proceed past a brainstorm',
|
|
421
|
+
group: 'decisions',
|
|
422
|
+
operationId: 'proceedPublicRunBrainstorm',
|
|
423
|
+
readOnly: false,
|
|
424
|
+
description: 'Proceed past a brainstorm\n\nSettle the brainstorm with the last converged direction and advance the parked run. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/proceed` (operation `proceedPublicRunBrainstorm`).',
|
|
425
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." } }, "additionalProperties": false, "required": ["runId", "stage"] },
|
|
426
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
427
|
+
invoke: (client, args) => client.decisions.proceedBrainstorm(str(args, 'runId'), str(args, 'stage')),
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
name: 'decisions_proceed_clarity',
|
|
431
|
+
title: 'Proceed past the clarity review',
|
|
432
|
+
group: 'decisions',
|
|
433
|
+
operationId: 'proceedPublicRunClarity',
|
|
434
|
+
readOnly: false,
|
|
435
|
+
description: 'Proceed past the clarity review\n\nSettle the clarity phase with the last clarified report and advance the parked run. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/proceed` (operation `proceedPublicRunClarity`).',
|
|
436
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
|
|
437
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
438
|
+
invoke: (client, args) => client.decisions.proceedClarity(str(args, 'runId')),
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
name: 'decisions_reject_step',
|
|
442
|
+
title: 'Reject a parked step',
|
|
443
|
+
group: 'decisions',
|
|
444
|
+
operationId: 'rejectPublicRunStep',
|
|
445
|
+
readOnly: false,
|
|
446
|
+
description: 'Reject a parked step\n\nReject the gated proposal: the run stops entirely, recording a terminal `rejected` failure the board can retry. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/approvals/{approvalId}/reject` (operation `rejectPublicRunStep`).',
|
|
447
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "approvalId": { "type": "string", "description": "Path parameter `approvalId`." }, "body": { "type": "object", "properties": { "reason": { "type": "string", "maxLength": 2000 } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "approvalId", "body"] },
|
|
448
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
449
|
+
invoke: (client, args) => client.decisions.rejectStep(str(args, 'runId'), str(args, 'approvalId'), args.body),
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
name: 'decisions_reply_to_brainstorm_option',
|
|
453
|
+
title: 'Respond to a brainstorm option',
|
|
454
|
+
group: 'decisions',
|
|
455
|
+
operationId: 'replyPublicRunBrainstormOption',
|
|
456
|
+
readOnly: false,
|
|
457
|
+
description: 'Respond to a brainstorm option\n\nPick or steer one of the options the brainstorm agent proposed, for the named stage (`requirements` or `architecture`). A task may hold one live session per stage at once. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/options/{itemId}/reply` (operation `replyPublicRunBrainstormOption`).',
|
|
458
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "reply": { "type": "string", "minLength": 1, "maxLength": 4000 } }, "required": ["reply"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "stage", "itemId", "body"] },
|
|
459
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
460
|
+
invoke: (client, args) => client.decisions.replyToBrainstormOption(str(args, 'runId'), str(args, 'stage'), str(args, 'itemId'), args.body),
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
name: 'decisions_reply_to_clarity_finding',
|
|
464
|
+
title: 'Answer a clarity (bug-triage) finding',
|
|
465
|
+
group: 'decisions',
|
|
466
|
+
operationId: 'replyPublicRunClarityFinding',
|
|
467
|
+
readOnly: false,
|
|
468
|
+
description: 'Answer a clarity (bug-triage) finding\n\nRecord an answer to one clarity-review finding — the bug-report twin of the requirements loop. Returns the run\'s updated decision list. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/findings/{itemId}/reply` (operation `replyPublicRunClarityFinding`).',
|
|
469
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "reply": { "type": "string", "minLength": 1, "maxLength": 4000 } }, "required": ["reply"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "itemId", "body"] },
|
|
470
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
471
|
+
invoke: (client, args) => client.decisions.replyToClarityFinding(str(args, 'runId'), str(args, 'itemId'), args.body),
|
|
472
|
+
},
|
|
329
473
|
{
|
|
330
474
|
name: 'decisions_reply_to_finding',
|
|
331
475
|
title: 'Answer a review finding',
|
|
@@ -334,9 +478,42 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
334
478
|
readOnly: false,
|
|
335
479
|
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`).',
|
|
336
480
|
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"] },
|
|
337
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
482
|
invoke: (client, args) => client.decisions.replyToFinding(str(args, 'runId'), str(args, 'itemId'), args.body),
|
|
339
483
|
},
|
|
484
|
+
{
|
|
485
|
+
name: 'decisions_request_human_test_fix',
|
|
486
|
+
title: 'Request a fix from a human-test gate',
|
|
487
|
+
group: 'decisions',
|
|
488
|
+
operationId: 'requestPublicRunHumanTestFix',
|
|
489
|
+
readOnly: false,
|
|
490
|
+
description: 'Request a fix from a human-test gate\n\nSubmit findings against the tested environment and dispatch a fixer, which commits onto the PR branch before the environment is rebuilt. The findings ARE the fixer prompt, so they cannot be blank. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/human-test/request-fix` (operation `requestPublicRunHumanTestFix`).',
|
|
491
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "findings": { "type": "string", "minLength": 1, "maxLength": 10000 } }, "required": ["findings"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
|
|
492
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
493
|
+
invoke: (client, args) => client.decisions.requestHumanTestFix(str(args, 'runId'), args.body),
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
name: 'decisions_request_step_changes',
|
|
497
|
+
title: 'Request changes on a parked step',
|
|
498
|
+
group: 'decisions',
|
|
499
|
+
operationId: 'requestPublicRunStepChanges',
|
|
500
|
+
readOnly: false,
|
|
501
|
+
description: 'Request changes on a parked step\n\nSend the gated step back to re-run with your guidance folded in. Unlike the in-app twin this takes freeform feedback only: anchored per-block comments address source line ranges of a rendered proposal, which a headless caller never rendered. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/approvals/{approvalId}/request-changes` (operation `requestPublicRunStepChanges`).',
|
|
502
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "approvalId": { "type": "string", "description": "Path parameter `approvalId`." }, "body": { "type": "object", "properties": { "feedback": { "type": "string", "minLength": 1, "maxLength": 10000 } }, "required": ["feedback"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "approvalId", "body"] },
|
|
503
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
504
|
+
invoke: (client, args) => client.decisions.requestStepChanges(str(args, 'runId'), str(args, 'approvalId'), args.body),
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
name: 'decisions_request_visual_confirmation_fix',
|
|
508
|
+
title: 'Request a fix from a visual-confirmation gate',
|
|
509
|
+
group: 'decisions',
|
|
510
|
+
operationId: 'requestPublicRunVisualConfirmFix',
|
|
511
|
+
readOnly: false,
|
|
512
|
+
description: 'Request a fix from a visual-confirmation gate\n\nSubmit findings against the captured screenshots and dispatch a fixer. The findings ARE the fixer prompt, so they cannot be blank. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/visual-confirmation/request-fix` (operation `requestPublicRunVisualConfirmFix`).',
|
|
513
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "findings": { "type": "string", "minLength": 1, "maxLength": 10000 } }, "required": ["findings"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
|
|
514
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
515
|
+
invoke: (client, args) => client.decisions.requestVisualConfirmationFix(str(args, 'runId'), args.body),
|
|
516
|
+
},
|
|
340
517
|
{
|
|
341
518
|
name: 'decisions_re_review',
|
|
342
519
|
title: 'Re-review the incorporated document',
|
|
@@ -345,9 +522,53 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
345
522
|
readOnly: false,
|
|
346
523
|
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`).',
|
|
347
524
|
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
|
|
348
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
526
|
invoke: (client, args) => client.decisions.reReview(str(args, 'runId')),
|
|
350
527
|
},
|
|
528
|
+
{
|
|
529
|
+
name: 'decisions_re_review_brainstorm',
|
|
530
|
+
title: 'Re-run a brainstorm pass',
|
|
531
|
+
group: 'decisions',
|
|
532
|
+
operationId: 'reReviewPublicRunBrainstorm',
|
|
533
|
+
readOnly: false,
|
|
534
|
+
description: 'Re-run a brainstorm pass\n\nRun one more brainstorm pass against the converged direction. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/re-review` (operation `reReviewPublicRunBrainstorm`).',
|
|
535
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." } }, "additionalProperties": false, "required": ["runId", "stage"] },
|
|
536
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
537
|
+
invoke: (client, args) => client.decisions.reReviewBrainstorm(str(args, 'runId'), str(args, 'stage')),
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
name: 'decisions_re_review_clarity',
|
|
541
|
+
title: 'Re-triage the clarified report',
|
|
542
|
+
group: 'decisions',
|
|
543
|
+
operationId: 'reReviewPublicRunClarity',
|
|
544
|
+
readOnly: false,
|
|
545
|
+
description: 'Re-triage the clarified report\n\nRun one more triage pass over the incorporated bug report. On convergence the parked run advances. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/re-review` (operation `reReviewPublicRunClarity`).',
|
|
546
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
|
|
547
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
548
|
+
invoke: (client, args) => client.decisions.reReviewClarity(str(args, 'runId')),
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
name: 'decisions_resolve_brainstorm_exceeded',
|
|
552
|
+
title: 'Resolve a brainstorm at its iteration cap',
|
|
553
|
+
group: 'decisions',
|
|
554
|
+
operationId: 'resolvePublicRunBrainstormExceeded',
|
|
555
|
+
readOnly: false,
|
|
556
|
+
description: 'Resolve a brainstorm at its iteration cap\n\nPick how a brainstorm that exhausted its pass budget proceeds: one more round, proceed with the last converged direction, or stop and reset the task. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/brainstorm/{stage}/resolve-exceeded` (operation `resolvePublicRunBrainstormExceeded`).',
|
|
557
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["extra-round", "proceed", "stop-reset"] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "stage", "body"] },
|
|
558
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
559
|
+
invoke: (client, args) => client.decisions.resolveBrainstormExceeded(str(args, 'runId'), str(args, 'stage'), args.body),
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
name: 'decisions_resolve_clarity_exceeded',
|
|
563
|
+
title: 'Resolve a clarity review at its iteration cap',
|
|
564
|
+
group: 'decisions',
|
|
565
|
+
operationId: 'resolvePublicRunClarityExceeded',
|
|
566
|
+
readOnly: false,
|
|
567
|
+
description: 'Resolve a clarity review at its iteration cap\n\nPick how a clarity review that exhausted its pass budget proceeds: one more round, proceed with the last clarified report, or stop and reset the task. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/clarity/resolve-exceeded` (operation `resolvePublicRunClarityExceeded`).',
|
|
568
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["extra-round", "proceed", "stop-reset"] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
|
|
569
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
570
|
+
invoke: (client, args) => client.decisions.resolveClarityExceeded(str(args, 'runId'), args.body),
|
|
571
|
+
},
|
|
351
572
|
{
|
|
352
573
|
name: 'decisions_resolve_exceeded',
|
|
353
574
|
title: 'Resolve a review at its iteration cap',
|
|
@@ -356,7 +577,7 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
356
577
|
readOnly: false,
|
|
357
578
|
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`).',
|
|
358
579
|
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"] },
|
|
359
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
581
|
invoke: (client, args) => client.decisions.resolveExceeded(str(args, 'runId'), args.body),
|
|
361
582
|
},
|
|
362
583
|
{
|
|
@@ -367,7 +588,7 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
367
588
|
readOnly: false,
|
|
368
589
|
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`).',
|
|
369
590
|
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"] },
|
|
370
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
592
|
invoke: (client, args) => client.decisions.resolveInputGate(str(args, 'runId'), args.body),
|
|
372
593
|
},
|
|
373
594
|
{
|
|
@@ -378,9 +599,53 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
378
599
|
readOnly: false,
|
|
379
600
|
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`).',
|
|
380
601
|
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"] },
|
|
381
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
603
|
invoke: (client, args) => client.decisions.resolveJudge(str(args, 'runId'), args.body),
|
|
383
604
|
},
|
|
605
|
+
{
|
|
606
|
+
name: 'decisions_resolve_pr_review',
|
|
607
|
+
title: 'Resolve a parked PR deep review',
|
|
608
|
+
group: 'decisions',
|
|
609
|
+
operationId: 'resolvePublicRunPrReview',
|
|
610
|
+
readOnly: false,
|
|
611
|
+
description: 'Resolve a parked PR deep review\n\nRecord the curated finding selection and say what to do with it: `finish` completes the read-only review, `fix` hands the selected findings to a fixer that commits onto the reviewed PR branch, `post` publishes them as inline PR review comments. `fix` and `post` need at least one selected finding and act on the real pull request. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/pr-review/resolve` (operation `resolvePublicRunPrReview`).',
|
|
612
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "body": { "type": "object", "properties": { "action": { "type": "string", "enum": ["finish", "fix", "post"] }, "findingIds": { "type": "array", "items": { "type": "string" } } }, "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "body"] },
|
|
613
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
614
|
+
invoke: (client, args) => client.decisions.resolvePrReview(str(args, 'runId'), args.body),
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
name: 'decisions_resolve_step_exceeded',
|
|
618
|
+
title: 'Resolve a companion gate at its rework cap',
|
|
619
|
+
group: 'decisions',
|
|
620
|
+
operationId: 'resolvePublicRunStepExceeded',
|
|
621
|
+
readOnly: false,
|
|
622
|
+
description: 'Resolve a companion gate at its rework cap\n\nPick how a quality companion that spent its automatic rework budget proceeds: one more round, proceed with the output as it stands, or stop and reset the task. A gate in this state reports `exceeded: true` and refuses the plain approve. Requires a `decide`-scope key.\n\nCalls `POST /api/v1/runs/{runId}/decisions/approvals/{approvalId}/resolve-exceeded` (operation `resolvePublicRunStepExceeded`).',
|
|
623
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "approvalId": { "type": "string", "description": "Path parameter `approvalId`." }, "body": { "type": "object", "properties": { "choice": { "type": "string", "enum": ["extra-round", "proceed", "stop-reset"] } }, "required": ["choice"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "approvalId", "body"] },
|
|
624
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
625
|
+
invoke: (client, args) => client.decisions.resolveStepExceeded(str(args, 'runId'), str(args, 'approvalId'), args.body),
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
name: 'decisions_set_brainstorm_option_status',
|
|
629
|
+
title: 'Dismiss or reopen a brainstorm option',
|
|
630
|
+
group: 'decisions',
|
|
631
|
+
operationId: 'setPublicRunBrainstormOptionStatus',
|
|
632
|
+
readOnly: false,
|
|
633
|
+
description: 'Dismiss or reopen a brainstorm option\n\nDismiss a proposed option, or reopen one dismissed by mistake. Only `open` options block incorporation. Requires a `decide`-scope key.\n\nCalls `PATCH /api/v1/runs/{runId}/decisions/brainstorm/{stage}/options/{itemId}` (operation `setPublicRunBrainstormOptionStatus`).',
|
|
634
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "stage": { "type": "string", "description": "Path parameter `stage`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "status": { "type": "string", "enum": ["dismissed", "open"] } }, "required": ["status"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "stage", "itemId", "body"] },
|
|
635
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
636
|
+
invoke: (client, args) => client.decisions.setBrainstormOptionStatus(str(args, 'runId'), str(args, 'stage'), str(args, 'itemId'), args.body),
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
name: 'decisions_set_clarity_finding_status',
|
|
640
|
+
title: 'Dismiss or reopen a clarity finding',
|
|
641
|
+
group: 'decisions',
|
|
642
|
+
operationId: 'setPublicRunClarityFindingStatus',
|
|
643
|
+
readOnly: false,
|
|
644
|
+
description: 'Dismiss or reopen a clarity finding\n\nDismiss a clarity finding as not applicable, or reopen one dismissed by mistake. Only `open` findings block incorporation. Requires a `decide`-scope key.\n\nCalls `PATCH /api/v1/runs/{runId}/decisions/clarity/findings/{itemId}` (operation `setPublicRunClarityFindingStatus`).',
|
|
645
|
+
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." }, "itemId": { "type": "string", "description": "Path parameter `itemId`." }, "body": { "type": "object", "properties": { "status": { "type": "string", "enum": ["dismissed", "open"] } }, "required": ["status"], "description": "The request body." } }, "additionalProperties": false, "required": ["runId", "itemId", "body"] },
|
|
646
|
+
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate | approval-gate | agent-decision | clarity-review | brainstorm | pr-review | human-test | visual-confirmation). A newer deployment may report a variant not in this list." } }, "parked": { "type": "boolean" }, "runId": { "type": "string" }, "status": { "type": "string", "description": "One of: running, blocked, paused, done, failed. A newer deployment may report a member not in this list." }, "taskId": { "type": "string" } } },
|
|
647
|
+
invoke: (client, args) => client.decisions.setClarityFindingStatus(str(args, 'runId'), str(args, 'itemId'), args.body),
|
|
648
|
+
},
|
|
384
649
|
{
|
|
385
650
|
name: 'decisions_set_finding_status',
|
|
386
651
|
title: 'Dismiss or reopen a finding',
|
|
@@ -389,7 +654,7 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
389
654
|
readOnly: false,
|
|
390
655
|
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`).',
|
|
391
656
|
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"] },
|
|
392
|
-
outputSchema: { "type": "object", "properties": { "decisions": { "type": "array", "items": { "description": "Discriminated by `kind` (requirements-review | fork | judge | input-gate). 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). 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
658
|
invoke: (client, args) => client.decisions.setFindingStatus(str(args, 'runId'), str(args, 'itemId'), args.body),
|
|
394
659
|
},
|
|
395
660
|
{
|
|
@@ -422,7 +687,7 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
422
687
|
readOnly: true,
|
|
423
688
|
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`).',
|
|
424
689
|
inputSchema: { "type": "object", "properties": { "runId": { "type": "string", "description": "Path parameter `runId`." } }, "additionalProperties": false, "required": ["runId"] },
|
|
425
|
-
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" } } } } }, "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" } } },
|
|
690
|
+
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" } } },
|
|
426
691
|
invoke: (client, args) => client.debug.getRun(str(args, 'runId')),
|
|
427
692
|
},
|
|
428
693
|
{
|
|
@@ -480,6 +745,17 @@ export const CAT_FACTORY_TOOLS = [
|
|
|
480
745
|
outputSchema: { "type": "object", "properties": { "nextCursor": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "queries": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "createdAt": { "type": "number" }, "executionId": { "type": "string" }, "id": { "type": "string" }, "provider": { "anyOf": [{ "type": "string", "description": "One of: brave, searxng. A newer deployment may report a member not in this list." }, { "type": "null" }] }, "query": { "type": "string" }, "resultCount": { "type": "number" }, "workspaceId": { "type": "string" } } } } } },
|
|
481
746
|
invoke: (client, args) => client.debug.listSearchQueries(str(args, 'runId'), pick(args, QUERY_DEBUG_LIST_SEARCH_QUERIES)),
|
|
482
747
|
},
|
|
748
|
+
{
|
|
749
|
+
name: 'debug_list_tool_calls',
|
|
750
|
+
title: 'List a run\'s tool calls',
|
|
751
|
+
group: 'debug',
|
|
752
|
+
operationId: 'listDebugToolCalls',
|
|
753
|
+
readOnly: true,
|
|
754
|
+
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`).',
|
|
755
|
+
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"] },
|
|
756
|
+
outputSchema: { "type": "object", "properties": { "nextCursor": { "anyOf": [{ "type": "string" }, { "type": "null" }] }, "toolCalls": { "type": "array", "items": { "type": "object", "properties": { "agentKind": { "type": "string" }, "args": { "type": "string" }, "argsDropped": { "type": "number" }, "bodies": { "type": "string", "description": "One of: stored, withheld. A newer deployment may report a member not in this list." }, "createdAt": { "type": "number" }, "endedAt": { "type": "number" }, "executionId": { "type": "string" }, "id": { "type": "string" }, "jobId": { "type": "string" }, "ok": { "type": "boolean" }, "result": { "type": "string" }, "resultDropped": { "type": "number" }, "seq": { "type": "number" }, "startedAt": { "type": "number" }, "tool": { "type": "string" }, "workspaceId": { "type": "string" } } } } } },
|
|
757
|
+
invoke: (client, args) => client.debug.listToolCalls(str(args, 'runId'), pick(args, QUERY_DEBUG_LIST_TOOL_CALLS)),
|
|
758
|
+
},
|
|
483
759
|
];
|
|
484
760
|
/** The operations this facade does not expose, each with its reason. */
|
|
485
761
|
export const CAT_FACTORY_OMITTED_OPERATIONS = [
|
|
@@ -505,7 +781,7 @@ export const CAT_FACTORY_TOOL_GROUPS = {
|
|
|
505
781
|
'notifications': 'The workspace\'s human-actionable inbox: list, act on, or dismiss a run tail.',
|
|
506
782
|
'webhook': 'The workspace\'s one outbound endpoint: register, inspect or remove the receiver that notifications, run-lifecycle events and health alerts are pushed to.',
|
|
507
783
|
'usage': 'The billing period\'s metered budget position and the per-model breakdown behind it.',
|
|
508
|
-
'decisions': '
|
|
509
|
-
'debug': 'A run\'s recorded telemetry: LLM calls, the context each agent was given, infra logs.',
|
|
784
|
+
'decisions': 'Every way a run stops for a person: approval gates, review and brainstorm loops, forks, judge verdicts, PR review findings and the human-verdict gates.',
|
|
785
|
+
'debug': 'A run\'s recorded telemetry: LLM calls, the context each agent was given, the tool calls it made, infra logs.',
|
|
510
786
|
};
|
|
511
787
|
//# sourceMappingURL=tools.generated.js.map
|