cool-workflow 0.2.3 → 0.2.4

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.
Files changed (65) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/apps/architecture-review/app.json +1 -1
  4. package/apps/architecture-review-fast/app.json +1 -1
  5. package/apps/end-to-end-golden-path/app.json +1 -1
  6. package/apps/pr-review-fix-ci/app.json +1 -1
  7. package/apps/release-cut/app.json +1 -1
  8. package/apps/research-synthesis/app.json +1 -1
  9. package/dist/cli/dispatch.js +2 -1
  10. package/dist/cli/io.js +6 -20
  11. package/dist/core/capability-data.js +2 -2
  12. package/dist/core/format/help.js +7 -1
  13. package/dist/core/util/cli-args.js +33 -0
  14. package/dist/core/version.js +1 -1
  15. package/dist/shell/drive.js +14 -6
  16. package/dist/shell/execution-backend/agent.js +10 -1
  17. package/dist/shell/execution-backend/local.js +15 -10
  18. package/dist/shell/pipeline-cli.js +20 -2
  19. package/dist/shell/reclamation-io.js +74 -6
  20. package/dist/shell/registry-cli.js +4 -0
  21. package/dist/shell/run-registry-io.js +1 -0
  22. package/dist/shell/workflow-app-loader.js +67 -1
  23. package/dist/wiring/capability-table/basics.js +2 -2
  24. package/dist/wiring/capability-table/exec-backend.js +9 -9
  25. package/dist/wiring/capability-table/multi-agent.js +69 -69
  26. package/dist/wiring/capability-table/pipeline.js +28 -28
  27. package/dist/wiring/capability-table/registry-core.js +3 -3
  28. package/dist/wiring/capability-table/reporting.js +38 -38
  29. package/dist/wiring/capability-table/scheduling-registry.js +58 -58
  30. package/dist/wiring/capability-table/state.js +34 -34
  31. package/dist/wiring/capability-table/trust-ledger.js +12 -12
  32. package/dist/wiring/capability-table/workflow-apps.js +15 -15
  33. package/docs/agent-delegation-drive.7.md +2 -0
  34. package/docs/cli-mcp-parity.7.md +18 -13
  35. package/docs/contract-migration-tooling.7.md +2 -0
  36. package/docs/control-plane-scheduling.7.md +2 -0
  37. package/docs/durable-state-and-locking.7.md +2 -0
  38. package/docs/evidence-adoption-reasoning-chain.7.md +2 -0
  39. package/docs/execution-backends.7.md +2 -0
  40. package/docs/multi-agent-cli-mcp-surface.7.md +2 -0
  41. package/docs/multi-agent-eval-replay-harness.7.md +2 -0
  42. package/docs/multi-agent-operator-ux.7.md +2 -0
  43. package/docs/node-snapshot-diff-replay.7.md +2 -0
  44. package/docs/observability-cost-accounting.7.md +2 -0
  45. package/docs/project-index.md +8 -4
  46. package/docs/real-execution-backends.7.md +2 -0
  47. package/docs/release-and-migration.7.md +2 -0
  48. package/docs/release-tooling.7.md +20 -0
  49. package/docs/run-registry-control-plane.7.md +2 -0
  50. package/docs/run-retention-reclamation.7.md +22 -3
  51. package/docs/state-explosion-management.7.md +2 -0
  52. package/docs/team-collaboration.7.md +2 -0
  53. package/docs/trust-audit-anchor.7.md +2 -0
  54. package/docs/web-desktop-workbench.7.md +2 -0
  55. package/manifest/plugin.manifest.json +1 -1
  56. package/package.json +2 -1
  57. package/scripts/block-unapproved-tag.sh +19 -4
  58. package/scripts/bump-version.js +27 -10
  59. package/scripts/canonical-apps.js +4 -4
  60. package/scripts/dogfood-release.js +1 -1
  61. package/scripts/golden-path.js +4 -4
  62. package/scripts/purity-baseline.json +0 -30
  63. package/scripts/release-flow.js +137 -12
  64. package/scripts/release-oneclick.js +407 -0
  65. package/scripts/version-sync-check.js +39 -22
@@ -5,7 +5,7 @@
5
5
  // byte-for-byte (extracted with sed, not retyped).
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const registry_core_1 = require("./registry-core");
8
- const io_1 = require("../../cli/io");
8
+ const cli_args_1 = require("../../core/util/cli-args");
9
9
  const state_explosion_text_1 = require("../../core/format/state-explosion-text");
10
10
  // This whole module is required unconditionally at startup for EVERY
11
11
  // command (see wiring/capability-table/index.ts) — a top-level import of
@@ -31,23 +31,23 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.list").mcp.handler = () =>
31
31
  (0, registry_core_1.attachCliBinding)("topology.show", {
32
32
  path: ["topology", "show"],
33
33
  jsonMode: "default",
34
- handler: (args) => ({ json: loadMultiAgentCli().topologyShowCli((0, io_1.required)(args.positionals[0], "topology id")) }),
34
+ handler: (args) => ({ json: loadMultiAgentCli().topologyShowCli((0, cli_args_1.required)(args.positionals[0], "topology id")) }),
35
35
  });
36
- registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.show").mcp.handler = (args) => loadMultiAgentCli().topologyShowCli((0, io_1.required)((0, io_1.optionalArg)(args.topologyId ?? args.id), "topology id"));
36
+ registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.show").mcp.handler = (args) => loadMultiAgentCli().topologyShowCli((0, cli_args_1.required)((0, cli_args_1.optionalArg)(args.topologyId ?? args.id), "topology id"));
37
37
  (0, registry_core_1.attachCliBinding)("topology.validate", {
38
38
  path: ["topology", "validate"],
39
39
  jsonMode: "default",
40
40
  handler: (args) => {
41
- const result = loadMultiAgentCli().topologyValidateCli((0, io_1.required)(args.positionals[0], "topology id"));
41
+ const result = loadMultiAgentCli().topologyValidateCli((0, cli_args_1.required)(args.positionals[0], "topology id"));
42
42
  return { json: result, exitCode: result.valid ? undefined : 1 };
43
43
  },
44
44
  });
45
- registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.validate").mcp.handler = (args) => loadMultiAgentCli().topologyValidateCli((0, io_1.required)((0, io_1.optionalArg)(args.topologyId ?? args.id), "topology id"));
45
+ registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.validate").mcp.handler = (args) => loadMultiAgentCli().topologyValidateCli((0, cli_args_1.required)((0, cli_args_1.optionalArg)(args.topologyId ?? args.id), "topology id"));
46
46
  (0, registry_core_1.attachCliBinding)("topology.apply", {
47
47
  path: ["topology", "apply"],
48
48
  jsonMode: "default",
49
49
  handler: (args) => ({
50
- json: loadMultiAgentCli().topologyApplyCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id"), topologyId: (0, io_1.required)(args.positionals[1], "topology id") }),
50
+ json: loadMultiAgentCli().topologyApplyCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id"), topologyId: (0, cli_args_1.required)(args.positionals[1], "topology id") }),
51
51
  }),
52
52
  });
53
53
  registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.apply").mcp.handler = (args) => loadMultiAgentCli().topologyApplyCli({ ...args, topologyId: args.topologyId ?? args.id });
@@ -57,7 +57,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.apply").mcp.handler = (args
57
57
  path: ["topology", "summary"],
58
58
  jsonMode: "flag",
59
59
  handler: (args) => {
60
- const summary = loadMultiAgentCli().topologySummaryCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options });
60
+ const summary = loadMultiAgentCli().topologySummaryCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options });
61
61
  return { json: summary, text: `${loadTopologyIo().formatTopologySummaryText(summary)}\n` };
62
62
  },
63
63
  });
@@ -68,7 +68,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.summary").mcp.handler = (ar
68
68
  path: ["topology", "graph"],
69
69
  jsonMode: "flag",
70
70
  handler: (args) => {
71
- const runId = (0, io_1.required)(args.positionals[0], "run id");
71
+ const runId = (0, cli_args_1.required)(args.positionals[0], "run id");
72
72
  const graph = loadMultiAgentCli().topologyGraphCli({ runId, ...args.options });
73
73
  return { json: graph, text: `${loadTopologyIo().formatTopologyGraphText(runId, graph)}\n` };
74
74
  },
@@ -86,7 +86,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("topology.graph").mcp.handler = (args
86
86
  handler: (args) => ({
87
87
  json: loadMultiAgentCli().multiAgentRunCli({
88
88
  ...args.options,
89
- runId: (0, io_1.required)(args.positionals[0], "run id"),
89
+ runId: (0, cli_args_1.required)(args.positionals[0], "run id"),
90
90
  multiAgentRunId: args.options.id === undefined ? (args.positionals[1] ?? args.options.multiAgentRunId) : args.options.multiAgentRunId,
91
91
  }),
92
92
  }),
@@ -96,33 +96,33 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.run").mcp.handler = (arg
96
96
  path: ["multi-agent", "status"],
97
97
  jsonMode: "flag",
98
98
  handler: (args) => ({
99
- json: loadMultiAgentCli().multiAgentStatusCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }),
100
- text: loadMultiAgentCli().multiAgentStatusText({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }),
99
+ json: loadMultiAgentCli().multiAgentStatusCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }),
100
+ text: loadMultiAgentCli().multiAgentStatusText({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }),
101
101
  }),
102
102
  });
103
103
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.status").mcp.handler = (args) => loadMultiAgentCli().multiAgentStatusCli(args);
104
104
  (0, registry_core_1.attachCliBinding)("multi-agent.step", {
105
105
  path: ["multi-agent", "step"],
106
106
  jsonMode: "default",
107
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentStepCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }) }),
107
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentStepCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }) }),
108
108
  });
109
109
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.step").mcp.handler = (args) => loadMultiAgentCli().multiAgentStepCli(args);
110
110
  (0, registry_core_1.attachCliBinding)("multi-agent.blackboard", {
111
111
  path: ["multi-agent", "blackboard"],
112
112
  jsonMode: "default",
113
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentBlackboardCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }, args.positionals[1]) }),
113
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentBlackboardCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }, args.positionals[1]) }),
114
114
  });
115
115
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.blackboard").mcp.handler = (args) => loadMultiAgentCli().multiAgentBlackboardCli(args, args.action);
116
116
  (0, registry_core_1.attachCliBinding)("multi-agent.score", {
117
117
  path: ["multi-agent", "score"],
118
118
  jsonMode: "default",
119
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentScoreCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id"), candidate: args.options.candidate ?? args.positionals[1] }) }),
119
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentScoreCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id"), candidate: args.options.candidate ?? args.positionals[1] }) }),
120
120
  });
121
121
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.score").mcp.handler = (args) => loadMultiAgentCli().multiAgentScoreCli(args);
122
122
  (0, registry_core_1.attachCliBinding)("multi-agent.select", {
123
123
  path: ["multi-agent", "select"],
124
124
  jsonMode: "default",
125
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentSelectCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id"), candidate: args.options.candidate ?? args.positionals[1] }) }),
125
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentSelectCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id"), candidate: args.options.candidate ?? args.positionals[1] }) }),
126
126
  });
127
127
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.select").mcp.handler = (args) => loadMultiAgentCli().multiAgentSelectCli(args);
128
128
  // jsonMode "flag": human `Multi-Agent` panel by default, canonical JSON
@@ -131,7 +131,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.select").mcp.handler = (
131
131
  path: ["multi-agent", "summary"],
132
132
  jsonMode: "flag",
133
133
  handler: (args) => {
134
- const summary = loadMultiAgentCli().multiAgentSummaryCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options });
134
+ const summary = loadMultiAgentCli().multiAgentSummaryCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options });
135
135
  return { json: summary, text: `${loadOperatorUxText().formatMultiAgentSummaryText(summary)}\n` };
136
136
  },
137
137
  });
@@ -143,7 +143,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.summary").mcp.handler =
143
143
  // second row exists so both capabilities carry a cli binding (the
144
144
  // both-surface pairing) and `cw help multi-agent` can list both forms.
145
145
  function multiAgentGraphHandler(args) {
146
- const call = { runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options };
146
+ const call = { runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options };
147
147
  if (args.options.view !== undefined || args.options.focus !== undefined || args.options.depth !== undefined) {
148
148
  const compact = loadMultiAgentCli().multiAgentGraphCompactCli(call);
149
149
  return { json: compact, text: (0, state_explosion_text_1.formatCompactGraph)(compact) };
@@ -162,8 +162,8 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.graph").mcp.handler = (a
162
162
  path: ["multi-agent", "dependencies"],
163
163
  jsonMode: "flag",
164
164
  handler: (args) => ({
165
- json: loadMultiAgentCli().multiAgentDependenciesCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }),
166
- text: loadMultiAgentCli().multiAgentDependenciesText({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }),
165
+ json: loadMultiAgentCli().multiAgentDependenciesCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }),
166
+ text: loadMultiAgentCli().multiAgentDependenciesText({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }),
167
167
  }),
168
168
  });
169
169
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.dependencies").mcp.handler = (args) => loadMultiAgentCli().multiAgentDependenciesCli(args);
@@ -171,8 +171,8 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.dependencies").mcp.handl
171
171
  path: ["multi-agent", "failures"],
172
172
  jsonMode: "flag",
173
173
  handler: (args) => ({
174
- json: loadMultiAgentCli().multiAgentFailuresCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }),
175
- text: loadMultiAgentCli().multiAgentFailuresText({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }),
174
+ json: loadMultiAgentCli().multiAgentFailuresCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }),
175
+ text: loadMultiAgentCli().multiAgentFailuresText({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }),
176
176
  }),
177
177
  });
178
178
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.failures").mcp.handler = (args) => loadMultiAgentCli().multiAgentFailuresCli(args);
@@ -180,8 +180,8 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.failures").mcp.handler =
180
180
  path: ["multi-agent", "evidence"],
181
181
  jsonMode: "flag",
182
182
  handler: (args) => ({
183
- json: loadMultiAgentCli().multiAgentEvidenceCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }),
184
- text: loadMultiAgentCli().multiAgentEvidenceText({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }),
183
+ json: loadMultiAgentCli().multiAgentEvidenceCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }),
184
+ text: loadMultiAgentCli().multiAgentEvidenceText({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }),
185
185
  }),
186
186
  });
187
187
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.evidence").mcp.handler = (args) => loadMultiAgentCli().multiAgentEvidenceCli(args);
@@ -192,7 +192,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.evidence").mcp.handler =
192
192
  // matching the old handler's printJson refresh arm); otherwise it prints the
193
193
  // report (text, or JSON under --json).
194
194
  function multiAgentReasoningHandler(args) {
195
- const call = { runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options };
195
+ const call = { runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options };
196
196
  if (args.options.refresh && args.options.evidence === undefined && args.options.evidenceId === undefined) {
197
197
  return { json: loadMultiAgentCli().multiAgentReasoningRefreshCli(call) };
198
198
  }
@@ -215,7 +215,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.reasoning.refresh").mcp.
215
215
  path: ["multi-agent", "summarize"],
216
216
  jsonMode: "flag",
217
217
  handler: (args) => {
218
- const result = loadMultiAgentCli().multiAgentSummarizeCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options });
218
+ const result = loadMultiAgentCli().multiAgentSummarizeCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options });
219
219
  return { json: result, text: (0, state_explosion_text_1.formatStateExplosionReport)(result) };
220
220
  },
221
221
  });
@@ -224,13 +224,13 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.graph.compact").mcp.hand
224
224
  (0, registry_core_1.attachCliBinding)("blackboard.summarize", {
225
225
  path: ["blackboard", "summarize"],
226
226
  jsonMode: "flag",
227
- handler: (args) => ({ json: loadMultiAgentCli().blackboardSummarizeCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }) }),
227
+ handler: (args) => ({ json: loadMultiAgentCli().blackboardSummarizeCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }) }),
228
228
  });
229
229
  registry_core_1.REGISTRY_BY_CAPABILITY.get("blackboard.summarize").mcp.handler = (args) => loadMultiAgentCli().blackboardSummarizeCli(args);
230
230
  (0, registry_core_1.attachCliBinding)("contract.show", {
231
231
  path: ["contract", "show"],
232
232
  jsonMode: "default",
233
- handler: (args) => ({ json: loadMultiAgentCli().contractShowCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }, args.positionals[1]) }),
233
+ handler: (args) => ({ json: loadMultiAgentCli().contractShowCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }, args.positionals[1]) }),
234
234
  });
235
235
  registry_core_1.REGISTRY_BY_CAPABILITY.get("contract.show").mcp.handler = (args) => loadMultiAgentCli().contractShowCli(args);
236
236
  (0, registry_core_1.attachCliBinding)("multi-agent.run.create", {
@@ -240,7 +240,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("contract.show").mcp.handler = (args)
240
240
  handler: (args) => ({
241
241
  json: loadMultiAgentCli().multiAgentRoleCli({
242
242
  ...args.options,
243
- runId: (0, io_1.required)(args.positionals[0], "run id"),
243
+ runId: (0, cli_args_1.required)(args.positionals[0], "run id"),
244
244
  roleId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.roleId,
245
245
  }),
246
246
  }),
@@ -252,7 +252,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("contract.show").mcp.handler = (args)
252
252
  handler: (args) => ({
253
253
  json: loadMultiAgentCli().multiAgentGroupCli({
254
254
  ...args.options,
255
- runId: (0, io_1.required)(args.positionals[0], "run id"),
255
+ runId: (0, cli_args_1.required)(args.positionals[0], "run id"),
256
256
  groupId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.groupId,
257
257
  }),
258
258
  }),
@@ -264,7 +264,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("contract.show").mcp.handler = (args)
264
264
  handler: (args) => ({
265
265
  json: loadMultiAgentCli().multiAgentMembershipCli({
266
266
  ...args.options,
267
- runId: (0, io_1.required)(args.positionals[0], "run id"),
267
+ runId: (0, cli_args_1.required)(args.positionals[0], "run id"),
268
268
  membershipId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.membershipId,
269
269
  }),
270
270
  }),
@@ -276,7 +276,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("contract.show").mcp.handler = (args)
276
276
  handler: (args) => ({
277
277
  json: loadMultiAgentCli().multiAgentFanoutCli({
278
278
  ...args.options,
279
- runId: (0, io_1.required)(args.positionals[0], "run id"),
279
+ runId: (0, cli_args_1.required)(args.positionals[0], "run id"),
280
280
  fanoutId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.fanoutId,
281
281
  }),
282
282
  }),
@@ -288,7 +288,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("contract.show").mcp.handler = (args)
288
288
  handler: (args) => ({
289
289
  json: loadMultiAgentCli().multiAgentFaninCli({
290
290
  ...args.options,
291
- runId: (0, io_1.required)(args.positionals[0], "run id"),
291
+ runId: (0, cli_args_1.required)(args.positionals[0], "run id"),
292
292
  faninId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.faninId,
293
293
  }),
294
294
  }),
@@ -319,7 +319,7 @@ function multiAgentRoleHandler(args) {
319
319
  return {
320
320
  json: loadMultiAgentCli().multiAgentRoleCli({
321
321
  ...args.options,
322
- runId: (0, io_1.required)(args.positionals[0], "run id"),
322
+ runId: (0, cli_args_1.required)(args.positionals[0], "run id"),
323
323
  roleId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.roleId,
324
324
  }),
325
325
  };
@@ -330,55 +330,55 @@ function multiAgentRoleHandler(args) {
330
330
  path: ["multi-agent", "group"],
331
331
  helpPath: ["multi-agent", "group"],
332
332
  jsonMode: "default",
333
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentGroupCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id"), groupId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.groupId }) }),
333
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentGroupCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id"), groupId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.groupId }) }),
334
334
  });
335
335
  (0, registry_core_1.attachCliBinding)("multi-agent.membership.show", {
336
336
  path: ["multi-agent", "membership"],
337
337
  helpPath: ["multi-agent", "membership"],
338
338
  jsonMode: "default",
339
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentMembershipCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id"), membershipId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.membershipId }) }),
339
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentMembershipCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id"), membershipId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.membershipId }) }),
340
340
  });
341
341
  (0, registry_core_1.attachCliBinding)("multi-agent.fanout.show", {
342
342
  path: ["multi-agent", "fanout"],
343
343
  helpPath: ["multi-agent", "fanout"],
344
344
  jsonMode: "default",
345
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentFanoutCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id"), fanoutId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.fanoutId }) }),
345
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentFanoutCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id"), fanoutId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.fanoutId }) }),
346
346
  });
347
347
  (0, registry_core_1.attachCliBinding)("multi-agent.fanin.show", {
348
348
  path: ["multi-agent", "fanin"],
349
349
  helpPath: ["multi-agent", "fanin"],
350
350
  jsonMode: "default",
351
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentFaninCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id"), faninId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.faninId }) }),
351
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentFaninCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id"), faninId: args.options.id === undefined && args.positionals.length >= 2 ? args.positionals[1] : args.options.faninId }) }),
352
352
  });
353
353
  (0, registry_core_1.attachCliBinding)("multi-agent.run.transition", {
354
354
  path: ["multi-agent", "transition"],
355
355
  jsonMode: "default",
356
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentRunCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }) }),
356
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentRunCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }) }),
357
357
  });
358
358
  registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.run.transition").mcp.handler = (args) => loadMultiAgentCli().multiAgentRunCli(args);
359
359
  (0, registry_core_1.attachCliBinding)("multi-agent.run.show", {
360
360
  path: ["multi-agent", "show"],
361
361
  jsonMode: "default",
362
- handler: (args) => ({ json: loadMultiAgentCli().multiAgentShowCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }, (0, io_1.required)(args.positionals[1], "id")) }),
362
+ handler: (args) => ({ json: loadMultiAgentCli().multiAgentShowCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }, (0, cli_args_1.required)(args.positionals[1], "id")) }),
363
363
  });
364
- registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.run.show").mcp.handler = (args) => loadMultiAgentCli().multiAgentShowCli(args, (0, io_1.required)((0, io_1.optionalArg)(args.multiAgentRunId ?? args.id), "id"));
364
+ registry_core_1.REGISTRY_BY_CAPABILITY.get("multi-agent.run.show").mcp.handler = (args) => loadMultiAgentCli().multiAgentShowCli(args, (0, cli_args_1.required)((0, cli_args_1.optionalArg)(args.multiAgentRunId ?? args.id), "id"));
365
365
  // ---- blackboard / coordinator -------------------------------------------
366
366
  (0, registry_core_1.attachCliBinding)("blackboard.summary", {
367
367
  path: ["blackboard", "summary"],
368
368
  jsonMode: "default",
369
- handler: (args) => ({ json: loadMultiAgentCli().blackboardSummaryCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }) }),
369
+ handler: (args) => ({ json: loadMultiAgentCli().blackboardSummaryCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }) }),
370
370
  });
371
371
  registry_core_1.REGISTRY_BY_CAPABILITY.get("blackboard.summary").mcp.handler = (args) => loadMultiAgentCli().blackboardSummaryCli(args);
372
372
  (0, registry_core_1.attachCliBinding)("blackboard.graph", {
373
373
  path: ["blackboard", "graph"],
374
374
  jsonMode: "default",
375
- handler: (args) => ({ json: loadMultiAgentCli().blackboardGraphCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }) }),
375
+ handler: (args) => ({ json: loadMultiAgentCli().blackboardGraphCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }) }),
376
376
  });
377
377
  registry_core_1.REGISTRY_BY_CAPABILITY.get("blackboard.graph").mcp.handler = (args) => loadMultiAgentCli().blackboardGraphCli(args);
378
378
  (0, registry_core_1.attachCliBinding)("blackboard.resolve", {
379
379
  path: ["blackboard", "resolve"],
380
380
  jsonMode: "default",
381
- handler: (args) => ({ json: loadMultiAgentCli().blackboardResolveCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }) }),
381
+ handler: (args) => ({ json: loadMultiAgentCli().blackboardResolveCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }) }),
382
382
  });
383
383
  registry_core_1.REGISTRY_BY_CAPABILITY.get("blackboard.resolve").mcp.handler = (args) => loadMultiAgentCli().blackboardResolveCli(args);
384
384
  // GAP: the blackboard write/read verbs accept the sub-verb's ACTION word
@@ -398,9 +398,9 @@ const BLACKBOARD_ACTION_WORDS = new Set(["create", "post", "put", "add", "list",
398
398
  function blackboardRunAndAction(args) {
399
399
  const [first, second] = args.positionals;
400
400
  if (first !== undefined && BLACKBOARD_ACTION_WORDS.has(first)) {
401
- return { runId: (0, io_1.required)(second, "run id"), action: first };
401
+ return { runId: (0, cli_args_1.required)(second, "run id"), action: first };
402
402
  }
403
- return { runId: (0, io_1.required)(first, "run id"), action: second };
403
+ return { runId: (0, cli_args_1.required)(first, "run id"), action: second };
404
404
  }
405
405
  (0, registry_core_1.attachCliBinding)("blackboard.topic.create", {
406
406
  path: ["blackboard", "topic"],
@@ -439,71 +439,71 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("blackboard.artifact.list").mcp.handl
439
439
  (0, registry_core_1.attachCliBinding)("blackboard.snapshot", {
440
440
  path: ["blackboard", "snapshot"],
441
441
  jsonMode: "default",
442
- handler: (args) => ({ json: loadMultiAgentCli().blackboardSnapshotCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }) }),
442
+ handler: (args) => ({ json: loadMultiAgentCli().blackboardSnapshotCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }) }),
443
443
  });
444
444
  registry_core_1.REGISTRY_BY_CAPABILITY.get("blackboard.snapshot").mcp.handler = (args) => loadMultiAgentCli().blackboardSnapshotCli(args);
445
445
  (0, registry_core_1.attachCliBinding)("coordinator.summary", {
446
446
  path: ["coordinator", "summary"],
447
447
  jsonMode: "default",
448
- handler: (args) => ({ json: loadMultiAgentCli().coordinatorSummaryCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }) }),
448
+ handler: (args) => ({ json: loadMultiAgentCli().coordinatorSummaryCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }) }),
449
449
  });
450
450
  registry_core_1.REGISTRY_BY_CAPABILITY.get("coordinator.summary").mcp.handler = (args) => loadMultiAgentCli().coordinatorSummaryCli(args);
451
451
  (0, registry_core_1.attachCliBinding)("coordinator.decision", {
452
452
  path: ["coordinator", "decision"],
453
453
  jsonMode: "default",
454
- handler: (args) => ({ json: loadMultiAgentCli().coordinatorDecisionCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }) }),
454
+ handler: (args) => ({ json: loadMultiAgentCli().coordinatorDecisionCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }) }),
455
455
  });
456
456
  registry_core_1.REGISTRY_BY_CAPABILITY.get("coordinator.decision").mcp.handler = (args) => loadMultiAgentCli().coordinatorDecisionCli(args);
457
457
  // ---- candidate scoring ----------------------------------------------------
458
458
  (0, registry_core_1.attachCliBinding)("candidate.list", {
459
459
  path: ["candidate", "list"],
460
460
  jsonMode: "default",
461
- handler: (args) => ({ json: loadMultiAgentCli().candidateListCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }) }),
461
+ handler: (args) => ({ json: loadMultiAgentCli().candidateListCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }) }),
462
462
  });
463
463
  registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.list").mcp.handler = (args) => loadMultiAgentCli().candidateListCli(args);
464
464
  (0, registry_core_1.attachCliBinding)("candidate.show", {
465
465
  path: ["candidate", "show"],
466
466
  jsonMode: "default",
467
- handler: (args) => ({ json: loadMultiAgentCli().candidateShowCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }, (0, io_1.required)(args.positionals[1], "candidate id")) }),
467
+ handler: (args) => ({ json: loadMultiAgentCli().candidateShowCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }, (0, cli_args_1.required)(args.positionals[1], "candidate id")) }),
468
468
  });
469
- registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.show").mcp.handler = (args) => loadMultiAgentCli().candidateShowCli(args, (0, io_1.required)((0, io_1.optionalArg)(args.candidateId), "candidate id"));
469
+ registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.show").mcp.handler = (args) => loadMultiAgentCli().candidateShowCli(args, (0, cli_args_1.required)((0, cli_args_1.optionalArg)(args.candidateId), "candidate id"));
470
470
  (0, registry_core_1.attachCliBinding)("candidate.register", {
471
471
  path: ["candidate", "register"],
472
472
  jsonMode: "default",
473
- handler: (args) => ({ json: loadMultiAgentCli().candidateRegisterCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }) }),
473
+ handler: (args) => ({ json: loadMultiAgentCli().candidateRegisterCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }) }),
474
474
  });
475
475
  registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.register").mcp.handler = (args) => loadMultiAgentCli().candidateRegisterCli(args);
476
476
  (0, registry_core_1.attachCliBinding)("candidate.score", {
477
477
  path: ["candidate", "score"],
478
478
  jsonMode: "default",
479
- handler: (args) => ({ json: loadMultiAgentCli().candidateScoreCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }, (0, io_1.required)(args.positionals[1], "candidate id")) }),
479
+ handler: (args) => ({ json: loadMultiAgentCli().candidateScoreCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }, (0, cli_args_1.required)(args.positionals[1], "candidate id")) }),
480
480
  });
481
- registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.score").mcp.handler = (args) => loadMultiAgentCli().candidateScoreCli(args, (0, io_1.required)((0, io_1.optionalArg)(args.candidateId), "candidate id"));
481
+ registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.score").mcp.handler = (args) => loadMultiAgentCli().candidateScoreCli(args, (0, cli_args_1.required)((0, cli_args_1.optionalArg)(args.candidateId), "candidate id"));
482
482
  (0, registry_core_1.attachCliBinding)("candidate.rank", {
483
483
  path: ["candidate", "rank"],
484
484
  jsonMode: "default",
485
- handler: (args) => ({ json: loadMultiAgentCli().candidateRankCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options }) }),
485
+ handler: (args) => ({ json: loadMultiAgentCli().candidateRankCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options }) }),
486
486
  });
487
487
  registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.rank").mcp.handler = (args) => loadMultiAgentCli().candidateRankCli(args);
488
488
  (0, registry_core_1.attachCliBinding)("candidate.select", {
489
489
  path: ["candidate", "select"],
490
490
  jsonMode: "default",
491
- handler: (args) => ({ json: loadMultiAgentCli().candidateSelectCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }, (0, io_1.required)(args.positionals[1], "candidate id")) }),
491
+ handler: (args) => ({ json: loadMultiAgentCli().candidateSelectCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }, (0, cli_args_1.required)(args.positionals[1], "candidate id")) }),
492
492
  });
493
- registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.select").mcp.handler = (args) => loadMultiAgentCli().candidateSelectCli(args, (0, io_1.required)((0, io_1.optionalArg)(args.candidateId), "candidate id"));
493
+ registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.select").mcp.handler = (args) => loadMultiAgentCli().candidateSelectCli(args, (0, cli_args_1.required)((0, cli_args_1.optionalArg)(args.candidateId), "candidate id"));
494
494
  (0, registry_core_1.attachCliBinding)("candidate.reject", {
495
495
  path: ["candidate", "reject"],
496
496
  jsonMode: "default",
497
- handler: (args) => ({ json: loadMultiAgentCli().candidateRejectCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }, (0, io_1.required)(args.positionals[1], "candidate id")) }),
497
+ handler: (args) => ({ json: loadMultiAgentCli().candidateRejectCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }, (0, cli_args_1.required)(args.positionals[1], "candidate id")) }),
498
498
  });
499
- registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.reject").mcp.handler = (args) => loadMultiAgentCli().candidateRejectCli(args, (0, io_1.required)((0, io_1.optionalArg)(args.candidateId), "candidate id"));
499
+ registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.reject").mcp.handler = (args) => loadMultiAgentCli().candidateRejectCli(args, (0, cli_args_1.required)((0, cli_args_1.optionalArg)(args.candidateId), "candidate id"));
500
500
  // jsonMode "flag": human `Candidates` panel by default, canonical JSON under
501
501
  // --json (old build's candidate.summary was flag).
502
502
  (0, registry_core_1.attachCliBinding)("candidate.summary", {
503
503
  path: ["candidate", "summary"],
504
504
  jsonMode: "flag",
505
505
  handler: (args) => {
506
- const summary = loadMultiAgentCli().candidateSummaryCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options });
506
+ const summary = loadMultiAgentCli().candidateSummaryCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options });
507
507
  return { json: summary, text: `${loadOperatorUxText().formatCandidateSummaryText(summary)}\n` };
508
508
  },
509
509
  });
@@ -512,19 +512,19 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("candidate.summary").mcp.handler = (a
512
512
  (0, registry_core_1.attachCliBinding)("approve", {
513
513
  path: ["approve"],
514
514
  jsonMode: "default",
515
- handler: (args) => ({ json: loadMultiAgentCli().approveCli({ ...args.options, runId: (0, io_1.required)(args.positionals[1], "run id"), body: args.positionals[3] }, args.positionals[0], args.positionals[2]) }),
515
+ handler: (args) => ({ json: loadMultiAgentCli().approveCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[1], "run id"), body: args.positionals[3] }, args.positionals[0], args.positionals[2]) }),
516
516
  });
517
517
  registry_core_1.REGISTRY_BY_CAPABILITY.get("approve").mcp.handler = (args) => loadMultiAgentCli().approveCli(args);
518
518
  (0, registry_core_1.attachCliBinding)("reject", {
519
519
  path: ["reject"],
520
520
  jsonMode: "default",
521
- handler: (args) => ({ json: loadMultiAgentCli().rejectCollabCli({ ...args.options, runId: (0, io_1.required)(args.positionals[1], "run id") }, args.positionals[0], args.positionals[2]) }),
521
+ handler: (args) => ({ json: loadMultiAgentCli().rejectCollabCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[1], "run id") }, args.positionals[0], args.positionals[2]) }),
522
522
  });
523
523
  registry_core_1.REGISTRY_BY_CAPABILITY.get("reject").mcp.handler = (args) => loadMultiAgentCli().rejectCollabCli(args);
524
524
  (0, registry_core_1.attachCliBinding)("comment.add", {
525
525
  path: ["comment", "add"],
526
526
  jsonMode: "default",
527
- handler: (args) => ({ json: loadMultiAgentCli().commentAddCli({ ...args.options, runId: (0, io_1.required)(args.positionals[1], "run id"), body: args.options.body ?? args.positionals[3] }, args.positionals[0], args.positionals[2]) }),
527
+ handler: (args) => ({ json: loadMultiAgentCli().commentAddCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[1], "run id"), body: args.options.body ?? args.positionals[3] }, args.positionals[0], args.positionals[2]) }),
528
528
  });
529
529
  registry_core_1.REGISTRY_BY_CAPABILITY.get("comment.add").mcp.handler = (args) => loadMultiAgentCli().commentAddCli(args);
530
530
  // jsonMode "flag": human comment list by default, canonical JSON under
@@ -533,7 +533,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("comment.add").mcp.handler = (args) =
533
533
  path: ["comment", "list"],
534
534
  jsonMode: "flag",
535
535
  handler: (args) => {
536
- const report = loadMultiAgentCli().commentListCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options });
536
+ const report = loadMultiAgentCli().commentListCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options });
537
537
  return { json: report, text: `${loadCollaborationIo().formatCommentList(report)}\n` };
538
538
  },
539
539
  });
@@ -546,8 +546,8 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("comment.list").mcp.handler = (args)
546
546
  // positional, so a bare `cw handoff` fails with "Missing target kind" — not
547
547
  // "Missing run id". The kind check must fire before the run-id read.
548
548
  handler: (args) => {
549
- const kind = (0, io_1.required)(args.positionals[0], "target kind");
550
- const runId = (0, io_1.required)(args.positionals[1], "run id");
549
+ const kind = (0, cli_args_1.required)(args.positionals[0], "target kind");
550
+ const runId = (0, cli_args_1.required)(args.positionals[1], "run id");
551
551
  return { json: loadMultiAgentCli().handoffCli({ ...args.options, runId }, kind, args.positionals[2]) };
552
552
  },
553
553
  });
@@ -558,7 +558,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("handoff").mcp.handler = (args) => lo
558
558
  path: ["review", "status"],
559
559
  jsonMode: "flag",
560
560
  handler: (args) => {
561
- const report = loadMultiAgentCli().reviewStatusCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options });
561
+ const report = loadMultiAgentCli().reviewStatusCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options });
562
562
  return { json: report, text: `${loadCollaborationIo().formatReviewStatus(report)}\n` };
563
563
  },
564
564
  });
@@ -566,7 +566,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("review.status").mcp.handler = (args)
566
566
  (0, registry_core_1.attachCliBinding)("review.policy", {
567
567
  path: ["review", "policy"],
568
568
  jsonMode: "default",
569
- handler: (args) => ({ json: loadMultiAgentCli().reviewPolicyCli({ ...args.options, runId: (0, io_1.required)(args.positionals[0], "run id") }) }),
569
+ handler: (args) => ({ json: loadMultiAgentCli().reviewPolicyCli({ ...args.options, runId: (0, cli_args_1.required)(args.positionals[0], "run id") }) }),
570
570
  });
571
571
  registry_core_1.REGISTRY_BY_CAPABILITY.get("review.policy").mcp.handler = (args) => loadMultiAgentCli().reviewPolicyCli(args);
572
572
  // ---- eval replay harness ---------------------------------------------------
@@ -577,7 +577,7 @@ registry_core_1.REGISTRY_BY_CAPABILITY.get("review.policy").mcp.handler = (args)
577
577
  path: ["eval", "snapshot"],
578
578
  jsonMode: "flag",
579
579
  handler: (args) => {
580
- const result = loadMultiAgentCli().evalSnapshotCli({ runId: (0, io_1.required)(args.positionals[0], "run id"), ...args.options });
580
+ const result = loadMultiAgentCli().evalSnapshotCli({ runId: (0, cli_args_1.required)(args.positionals[0], "run id"), ...args.options });
581
581
  return { json: result, text: loadEvalText().formatMultiAgentEval(result) };
582
582
  },
583
583
  });