cool-workflow 0.1.98 → 0.2.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.
Files changed (306) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/README.md +11 -2
  4. package/apps/architecture-review/app.json +1 -1
  5. package/apps/architecture-review-fast/app.json +1 -1
  6. package/apps/end-to-end-golden-path/app.json +1 -1
  7. package/apps/pr-review-fix-ci/app.json +1 -1
  8. package/apps/release-cut/app.json +1 -1
  9. package/apps/research-synthesis/app.json +1 -1
  10. package/dist/cli/dispatch.js +236 -0
  11. package/dist/cli/entry.js +120 -0
  12. package/dist/cli/io.js +21 -4
  13. package/dist/cli/parseargv.js +157 -0
  14. package/dist/cli.js +6 -33
  15. package/dist/core/capability-table.js +3534 -0
  16. package/dist/core/format/help.js +314 -0
  17. package/dist/{state-explosion/format.js → core/format/state-explosion-text.js} +10 -1
  18. package/dist/core/hash.js +137 -0
  19. package/dist/core/multi-agent/candidate-scoring.js +219 -0
  20. package/dist/core/multi-agent/collaboration.js +481 -0
  21. package/dist/core/multi-agent/coordinator.js +515 -0
  22. package/dist/core/multi-agent/eval-replay.js +306 -0
  23. package/dist/core/multi-agent/runtime.js +929 -0
  24. package/dist/core/multi-agent/topology.js +298 -0
  25. package/dist/core/multi-agent/trust-policy.js +197 -0
  26. package/dist/core/pipeline/commit-gate.js +320 -0
  27. package/dist/{pipeline-contract.js → core/pipeline/contract.js} +24 -37
  28. package/dist/core/pipeline/dispatch.js +103 -0
  29. package/dist/core/pipeline/drive-decide.js +227 -0
  30. package/dist/core/pipeline/error-feedback.js +161 -0
  31. package/dist/core/pipeline/loop-expansion.js +124 -0
  32. package/dist/{result-normalize.js → core/pipeline/result-normalize.js} +14 -37
  33. package/dist/core/pipeline/runner.js +230 -0
  34. package/dist/{contract-migration.js → core/state/contract-migration.js} +68 -92
  35. package/dist/{state-migrations.js → core/state/migrations.js} +103 -96
  36. package/dist/core/state/node-projection.js +95 -0
  37. package/dist/core/state/node-snapshot.js +230 -0
  38. package/dist/core/state/run-paths.js +93 -0
  39. package/dist/{schema-validate.js → core/state/schema-validate.js} +35 -28
  40. package/dist/core/state/schema.js +50 -0
  41. package/dist/core/state/state-explosion/digest.js +243 -0
  42. package/dist/core/state/state-explosion/graph.js +527 -0
  43. package/dist/{state-explosion → core/state/state-explosion}/helpers.js +34 -3
  44. package/dist/core/state/state-explosion/report.js +187 -0
  45. package/dist/{state-explosion → core/state/state-explosion}/size.js +25 -7
  46. package/dist/{state-node.js → core/state/state-node.js} +90 -113
  47. package/dist/core/state/types.js +19 -0
  48. package/dist/{validation.js → core/state/validation.js} +64 -131
  49. package/dist/core/trust/evidence-grounding.js +134 -0
  50. package/dist/core/trust/ledger.js +199 -0
  51. package/dist/{telemetry-attestation.js → core/trust/telemetry-attestation.js} +94 -68
  52. package/dist/core/trust/telemetry-ledger.js +127 -0
  53. package/dist/core/types.js +20 -0
  54. package/dist/core/version.js +16 -0
  55. package/dist/{workflow-app-framework.js → core/workflow-apps/app-schema.js} +337 -426
  56. package/dist/mcp/dispatch.js +104 -0
  57. package/dist/mcp/server.js +144 -0
  58. package/dist/mcp-server.js +6 -84
  59. package/dist/{agent-config.js → shell/agent-config.js} +118 -71
  60. package/dist/shell/app-run-cli.js +88 -0
  61. package/dist/shell/audit-cli.js +259 -0
  62. package/dist/shell/audit-provenance.js +83 -0
  63. package/dist/shell/candidate-scoring-io.js +459 -0
  64. package/dist/shell/collaboration-io.js +264 -0
  65. package/dist/shell/commit-summary.js +104 -0
  66. package/dist/shell/commit.js +290 -0
  67. package/dist/shell/coordinator-io.js +476 -0
  68. package/dist/shell/demo-cli.js +19 -0
  69. package/dist/shell/dispatch.js +162 -0
  70. package/dist/{doctor.js → shell/doctor.js} +123 -56
  71. package/dist/shell/drive.js +873 -0
  72. package/dist/shell/error-feedback-io.js +305 -0
  73. package/dist/shell/eval-io.js +473 -0
  74. package/dist/{multi-agent-eval/format.js → shell/eval-text.js} +78 -49
  75. package/dist/{evidence-reasoning.js → shell/evidence-reasoning.js} +124 -255
  76. package/dist/shell/exec-backend-cli.js +88 -0
  77. package/dist/shell/execution-backend/agent.js +475 -0
  78. package/dist/shell/execution-backend/ci.js +15 -0
  79. package/dist/shell/execution-backend/container.js +69 -0
  80. package/dist/shell/execution-backend/envelopes.js +55 -0
  81. package/dist/shell/execution-backend/local.js +113 -0
  82. package/dist/shell/execution-backend/probes.js +175 -0
  83. package/dist/shell/execution-backend/registry.js +402 -0
  84. package/dist/shell/execution-backend/remote.js +128 -0
  85. package/dist/shell/execution-backend/types.js +11 -0
  86. package/dist/shell/feedback-cli.js +81 -0
  87. package/dist/shell/feedback-operations.js +48 -0
  88. package/dist/shell/fs-atomic.js +276 -0
  89. package/dist/shell/harness.js +98 -0
  90. package/dist/shell/ledger-cli.js +212 -0
  91. package/dist/shell/ledger-io.js +169 -0
  92. package/dist/shell/man-cli.js +89 -0
  93. package/dist/shell/metrics-cli.js +98 -0
  94. package/dist/shell/multi-agent-cli.js +1002 -0
  95. package/dist/shell/multi-agent-host.js +563 -0
  96. package/dist/shell/multi-agent-io.js +387 -0
  97. package/dist/{multi-agent-operator-ux.js → shell/multi-agent-operator-ux.js} +234 -191
  98. package/dist/shell/node-store.js +124 -0
  99. package/dist/{observability/format.js → shell/observability-format.js} +7 -1
  100. package/dist/{observability/intake.js → shell/observability-intake.js} +79 -56
  101. package/dist/{observability.js → shell/observability.js} +159 -332
  102. package/dist/{onramp.js → shell/onramp.js} +11 -0
  103. package/dist/{operator-ux/format.js → shell/operator-ux-text.js} +250 -239
  104. package/dist/shell/operator-ux.js +431 -0
  105. package/dist/shell/orchestrator.js +231 -0
  106. package/dist/shell/pipeline-cli.js +667 -0
  107. package/dist/shell/pipeline.js +217 -0
  108. package/dist/shell/reclamation-io.js +1366 -0
  109. package/dist/shell/registry-cli.js +329 -0
  110. package/dist/{remote-source.js → shell/remote-source.js} +2 -2
  111. package/dist/shell/report-cli.js +101 -0
  112. package/dist/shell/report-view-cli.js +117 -0
  113. package/dist/{orchestrator → shell}/report.js +289 -282
  114. package/dist/shell/reporter.js +62 -0
  115. package/dist/shell/run-export-cli.js +106 -0
  116. package/dist/shell/run-export.js +680 -0
  117. package/dist/shell/run-registry-io.js +1014 -0
  118. package/dist/shell/run-store.js +164 -0
  119. package/dist/{sandbox-profile.js → shell/sandbox-profile.js} +134 -95
  120. package/dist/{scheduler.js → shell/scheduler-io.js} +248 -48
  121. package/dist/shell/scheduling-io.js +311 -0
  122. package/dist/shell/state-cli.js +181 -0
  123. package/dist/shell/state-explosion-cli.js +197 -0
  124. package/dist/shell/telemetry-cli.js +85 -0
  125. package/dist/{telemetry-demo.js → shell/telemetry-demo.js} +149 -119
  126. package/dist/shell/telemetry-ledger-io.js +132 -0
  127. package/dist/{term.js → shell/term.js} +36 -46
  128. package/dist/shell/topology-io.js +361 -0
  129. package/dist/shell/trust-audit.js +471 -0
  130. package/dist/{multi-agent-trust.js → shell/trust-policy-io.js} +67 -205
  131. package/dist/shell/verifier.js +48 -0
  132. package/dist/shell/workbench-host.js +250 -0
  133. package/dist/shell/workbench-text.js +18 -0
  134. package/dist/shell/workbench.js +175 -0
  135. package/dist/shell/worker-cli.js +124 -0
  136. package/dist/shell/worker-isolation.js +852 -0
  137. package/dist/shell/workflow-app-loader.js +650 -0
  138. package/docs/agent-delegation-drive.7.md +2 -0
  139. package/docs/cli-mcp-parity.7.md +280 -219
  140. package/docs/contract-migration-tooling.7.md +2 -0
  141. package/docs/control-plane-scheduling.7.md +2 -0
  142. package/docs/durable-state-and-locking.7.md +2 -0
  143. package/docs/evidence-adoption-reasoning-chain.7.md +2 -0
  144. package/docs/execution-backends.7.md +2 -0
  145. package/docs/multi-agent-cli-mcp-surface.7.md +2 -0
  146. package/docs/multi-agent-eval-replay-harness.7.md +2 -0
  147. package/docs/multi-agent-operator-ux.7.md +2 -0
  148. package/docs/node-snapshot-diff-replay.7.md +2 -0
  149. package/docs/observability-cost-accounting.7.md +2 -0
  150. package/docs/project-index.md +132 -71
  151. package/docs/real-execution-backends.7.md +2 -0
  152. package/docs/release-and-migration.7.md +2 -0
  153. package/docs/release-tooling.7.md +2 -0
  154. package/docs/run-registry-control-plane.7.md +2 -0
  155. package/docs/run-retention-reclamation.7.md +23 -0
  156. package/docs/state-explosion-management.7.md +2 -0
  157. package/docs/team-collaboration.7.md +2 -0
  158. package/docs/web-desktop-workbench.7.md +2 -0
  159. package/manifest/plugin.manifest.json +1 -1
  160. package/manifest/source-context-profiles.json +9 -13
  161. package/package.json +1 -1
  162. package/scripts/agents/cw-attest-wrap.js +2 -2
  163. package/scripts/bump-version.js +4 -3
  164. package/scripts/canonical-apps.js +4 -4
  165. package/scripts/dogfood-architecture-review.js +2 -3
  166. package/scripts/dogfood-release.js +3 -3
  167. package/scripts/gen-parity-doc.js +15 -2
  168. package/scripts/golden-path.js +4 -4
  169. package/scripts/onramp-check.js +1 -1
  170. package/scripts/parity-check.js +38 -21
  171. package/scripts/release-flow.js +2 -2
  172. package/scripts/sync-project-index.js +51 -27
  173. package/scripts/validate-run-state-schema.js +2 -2
  174. package/scripts/version-sync-check.js +30 -30
  175. package/dist/candidate-scoring.js +0 -729
  176. package/dist/capability-core.js +0 -1189
  177. package/dist/capability-registry.js +0 -885
  178. package/dist/cli/command-surface.js +0 -494
  179. package/dist/cli/format.js +0 -56
  180. package/dist/cli/handlers/audit.js +0 -82
  181. package/dist/cli/handlers/blackboard.js +0 -81
  182. package/dist/cli/handlers/candidate.js +0 -40
  183. package/dist/cli/handlers/clones.js +0 -34
  184. package/dist/cli/handlers/collaboration.js +0 -61
  185. package/dist/cli/handlers/eval.js +0 -40
  186. package/dist/cli/handlers/ledger.js +0 -169
  187. package/dist/cli/handlers/maintenance.js +0 -107
  188. package/dist/cli/handlers/multi-agent.js +0 -165
  189. package/dist/cli/handlers/node.js +0 -41
  190. package/dist/cli/handlers/operational.js +0 -155
  191. package/dist/cli/handlers/operator.js +0 -146
  192. package/dist/cli/handlers/registry.js +0 -68
  193. package/dist/cli/handlers/run.js +0 -153
  194. package/dist/cli/handlers/scheduling.js +0 -132
  195. package/dist/cli/handlers/workbench.js +0 -41
  196. package/dist/cli/handlers/worker.js +0 -45
  197. package/dist/cli/run-summary.js +0 -45
  198. package/dist/clones.js +0 -162
  199. package/dist/collaboration.js +0 -726
  200. package/dist/commit.js +0 -592
  201. package/dist/compare.js +0 -18
  202. package/dist/coordinator/classify.js +0 -45
  203. package/dist/coordinator/paths.js +0 -42
  204. package/dist/coordinator/util.js +0 -126
  205. package/dist/coordinator.js +0 -990
  206. package/dist/daemon.js +0 -44
  207. package/dist/dispatch.js +0 -250
  208. package/dist/drive.js +0 -864
  209. package/dist/error-feedback.js +0 -419
  210. package/dist/evidence-grounding.js +0 -184
  211. package/dist/execution-backend/agent.js +0 -354
  212. package/dist/execution-backend/probes.js +0 -112
  213. package/dist/execution-backend/util.js +0 -47
  214. package/dist/execution-backend.js +0 -961
  215. package/dist/gates.js +0 -48
  216. package/dist/harness.js +0 -61
  217. package/dist/ledger.js +0 -313
  218. package/dist/loop-expansion.js +0 -60
  219. package/dist/mcp/tool-call.js +0 -470
  220. package/dist/mcp/tool-definitions.js +0 -1066
  221. package/dist/mcp-surface.js +0 -30
  222. package/dist/multi-agent/graph.js +0 -84
  223. package/dist/multi-agent/helpers.js +0 -141
  224. package/dist/multi-agent/ids.js +0 -20
  225. package/dist/multi-agent/paths.js +0 -22
  226. package/dist/multi-agent-eval/normalize.js +0 -51
  227. package/dist/multi-agent-eval.js +0 -678
  228. package/dist/multi-agent-host.js +0 -777
  229. package/dist/multi-agent.js +0 -984
  230. package/dist/node-projection.js +0 -59
  231. package/dist/node-snapshot.js +0 -260
  232. package/dist/operator-ux.js +0 -631
  233. package/dist/orchestrator/app-operations.js +0 -211
  234. package/dist/orchestrator/audit-operations.js +0 -182
  235. package/dist/orchestrator/candidate-operations.js +0 -117
  236. package/dist/orchestrator/cli-options.js +0 -294
  237. package/dist/orchestrator/collaboration-operations.js +0 -86
  238. package/dist/orchestrator/feedback-operations.js +0 -81
  239. package/dist/orchestrator/host-operations.js +0 -78
  240. package/dist/orchestrator/lifecycle-operations.js +0 -650
  241. package/dist/orchestrator/migration-operations.js +0 -44
  242. package/dist/orchestrator/multi-agent-operations.js +0 -362
  243. package/dist/orchestrator/topology-operations.js +0 -84
  244. package/dist/orchestrator.js +0 -925
  245. package/dist/pipeline-runner.js +0 -285
  246. package/dist/reclamation/hash.js +0 -72
  247. package/dist/reclamation.js +0 -812
  248. package/dist/reporter.js +0 -67
  249. package/dist/run-export.js +0 -815
  250. package/dist/run-registry/derive.js +0 -175
  251. package/dist/run-registry/format.js +0 -124
  252. package/dist/run-registry/gc.js +0 -251
  253. package/dist/run-registry/policy.js +0 -16
  254. package/dist/run-registry/queue.js +0 -115
  255. package/dist/run-registry.js +0 -850
  256. package/dist/run-state-schema.js +0 -68
  257. package/dist/scheduling.js +0 -184
  258. package/dist/state-explosion.js +0 -1014
  259. package/dist/state.js +0 -367
  260. package/dist/telemetry-ledger.js +0 -196
  261. package/dist/topology.js +0 -565
  262. package/dist/triggers.js +0 -184
  263. package/dist/trust-audit.js +0 -644
  264. package/dist/types/blackboard.js +0 -2
  265. package/dist/types/candidate.js +0 -2
  266. package/dist/types/collaboration.js +0 -2
  267. package/dist/types/core.js +0 -2
  268. package/dist/types/drive.js +0 -10
  269. package/dist/types/error-feedback.js +0 -2
  270. package/dist/types/evidence-reasoning.js +0 -2
  271. package/dist/types/execution-backend.js +0 -2
  272. package/dist/types/multi-agent.js +0 -2
  273. package/dist/types/observability.js +0 -2
  274. package/dist/types/pipeline.js +0 -2
  275. package/dist/types/reclamation.js +0 -8
  276. package/dist/types/report-bundle.js +0 -6
  277. package/dist/types/result.js +0 -2
  278. package/dist/types/run-registry.js +0 -2
  279. package/dist/types/run.js +0 -2
  280. package/dist/types/sandbox.js +0 -2
  281. package/dist/types/schedule.js +0 -2
  282. package/dist/types/state-node.js +0 -2
  283. package/dist/types/topology.js +0 -2
  284. package/dist/types/trust.js +0 -2
  285. package/dist/types/workbench.js +0 -2
  286. package/dist/types/worker.js +0 -2
  287. package/dist/types/workflow-app.js +0 -2
  288. package/dist/types.js +0 -44
  289. package/dist/util/fingerprint.js +0 -19
  290. package/dist/util/fingerprint.test.js +0 -27
  291. package/dist/verifier.js +0 -78
  292. package/dist/version.js +0 -8
  293. package/dist/workbench-host.js +0 -192
  294. package/dist/workbench.js +0 -192
  295. package/dist/worker-accept/acceptance.js +0 -114
  296. package/dist/worker-accept/blackboard-fanout.js +0 -80
  297. package/dist/worker-accept/blackboard-linkage.js +0 -19
  298. package/dist/worker-accept/context.js +0 -2
  299. package/dist/worker-accept/telemetry-ledger.js +0 -126
  300. package/dist/worker-accept/validation.js +0 -77
  301. package/dist/worker-accept/verifier-completion.js +0 -73
  302. package/dist/worker-isolation/helpers.js +0 -51
  303. package/dist/worker-isolation/paths.js +0 -46
  304. package/dist/worker-isolation.js +0 -656
  305. package/dist/workflow-api.js +0 -131
  306. /package/dist/{types → core/types}/boundary.js +0 -0
@@ -1,470 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.callTool = callTool;
7
- const node_fs_1 = __importDefault(require("node:fs"));
8
- const node_path_1 = __importDefault(require("node:path"));
9
- const orchestrator_1 = require("../orchestrator");
10
- const ledger_1 = require("../ledger");
11
- const scheduler_1 = require("../scheduler");
12
- const triggers_1 = require("../triggers");
13
- const workbench_1 = require("../workbench");
14
- const capability_core_1 = require("../capability-core");
15
- const baseRunner = new orchestrator_1.CoolWorkflowRunner({
16
- pluginRoot: node_path_1.default.resolve(__dirname, "../..")
17
- });
18
- // This is an EXPLICIT switch by design, NOT a descriptor-driven generic dispatcher
19
- // (FreeBSD-audit R1, assessed & closed as won't-do). A data-routing rewrite is
20
- // ACTIVELY DANGEROUS here, not just risky: (1) `descriptor.entry` does NOT reliably
21
- // name the function an arm calls (e.g. cw_app_run entry="validateApp" actually calls
22
- // appRun; cw_commit entry="commit" calls commitEnvelope), so `runner[entry](args)`
23
- // would silently call the WRONG method; (2) the parity gate is token-set-only +
24
- // payload-probes ~30 read-only runId caps, so ~150 multi-positional/write arms are
25
- // UNPROBED — a mis-marshalling generic dispatcher would pass BOTH gates green = the
26
- // existential public false-green (a CW red line — see DIRECTION.md). The arms
27
- // work and parity guards the surface; the real defect the audit flagged (a DEAD
28
- // dispatcher) was already removed (#131). Cheap safe hardening, if ever wanted:
29
- // broaden parity-check payload probes to cover multi-positional/write arms, and
30
- // correct the wrong `entry` metadata — NOT a dispatch rewrite.
31
- function callTool(name, args) {
32
- const cwd = resolveInvocationCwd(args);
33
- if (cwd)
34
- args = { ...args, cwd };
35
- const runner = baseRunner.withBaseDir(cwd);
36
- const workCwd = cwd || process.cwd();
37
- const scheduler = new scheduler_1.Scheduler(workCwd);
38
- const triggers = new triggers_1.RoutineTriggerBridge(workCwd);
39
- switch (name) {
40
- case "cw_list":
41
- return runner.listWorkflows();
42
- case "cw_plan":
43
- return (0, capability_core_1.planSummary)(runner, String(args.workflowId || ""), args);
44
- case "cw_app_run":
45
- return (0, capability_core_1.appRun)(runner, args);
46
- case "cw_status":
47
- return runner.status(String(args.runId || ""));
48
- case "cw_init":
49
- return runner.init(String(args.workflowId || ""), args);
50
- case "cw_next":
51
- return runner.next(String(args.runId || ""), args);
52
- case "cw_state_check":
53
- return runner.checkState(String(args.runId || ""), args);
54
- case "cw_contract_show":
55
- return runner.showContract(String(args.runId || ""), (0, capability_core_1.optionalString)(args.contractId));
56
- case "cw_node_list":
57
- return runner.listNodes(String(args.runId || ""));
58
- case "cw_node_show":
59
- return runner.showNode(String(args.runId || ""), String(args.nodeId || ""));
60
- case "cw_node_graph":
61
- return runner.graphNodes(String(args.runId || ""));
62
- case "cw_node_snapshot":
63
- return runner.nodeSnapshot(String(args.runId || ""), String(args.nodeId || ""), args);
64
- case "cw_node_diff":
65
- return runner.nodeDiff(String(args.runId || ""), String(args.baselineSnapshotId || args.baseline || ""), String(args.candidateSnapshotId || args.candidate || ""));
66
- case "cw_node_replay":
67
- return runner.nodeReplay(String(args.runId || ""), String(args.snapshotId || ""), args);
68
- case "cw_node_replay_verify":
69
- return runner.nodeReplayVerify(String(args.runId || ""), String(args.replayId || ""), args);
70
- case "cw_migration_list":
71
- return runner.migrationList();
72
- case "cw_migration_check":
73
- return runner.migrationCheck(String(args.target || args.runId || ""), args);
74
- case "cw_migration_prove":
75
- return runner.migrationProve(String(args.target || args.runId || ""), args);
76
- case "cw_operator_status":
77
- return runner.operatorStatus(String(args.runId || ""));
78
- case "cw_operator_graph":
79
- return runner.operatorGraph(String(args.runId || ""));
80
- case "cw_operator_report":
81
- return runner.operatorReport(String(args.runId || ""));
82
- case "cw_worker_summary":
83
- return runner.summarizeWorkerRecords(String(args.runId || ""));
84
- case "cw_candidate_summary":
85
- return runner.summarizeCandidateOperatorRecords(String(args.runId || ""));
86
- case "cw_feedback_summary":
87
- return runner.summarizeFeedbackRecords(String(args.runId || ""));
88
- case "cw_commit_summary":
89
- return runner.summarizeCommitRecords(String(args.runId || ""));
90
- case "cw_multi_agent_summary":
91
- return runner.multiAgentSummary(String(args.runId || ""));
92
- case "cw_multi_agent_graph":
93
- return runner.multiAgentOperatorGraph(String(args.runId || ""));
94
- case "cw_multi_agent_dependencies":
95
- return runner.multiAgentDependencies(String(args.runId || ""));
96
- case "cw_multi_agent_failures":
97
- return runner.multiAgentFailures(String(args.runId || ""));
98
- case "cw_multi_agent_evidence":
99
- return runner.multiAgentEvidence(String(args.runId || ""));
100
- case "cw_evidence_reasoning":
101
- return runner.multiAgentReasoning(String(args.runId || ""), args);
102
- case "cw_evidence_reasoning_refresh":
103
- return runner.multiAgentReasoningRefresh(String(args.runId || ""));
104
- case "cw_multi_agent_run":
105
- return runner.hostMultiAgentRun((0, capability_core_1.optionalString)(args.runId), args);
106
- case "cw_multi_agent_status":
107
- return runner.hostMultiAgentStatus(String(args.runId || ""));
108
- case "cw_multi_agent_step":
109
- return runner.hostMultiAgentStep(String(args.runId || ""), args);
110
- case "cw_multi_agent_blackboard":
111
- return runner.hostMultiAgentBlackboard(String(args.runId || ""), (0, capability_core_1.optionalString)(args.action || args.operation), args);
112
- case "cw_multi_agent_score":
113
- return runner.hostMultiAgentScore(String(args.runId || ""), args);
114
- case "cw_multi_agent_select":
115
- return runner.hostMultiAgentSelect(String(args.runId || ""), args);
116
- case "cw_summary_refresh":
117
- return runner.summaryRefresh(String(args.runId || ""), args);
118
- case "cw_summary_show":
119
- return runner.summaryShow(String(args.runId || ""));
120
- case "cw_blackboard_summarize":
121
- return runner.blackboardSummarize(String(args.runId || ""), args);
122
- case "cw_multi_agent_summarize":
123
- return runner.multiAgentSummarize(String(args.runId || ""));
124
- case "cw_multi_agent_graph_compact":
125
- return runner.multiAgentGraphView(String(args.runId || ""), args);
126
- case "cw_eval_snapshot":
127
- return runner.evalSnapshot(String(args.runId || ""), args);
128
- case "cw_eval_replay":
129
- return runner.evalReplay(String(args.snapshot || args.snapshotId || args.path || ""), args);
130
- case "cw_eval_compare":
131
- return runner.evalCompare(String(args.baseline || args.baselinePath || ""), String(args.replay || args.replayPath || ""));
132
- case "cw_eval_score":
133
- return runner.evalScore(String(args.replay || args.replayPath || args.path || ""));
134
- case "cw_eval_gate":
135
- return runner.evalGate(String(args.suite || args.suiteId || args.path || ""));
136
- case "cw_eval_report":
137
- return runner.evalReport(String(args.replay || args.replayPath || args.path || ""));
138
- case "cw_multi_agent_run_create":
139
- return runner.createMultiAgentRun(String(args.runId || ""), args);
140
- case "cw_multi_agent_run_transition":
141
- return runner.transitionMultiAgentRun(String(args.runId || ""), String(args.multiAgentRunId || args.id || ""), args);
142
- case "cw_multi_agent_run_show":
143
- return runner.showMultiAgentRun(String(args.runId || ""), String(args.multiAgentRunId || args.id || ""));
144
- case "cw_multi_agent_role_create":
145
- return runner.createAgentRole(String(args.runId || ""), args);
146
- case "cw_multi_agent_role_show":
147
- return runner.showAgentRole(String(args.runId || ""), String(args.roleId || args.id || ""));
148
- case "cw_multi_agent_group_create":
149
- return runner.createAgentGroup(String(args.runId || ""), args);
150
- case "cw_multi_agent_group_show":
151
- return runner.showAgentGroup(String(args.runId || ""), String(args.groupId || args.id || ""));
152
- case "cw_multi_agent_membership_create":
153
- return runner.assignAgentMembership(String(args.runId || ""), args);
154
- case "cw_multi_agent_membership_show":
155
- return runner.showAgentMembership(String(args.runId || ""), String(args.membershipId || args.id || ""));
156
- case "cw_multi_agent_fanout_create":
157
- return runner.createAgentFanout(String(args.runId || ""), args);
158
- case "cw_multi_agent_fanout_show":
159
- return runner.showAgentFanout(String(args.runId || ""), String(args.fanoutId || args.id || ""));
160
- case "cw_multi_agent_fanin_collect":
161
- return runner.collectAgentFanin(String(args.runId || ""), args);
162
- case "cw_multi_agent_fanin_show":
163
- return runner.showAgentFanin(String(args.runId || ""), String(args.faninId || args.id || ""));
164
- case "cw_topology_list":
165
- return runner.listTopologies();
166
- case "cw_topology_show":
167
- if (args.runId && (args.topologyRunId || args.id))
168
- return runner.showTopologyRun(String(args.runId || ""), String(args.topologyRunId || args.id || ""));
169
- return runner.showTopology(String(args.topologyId || args.id || ""));
170
- case "cw_topology_validate":
171
- return runner.validateTopology(String(args.topologyId || args.id || ""));
172
- case "cw_topology_apply":
173
- return runner.applyTopology(String(args.runId || ""), String(args.topologyId || args.id || ""), args);
174
- case "cw_topology_summary":
175
- return runner.topologySummary(String(args.runId || ""));
176
- case "cw_topology_graph":
177
- return runner.topologyGraph(String(args.runId || ""));
178
- case "cw_blackboard_summary":
179
- return runner.blackboardSummary(String(args.runId || ""), args);
180
- case "cw_blackboard_graph":
181
- return runner.blackboardGraph(String(args.runId || ""));
182
- case "cw_blackboard_resolve":
183
- return runner.resolveRunBlackboard(String(args.runId || ""), args);
184
- case "cw_blackboard_topic_create":
185
- return runner.createBlackboardTopic(String(args.runId || ""), args);
186
- case "cw_blackboard_message_post":
187
- return runner.postBlackboardMessage(String(args.runId || ""), args);
188
- case "cw_blackboard_message_list":
189
- return runner.listBlackboardMessages(String(args.runId || ""), args);
190
- case "cw_blackboard_context_put":
191
- return runner.putBlackboardContext(String(args.runId || ""), args);
192
- case "cw_blackboard_artifact_add":
193
- return runner.addBlackboardArtifact(String(args.runId || ""), args);
194
- case "cw_blackboard_artifact_list":
195
- return runner.listBlackboardArtifacts(String(args.runId || ""), args);
196
- case "cw_blackboard_snapshot":
197
- return runner.snapshotBlackboard(String(args.runId || ""), args);
198
- case "cw_coordinator_summary":
199
- return runner.coordinatorSummary(String(args.runId || ""), args);
200
- case "cw_coordinator_decision":
201
- return runner.recordCoordinatorDecision(String(args.runId || ""), args);
202
- case "cw_audit_summary":
203
- return runner.auditSummary(String(args.runId || ""));
204
- case "cw_audit_verify":
205
- return (0, capability_core_1.auditVerify)(runner, args);
206
- case "cw_audit_worker":
207
- return runner.workerAudit(String(args.runId || ""), String(args.workerId || ""));
208
- case "cw_audit_provenance":
209
- return runner.evidenceProvenance(String(args.runId || ""), args);
210
- case "cw_audit_multi_agent":
211
- return runner.auditMultiAgent(String(args.runId || ""));
212
- case "cw_audit_policy":
213
- return runner.auditPolicy(String(args.runId || ""));
214
- case "cw_audit_role":
215
- return runner.auditRole(String(args.runId || ""), String(args.roleId || args.id || ""));
216
- case "cw_audit_blackboard":
217
- return runner.auditBlackboard(String(args.runId || ""));
218
- case "cw_audit_judge":
219
- return runner.auditJudge(String(args.runId || ""));
220
- case "cw_audit_attest":
221
- return runner.recordAuditAttestation(String(args.runId || ""), args);
222
- case "cw_audit_decision":
223
- return runner.recordAuditDecision(String(args.runId || ""), String(args.workerId || ""), args);
224
- case "cw_dispatch":
225
- return runner.dispatch(String(args.runId || ""), args);
226
- case "cw_sandbox_list":
227
- return runner.listSandboxProfiles(args);
228
- case "cw_sandbox_show":
229
- return runner.showSandboxProfile(String(args.profileId || ""), args);
230
- case "cw_sandbox_validate":
231
- return runner.validateSandboxProfile(String(args.profileFile || ""), args);
232
- case "cw_sandbox_choose":
233
- case "cw_sandbox_resolve":
234
- return (0, capability_core_1.sandboxChoose)(runner, args);
235
- case "cw_backend_list":
236
- return runner.listBackends(args);
237
- case "cw_backend_show":
238
- return runner.showBackend(String(args.backendId || args.backend || ""), args);
239
- case "cw_backend_probe":
240
- return runner.probeBackend((0, capability_core_1.optionalString)(args.backendId || args.backend), args);
241
- case "cw_backend_agent_config_show":
242
- return (0, capability_core_1.backendAgentConfigShow)(args);
243
- case "cw_backend_agent_config_set":
244
- return (0, capability_core_1.backendAgentConfigSet)(args);
245
- case "cw_result":
246
- return runner.recordResult(String(args.runId || ""), String(args.taskId || ""), String(args.resultPath || ""), args);
247
- case "cw_commit":
248
- return (0, capability_core_1.commitEnvelope)(runner, String(args.runId || ""), args);
249
- case "cw_report":
250
- return runner.report(String(args.runId || ""));
251
- case "cw_app_list":
252
- return runner.listApps();
253
- case "cw_app_show":
254
- return runner.showApp(String(args.appId || ""));
255
- case "cw_app_validate":
256
- return runner.validateApp(String(args.target || args.appId || args.path || ""));
257
- case "cw_app_init":
258
- return runner.initApp(String(args.appId || ""), args);
259
- case "cw_app_package":
260
- return runner.packageApp(String(args.appId || ""), args);
261
- case "cw_worker_list":
262
- return runner.listWorkers(String(args.runId || ""), args);
263
- case "cw_worker_show":
264
- return runner.showWorker(String(args.runId || ""), String(args.workerId || ""));
265
- case "cw_worker_manifest":
266
- return runner.showWorkerManifest(String(args.runId || ""), String(args.workerId || ""));
267
- case "cw_worker_output":
268
- return runner.recordWorkerOutput(String(args.runId || ""), String(args.workerId || ""), String(args.resultPath || ""), args);
269
- case "cw_worker_fail":
270
- return runner.recordWorkerFailure(String(args.runId || ""), String(args.workerId || ""), String(args.message || ""), args);
271
- case "cw_worker_validate":
272
- return runner.validateWorker(String(args.runId || ""), String(args.workerId || ""), (0, capability_core_1.optionalString)(args.path || args.resultPath));
273
- case "cw_candidate_list":
274
- return runner.listCandidates(String(args.runId || ""), args);
275
- case "cw_candidate_show":
276
- return runner.showCandidate(String(args.runId || ""), String(args.candidateId || ""));
277
- case "cw_candidate_register":
278
- return runner.registerCandidate(String(args.runId || ""), args);
279
- case "cw_candidate_score":
280
- return runner.scoreCandidate(String(args.runId || ""), String(args.candidateId || ""), args);
281
- case "cw_candidate_rank":
282
- return runner.rankCandidates(String(args.runId || ""), args);
283
- case "cw_candidate_select":
284
- return runner.selectCandidate(String(args.runId || ""), String(args.candidateId || ""), args);
285
- case "cw_candidate_reject":
286
- return runner.rejectCandidate(String(args.runId || ""), String(args.candidateId || ""), String(args.reason || "rejected"));
287
- // ---- Team Collaboration (v0.1.32) ----
288
- case "cw_approve":
289
- return runner.collaborationApprove(String(args.runId || ""), String(args.targetKind || args.kind || ""), String(args.targetId || args.target || ""), args);
290
- case "cw_reject":
291
- return runner.collaborationReject(String(args.runId || ""), String(args.targetKind || args.kind || ""), String(args.targetId || args.target || ""), args);
292
- case "cw_comment_add":
293
- return runner.collaborationComment(String(args.runId || ""), String(args.targetKind || args.kind || ""), String(args.targetId || args.target || ""), args);
294
- case "cw_comment_list":
295
- return runner.collaborationCommentList(String(args.runId || ""), args);
296
- case "cw_handoff":
297
- return runner.collaborationHandoff(String(args.runId || ""), String(args.targetKind || args.kind || ""), String(args.targetId || args.target || ""), args);
298
- // ---- Cross-agent handoff ledger (stage 2 MCP surface) ----
299
- case "cw_ledger_propose":
300
- return (0, ledger_1.buildLedgerProposal)({
301
- from: String(args.from || ""),
302
- to: String(args.to || ""),
303
- title: String(args.title || ""),
304
- rationale: String(args.rationale || ""),
305
- targetFiles: String(args.files || "").split(",").map((f) => f.trim()).filter(Boolean),
306
- suggestedDiff: args.diff === undefined ? undefined : String(args.diff),
307
- createdAt: new Date().toISOString()
308
- });
309
- case "cw_ledger_review": {
310
- const verdict = String(args.verdict || "").toUpperCase();
311
- if (verdict !== "APPROVED" && verdict !== "REJECTED")
312
- throw new Error('verdict must be "approved" or "rejected".');
313
- return (0, ledger_1.buildLedgerReview)({
314
- from: String(args.from || ""),
315
- to: String(args.to || ""),
316
- target: String(args.target || ""),
317
- verdict,
318
- findings: String(args.findings || "").split(",").map((f) => f.trim()).filter(Boolean),
319
- createdAt: new Date().toISOString()
320
- });
321
- }
322
- case "cw_ledger_verify":
323
- return (0, ledger_1.verifyLedgerEntry)(args.entry);
324
- case "cw_ledger_apply":
325
- return (0, ledger_1.applyLedgerProposal)(args.entry);
326
- case "cw_ledger_list": {
327
- // `dirs` (2+) union-verifies mirrors; a single `dir` keeps the original shape.
328
- const dirs = Array.isArray(args.dirs) ? args.dirs.map(String).filter(Boolean) : [];
329
- if (dirs.length > 1)
330
- return (0, ledger_1.unionLedgerEntries)(dirs);
331
- return (0, ledger_1.listLedgerEntries)(dirs[0] || String(args.dir || ""));
332
- }
333
- case "cw_review_status":
334
- return runner.reviewStatus(String(args.runId || ""), args);
335
- case "cw_review_policy":
336
- return runner.reviewPolicy(String(args.runId || ""), args);
337
- case "cw_feedback_list":
338
- return runner.listFeedback(String(args.runId || ""), args);
339
- case "cw_feedback_show":
340
- return runner.showFeedback(String(args.runId || ""), String(args.feedbackId || ""));
341
- case "cw_feedback_collect":
342
- return runner.collectFeedback(String(args.runId || ""));
343
- case "cw_feedback_task":
344
- return runner.createFeedbackTask(String(args.runId || ""), String(args.feedbackId || ""), args);
345
- case "cw_feedback_resolve":
346
- return runner.resolveFeedback(String(args.runId || ""), String(args.feedbackId || ""), args);
347
- case "cw_schedule_create":
348
- return scheduler.create(args);
349
- case "cw_schedule_list":
350
- return scheduler.list(args.status ? String(args.status) : undefined);
351
- case "cw_schedule_delete":
352
- return scheduler.delete(String(args.id || ""));
353
- case "cw_schedule_due":
354
- return scheduler.due();
355
- case "cw_schedule_complete":
356
- return scheduler.complete(String(args.id || ""), args);
357
- case "cw_schedule_pause":
358
- return scheduler.pause(String(args.id || ""));
359
- case "cw_schedule_resume":
360
- return scheduler.resume(String(args.id || ""));
361
- case "cw_schedule_run_now":
362
- return scheduler.runNow(String(args.id || ""));
363
- case "cw_schedule_history":
364
- return scheduler.history(args.id ? String(args.id) : undefined);
365
- case "cw_routine_create":
366
- return triggers.create(args);
367
- case "cw_routine_list":
368
- return triggers.list(args.kind ? String(args.kind) : undefined);
369
- case "cw_routine_delete":
370
- return triggers.delete(String(args.id || ""));
371
- case "cw_routine_fire":
372
- return triggers.fire(String(args.kind || "api"), args.payload || args);
373
- case "cw_routine_events":
374
- return triggers.events(args.id ? String(args.id) : undefined);
375
- case "cw_registry_refresh":
376
- return (0, capability_core_1.runRegistryRefresh)((0, capability_core_1.runRegistryFor)(args, runner), args);
377
- case "cw_registry_show":
378
- return (0, capability_core_1.runRegistryShow)((0, capability_core_1.runRegistryFor)(args, runner), args);
379
- case "cw_metrics_show":
380
- return runner.metricsShow(String(args.runId || ""), args);
381
- case "cw_metrics_summary":
382
- return (0, capability_core_1.metricsSummary)((0, capability_core_1.runRegistryFor)(args, runner), runner, args);
383
- case "cw_run_search":
384
- return (0, capability_core_1.runSearch)((0, capability_core_1.runRegistryFor)(args, runner), args);
385
- case "cw_run_list":
386
- return (0, capability_core_1.runList)((0, capability_core_1.runRegistryFor)(args, runner), args);
387
- case "cw_run_show":
388
- return (0, capability_core_1.runShow)((0, capability_core_1.runRegistryFor)(args, runner), String(args.runId || ""), args);
389
- case "cw_run_resume":
390
- return (0, capability_core_1.runResume)((0, capability_core_1.runRegistryFor)(args, runner), runner, String(args.runId || ""), args);
391
- case "cw_run_archive":
392
- return (0, capability_core_1.runArchive)((0, capability_core_1.runRegistryFor)(args, runner), (0, capability_core_1.optionalString)(args.runId), args);
393
- case "cw_run_rerun":
394
- return (0, capability_core_1.runRerun)((0, capability_core_1.runRegistryFor)(args, runner), String(args.runId || ""), args);
395
- case "cw_run_export":
396
- return (0, capability_core_1.runExportArchive)(runner, String(args.runId || ""), args);
397
- case "cw_run_import":
398
- return (0, capability_core_1.runImportArchive)(runner, args);
399
- case "cw_run_verify_import":
400
- return (0, capability_core_1.runVerifyImport)(runner, String(args.runId || ""), args);
401
- case "cw_run_inspect_archive":
402
- return (0, capability_core_1.runInspectArchive)(runner, args);
403
- case "cw_run_restore":
404
- return (0, capability_core_1.runRestoreArchive)(runner, args);
405
- case "cw_report_verify_bundle":
406
- return (0, capability_core_1.runVerifyReportBundle)(runner, args);
407
- case "cw_report_bundle":
408
- return (0, capability_core_1.reportBundle)(runner, String(args.runId || ""), args);
409
- case "cw_run_drive":
410
- return (0, capability_core_1.runDrivePreview)(runner, args);
411
- case "cw_run_drive_step":
412
- return (0, capability_core_1.runDrive)(runner, args);
413
- case "cw_queue_add":
414
- return (0, capability_core_1.queueAdd)((0, capability_core_1.runRegistryFor)(args, runner), args);
415
- case "cw_queue_list":
416
- return (0, capability_core_1.queueList)((0, capability_core_1.runRegistryFor)(args, runner), args);
417
- case "cw_queue_drain":
418
- return (0, capability_core_1.queueDrain)((0, capability_core_1.runRegistryFor)(args, runner), args);
419
- case "cw_queue_show":
420
- return (0, capability_core_1.queueShow)((0, capability_core_1.runRegistryFor)(args, runner), String(args.id || ""));
421
- case "cw_sched_plan":
422
- return (0, capability_core_1.schedPlan)((0, capability_core_1.runRegistryFor)(args, runner), args);
423
- case "cw_sched_lease":
424
- return (0, capability_core_1.schedLease)((0, capability_core_1.runRegistryFor)(args, runner), args);
425
- case "cw_sched_release":
426
- return (0, capability_core_1.schedRelease)((0, capability_core_1.runRegistryFor)(args, runner), args);
427
- case "cw_sched_complete":
428
- return (0, capability_core_1.schedComplete)((0, capability_core_1.runRegistryFor)(args, runner), args);
429
- case "cw_sched_reclaim":
430
- return (0, capability_core_1.schedReclaim)((0, capability_core_1.runRegistryFor)(args, runner), args);
431
- case "cw_sched_reset":
432
- return (0, capability_core_1.schedReset)((0, capability_core_1.runRegistryFor)(args, runner), args);
433
- case "cw_sched_policy_show":
434
- return (0, capability_core_1.schedPolicyShow)((0, capability_core_1.runRegistryFor)(args, runner));
435
- case "cw_sched_policy_set":
436
- return (0, capability_core_1.schedPolicySet)((0, capability_core_1.runRegistryFor)(args, runner), args);
437
- case "cw_gc_plan":
438
- return (0, capability_core_1.gcPlan)((0, capability_core_1.runRegistryFor)(args, runner), (0, capability_core_1.optionalString)(args.runId), args);
439
- case "cw_gc_run":
440
- return (0, capability_core_1.gcRun)((0, capability_core_1.runRegistryFor)(args, runner), (0, capability_core_1.optionalString)(args.runId), args);
441
- case "cw_gc_verify":
442
- return (0, capability_core_1.gcVerify)((0, capability_core_1.runRegistryFor)(args, runner), String(args.runId || ""), args);
443
- case "cw_clones_list":
444
- return (0, capability_core_1.listClones)(args);
445
- case "cw_clones_gc":
446
- return (0, capability_core_1.gcClones)(args);
447
- case "cw_telemetry_verify":
448
- return (0, capability_core_1.telemetryVerify)(runner, args);
449
- case "cw_history":
450
- return (0, capability_core_1.runHistory)((0, capability_core_1.runRegistryFor)(args, runner), args);
451
- case "cw_workbench_view":
452
- return (0, workbench_1.buildWorkbenchRunView)(runner, String(args.runId || ""));
453
- case "cw_workbench_serve":
454
- // MCP cannot start a blocking server; it returns the descriptor only
455
- // (identical to `cw workbench serve --json`). The CLI default additionally
456
- // starts the localhost host — declared divergence (see capability-registry).
457
- return (0, workbench_1.buildWorkbenchServeDescriptor)(runner, { ...args, once: true });
458
- default:
459
- throw new Error(`Unknown tool: ${name}`);
460
- }
461
- }
462
- function resolveInvocationCwd(args) {
463
- const value = (0, capability_core_1.optionalString)(args.cwd);
464
- if (!value)
465
- return undefined;
466
- const resolved = node_path_1.default.resolve(value);
467
- if (!node_fs_1.default.statSync(resolved).isDirectory())
468
- throw new Error(`MCP cwd is not a directory: ${resolved}`);
469
- return resolved;
470
- }