cool-workflow 0.1.97 → 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 (309) 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} +12 -5
  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 +4 -0
  139. package/docs/cli-mcp-parity.7.md +284 -211
  140. package/docs/contract-migration-tooling.7.md +4 -0
  141. package/docs/control-plane-scheduling.7.md +4 -0
  142. package/docs/cross-agent-ledger.7.md +217 -0
  143. package/docs/designs/handoff-ledger.md +145 -0
  144. package/docs/durable-state-and-locking.7.md +4 -0
  145. package/docs/evidence-adoption-reasoning-chain.7.md +4 -0
  146. package/docs/execution-backends.7.md +4 -0
  147. package/docs/handoff-setup.md +120 -0
  148. package/docs/multi-agent-cli-mcp-surface.7.md +4 -0
  149. package/docs/multi-agent-eval-replay-harness.7.md +4 -0
  150. package/docs/multi-agent-operator-ux.7.md +4 -0
  151. package/docs/node-snapshot-diff-replay.7.md +4 -0
  152. package/docs/observability-cost-accounting.7.md +4 -0
  153. package/docs/project-index.md +143 -71
  154. package/docs/real-execution-backends.7.md +4 -0
  155. package/docs/release-and-migration.7.md +4 -0
  156. package/docs/release-tooling.7.md +4 -0
  157. package/docs/run-registry-control-plane.7.md +4 -0
  158. package/docs/run-retention-reclamation.7.md +25 -0
  159. package/docs/state-explosion-management.7.md +4 -0
  160. package/docs/team-collaboration.7.md +4 -0
  161. package/docs/web-desktop-workbench.7.md +4 -0
  162. package/manifest/plugin.manifest.json +1 -1
  163. package/manifest/source-context-profiles.json +9 -13
  164. package/package.json +1 -1
  165. package/scripts/agents/codex-agent.js +34 -4
  166. package/scripts/agents/cw-attest-wrap.js +2 -2
  167. package/scripts/bump-version.js +4 -3
  168. package/scripts/canonical-apps.js +4 -4
  169. package/scripts/children/batch-delegate-child.js +30 -10
  170. package/scripts/dogfood-architecture-review.js +2 -3
  171. package/scripts/dogfood-release.js +3 -3
  172. package/scripts/gen-parity-doc.js +15 -2
  173. package/scripts/golden-path.js +4 -4
  174. package/scripts/onramp-check.js +1 -1
  175. package/scripts/parity-check.js +38 -21
  176. package/scripts/release-flow.js +9 -3
  177. package/scripts/sync-project-index.js +51 -27
  178. package/scripts/validate-run-state-schema.js +2 -2
  179. package/scripts/version-sync-check.js +30 -30
  180. package/dist/candidate-scoring.js +0 -729
  181. package/dist/capability-core.js +0 -1186
  182. package/dist/capability-registry.js +0 -879
  183. package/dist/cli/command-surface.js +0 -490
  184. package/dist/cli/format.js +0 -56
  185. package/dist/cli/handlers/audit.js +0 -82
  186. package/dist/cli/handlers/blackboard.js +0 -81
  187. package/dist/cli/handlers/candidate.js +0 -40
  188. package/dist/cli/handlers/clones.js +0 -34
  189. package/dist/cli/handlers/collaboration.js +0 -61
  190. package/dist/cli/handlers/eval.js +0 -40
  191. package/dist/cli/handlers/maintenance.js +0 -107
  192. package/dist/cli/handlers/multi-agent.js +0 -165
  193. package/dist/cli/handlers/node.js +0 -41
  194. package/dist/cli/handlers/operational.js +0 -155
  195. package/dist/cli/handlers/operator.js +0 -146
  196. package/dist/cli/handlers/registry.js +0 -68
  197. package/dist/cli/handlers/run.js +0 -153
  198. package/dist/cli/handlers/scheduling.js +0 -132
  199. package/dist/cli/handlers/workbench.js +0 -41
  200. package/dist/cli/handlers/worker.js +0 -45
  201. package/dist/cli/run-summary.js +0 -45
  202. package/dist/clones.js +0 -162
  203. package/dist/collaboration.js +0 -726
  204. package/dist/commit.js +0 -592
  205. package/dist/compare.js +0 -18
  206. package/dist/coordinator/classify.js +0 -45
  207. package/dist/coordinator/paths.js +0 -42
  208. package/dist/coordinator/util.js +0 -126
  209. package/dist/coordinator.js +0 -990
  210. package/dist/daemon.js +0 -44
  211. package/dist/dispatch.js +0 -250
  212. package/dist/drive.js +0 -827
  213. package/dist/error-feedback.js +0 -419
  214. package/dist/evidence-grounding.js +0 -184
  215. package/dist/execution-backend/agent.js +0 -294
  216. package/dist/execution-backend/probes.js +0 -112
  217. package/dist/execution-backend/util.js +0 -47
  218. package/dist/execution-backend.js +0 -961
  219. package/dist/gates.js +0 -48
  220. package/dist/harness.js +0 -61
  221. package/dist/loop-expansion.js +0 -60
  222. package/dist/mcp/tool-call.js +0 -434
  223. package/dist/mcp/tool-definitions.js +0 -1040
  224. package/dist/mcp-surface.js +0 -30
  225. package/dist/multi-agent/graph.js +0 -84
  226. package/dist/multi-agent/helpers.js +0 -141
  227. package/dist/multi-agent/ids.js +0 -20
  228. package/dist/multi-agent/paths.js +0 -22
  229. package/dist/multi-agent-eval/normalize.js +0 -51
  230. package/dist/multi-agent-eval.js +0 -678
  231. package/dist/multi-agent-host.js +0 -777
  232. package/dist/multi-agent.js +0 -984
  233. package/dist/node-projection.js +0 -59
  234. package/dist/node-snapshot.js +0 -260
  235. package/dist/operator-ux.js +0 -631
  236. package/dist/orchestrator/app-operations.js +0 -211
  237. package/dist/orchestrator/audit-operations.js +0 -182
  238. package/dist/orchestrator/candidate-operations.js +0 -117
  239. package/dist/orchestrator/cli-options.js +0 -294
  240. package/dist/orchestrator/collaboration-operations.js +0 -86
  241. package/dist/orchestrator/feedback-operations.js +0 -81
  242. package/dist/orchestrator/host-operations.js +0 -78
  243. package/dist/orchestrator/lifecycle-operations.js +0 -626
  244. package/dist/orchestrator/migration-operations.js +0 -44
  245. package/dist/orchestrator/multi-agent-operations.js +0 -362
  246. package/dist/orchestrator/topology-operations.js +0 -84
  247. package/dist/orchestrator.js +0 -917
  248. package/dist/pipeline-runner.js +0 -285
  249. package/dist/reclamation/hash.js +0 -72
  250. package/dist/reclamation.js +0 -812
  251. package/dist/reporter.js +0 -67
  252. package/dist/run-export.js +0 -784
  253. package/dist/run-registry/derive.js +0 -175
  254. package/dist/run-registry/format.js +0 -124
  255. package/dist/run-registry/gc.js +0 -251
  256. package/dist/run-registry/policy.js +0 -16
  257. package/dist/run-registry/queue.js +0 -115
  258. package/dist/run-registry.js +0 -850
  259. package/dist/run-state-schema.js +0 -68
  260. package/dist/scheduling.js +0 -184
  261. package/dist/state-explosion.js +0 -1014
  262. package/dist/state.js +0 -367
  263. package/dist/telemetry-ledger.js +0 -196
  264. package/dist/topology.js +0 -565
  265. package/dist/triggers.js +0 -184
  266. package/dist/trust-audit.js +0 -644
  267. package/dist/types/blackboard.js +0 -2
  268. package/dist/types/candidate.js +0 -2
  269. package/dist/types/collaboration.js +0 -2
  270. package/dist/types/core.js +0 -2
  271. package/dist/types/drive.js +0 -10
  272. package/dist/types/error-feedback.js +0 -2
  273. package/dist/types/evidence-reasoning.js +0 -2
  274. package/dist/types/execution-backend.js +0 -2
  275. package/dist/types/multi-agent.js +0 -2
  276. package/dist/types/observability.js +0 -2
  277. package/dist/types/pipeline.js +0 -2
  278. package/dist/types/reclamation.js +0 -8
  279. package/dist/types/report-bundle.js +0 -6
  280. package/dist/types/result.js +0 -2
  281. package/dist/types/run-registry.js +0 -2
  282. package/dist/types/run.js +0 -2
  283. package/dist/types/sandbox.js +0 -2
  284. package/dist/types/schedule.js +0 -2
  285. package/dist/types/state-node.js +0 -2
  286. package/dist/types/topology.js +0 -2
  287. package/dist/types/trust.js +0 -2
  288. package/dist/types/workbench.js +0 -2
  289. package/dist/types/worker.js +0 -2
  290. package/dist/types/workflow-app.js +0 -2
  291. package/dist/types.js +0 -44
  292. package/dist/util/fingerprint.js +0 -19
  293. package/dist/util/fingerprint.test.js +0 -27
  294. package/dist/verifier.js +0 -78
  295. package/dist/version.js +0 -8
  296. package/dist/workbench-host.js +0 -182
  297. package/dist/workbench.js +0 -192
  298. package/dist/worker-accept/acceptance.js +0 -114
  299. package/dist/worker-accept/blackboard-fanout.js +0 -80
  300. package/dist/worker-accept/blackboard-linkage.js +0 -19
  301. package/dist/worker-accept/context.js +0 -2
  302. package/dist/worker-accept/telemetry-ledger.js +0 -126
  303. package/dist/worker-accept/validation.js +0 -77
  304. package/dist/worker-accept/verifier-completion.js +0 -73
  305. package/dist/worker-isolation/helpers.js +0 -51
  306. package/dist/worker-isolation/paths.js +0 -46
  307. package/dist/worker-isolation.js +0 -656
  308. package/dist/workflow-api.js +0 -131
  309. /package/dist/{types → core/types}/boundary.js +0 -0
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleBlackboard = handleBlackboard;
4
- exports.handleCoordinator = handleCoordinator;
5
- const state_explosion_1 = require("../../state-explosion");
6
- const io_1 = require("../io");
7
- /** `cw blackboard <verb> <run-id> …` — shared-blackboard read/write family. */
8
- function handleBlackboard(args, runner) {
9
- const [subcommand, action, runId] = args.positionals;
10
- switch (subcommand) {
11
- case "summary":
12
- (0, io_1.printJson)(runner.blackboardSummary((0, io_1.required)(action, "run id"), args.options));
13
- return;
14
- case "summarize": {
15
- const digest = runner.blackboardSummarize((0, io_1.required)(action, "run id"), args.options);
16
- if ((0, io_1.wantsJson)(args.options))
17
- (0, io_1.printJson)(digest);
18
- else
19
- process.stdout.write(`${(0, state_explosion_1.formatBlackboardDigest)(digest)}\n`);
20
- return;
21
- }
22
- case "graph":
23
- (0, io_1.printJson)(runner.blackboardGraph((0, io_1.required)(action, "run id")));
24
- return;
25
- case "resolve":
26
- (0, io_1.printJson)(runner.resolveRunBlackboard((0, io_1.required)(action, "run id"), args.options));
27
- return;
28
- case "topic":
29
- if (action === "create") {
30
- (0, io_1.printJson)(runner.createBlackboardTopic((0, io_1.required)(runId, "run id"), args.options));
31
- return;
32
- }
33
- break;
34
- case "message":
35
- if (action === "post") {
36
- (0, io_1.printJson)(runner.postBlackboardMessage((0, io_1.required)(runId, "run id"), args.options));
37
- return;
38
- }
39
- if (action === "list") {
40
- (0, io_1.printJson)(runner.listBlackboardMessages((0, io_1.required)(runId, "run id"), args.options));
41
- return;
42
- }
43
- break;
44
- case "context":
45
- if (action === "put") {
46
- (0, io_1.printJson)(runner.putBlackboardContext((0, io_1.required)(runId, "run id"), args.options));
47
- return;
48
- }
49
- break;
50
- case "artifact":
51
- if (action === "add") {
52
- (0, io_1.printJson)(runner.addBlackboardArtifact((0, io_1.required)(runId, "run id"), args.options));
53
- return;
54
- }
55
- if (action === "list") {
56
- (0, io_1.printJson)(runner.listBlackboardArtifacts((0, io_1.required)(runId, "run id"), args.options));
57
- return;
58
- }
59
- break;
60
- case "snapshot":
61
- (0, io_1.printJson)(runner.snapshotBlackboard((0, io_1.required)(action, "run id"), args.options));
62
- return;
63
- default:
64
- break;
65
- }
66
- throw new Error("Usage: cw.js blackboard summary|summarize|graph|resolve <run-id> | topic create <run-id> | message post|list <run-id> | context put <run-id> | artifact add|list <run-id> | snapshot <run-id>");
67
- }
68
- /** `cw coordinator summary|decision <run-id> …` — coordinator decision ledger. */
69
- function handleCoordinator(args, runner) {
70
- const [subcommand, runId] = args.positionals;
71
- switch (subcommand) {
72
- case "summary":
73
- (0, io_1.printJson)(runner.coordinatorSummary((0, io_1.required)(runId, "run id"), args.options));
74
- return;
75
- case "decision":
76
- (0, io_1.printJson)(runner.recordCoordinatorDecision((0, io_1.required)(runId, "run id"), args.options));
77
- return;
78
- default:
79
- throw new Error("Usage: cw.js coordinator summary <run-id> | coordinator decision <run-id> --kind <kind> --outcome <outcome> --reason TEXT");
80
- }
81
- }
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleCandidate = handleCandidate;
4
- const operator_ux_1 = require("../../operator-ux");
5
- const io_1 = require("../io");
6
- /** `cw candidate list|show|register|score|rank|select|reject|summary <run-id> [candidate-id]`. */
7
- function handleCandidate(args, runner) {
8
- const [subcommand, runId, candidateId, reason] = args.positionals;
9
- switch (subcommand) {
10
- case "list":
11
- (0, io_1.printJson)(runner.listCandidates((0, io_1.required)(runId, "run id"), args.options));
12
- return;
13
- case "show":
14
- (0, io_1.printJson)(runner.showCandidate((0, io_1.required)(runId, "run id"), (0, io_1.required)(candidateId, "candidate id")));
15
- return;
16
- case "register":
17
- (0, io_1.printJson)(runner.registerCandidate((0, io_1.required)(runId, "run id"), args.options));
18
- return;
19
- case "score":
20
- (0, io_1.printJson)(runner.scoreCandidate((0, io_1.required)(runId, "run id"), (0, io_1.required)(candidateId, "candidate id"), args.options));
21
- return;
22
- case "rank":
23
- (0, io_1.printJson)(runner.rankCandidates((0, io_1.required)(runId, "run id"), args.options));
24
- return;
25
- case "select":
26
- (0, io_1.printJson)(runner.selectCandidate((0, io_1.required)(runId, "run id"), (0, io_1.required)(candidateId, "candidate id"), args.options));
27
- return;
28
- case "reject":
29
- (0, io_1.printJson)(runner.rejectCandidate((0, io_1.required)(runId, "run id"), (0, io_1.required)(candidateId, "candidate id"), String(args.options.reason || args.options.message || reason || "rejected")));
30
- return;
31
- case "summary":
32
- if ((0, io_1.wantsJson)(args.options))
33
- (0, io_1.printJson)(runner.summarizeCandidateOperatorRecords((0, io_1.required)(runId, "run id")));
34
- else
35
- process.stdout.write(`${(0, operator_ux_1.formatCandidateSummary)(runner.summarizeCandidateOperatorRecords((0, io_1.required)(runId, "run id")))}\n`);
36
- return;
37
- default:
38
- throw new Error("Usage: cw.js candidate list|show|register|score|rank|select|reject|summary <run-id> [candidate-id]");
39
- }
40
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleClones = handleClones;
4
- // `cw clones` handler — carved out of the command-surface god-dispatch. The
5
- // remote-source clone cache (v0.1.91): `list` inspects the cached checkouts that
6
- // `--link`/URL reviews populate; `gc` reclaims them (TTL sweep, or --all). Pure
7
- // filesystem work — no network, no run registry, no runner needed.
8
- const capability_core_1 = require("../../capability-core");
9
- const format_1 = require("../format");
10
- const io_1 = require("../io");
11
- /** `cw clones list [--json] | clones gc [--older-than-days N] [--all] [--json]`. */
12
- function handleClones(args) {
13
- const [subcommand] = args.positionals;
14
- switch (subcommand) {
15
- case "list": {
16
- const result = (0, capability_core_1.listClones)(args.options);
17
- if ((0, io_1.wantsJson)(args.options))
18
- (0, io_1.printJson)(result);
19
- else
20
- process.stdout.write(`${(0, format_1.formatClonesList)(result)}\n`);
21
- return;
22
- }
23
- case "gc": {
24
- const result = (0, capability_core_1.gcClones)(args.options);
25
- if ((0, io_1.wantsJson)(args.options))
26
- (0, io_1.printJson)(result);
27
- else
28
- process.stdout.write(`${(0, format_1.formatClonesGc)(result)}\n`);
29
- return;
30
- }
31
- default:
32
- throw new Error("Usage: cw.js clones list [--json] | clones gc [--older-than-days N] [--all] [--json]");
33
- }
34
- }
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleApprove = handleApprove;
4
- exports.handleReject = handleReject;
5
- exports.handleComment = handleComment;
6
- exports.handleHandoff = handleHandoff;
7
- exports.handleReview = handleReview;
8
- const io_1 = require("../io");
9
- /** `cw approve <kind> <run-id> <target-id>` — record an approval on a target. */
10
- function handleApprove(args, runner) {
11
- const [targetKind, runId, targetId] = args.positionals;
12
- (0, io_1.printJson)(runner.collaborationApprove((0, io_1.required)(runId, "run id"), (0, io_1.required)(targetKind, "target kind (candidate|commit|selection|run|task|node)"), (0, io_1.required)(targetId, "target id"), args.options));
13
- }
14
- /** `cw reject <kind> <run-id> <target-id>` — record a rejection on a target. */
15
- function handleReject(args, runner) {
16
- const [targetKind, runId, targetId] = args.positionals;
17
- (0, io_1.printJson)(runner.collaborationReject((0, io_1.required)(runId, "run id"), (0, io_1.required)(targetKind, "target kind (candidate|commit|selection|run|task|node)"), (0, io_1.required)(targetId, "target id"), args.options));
18
- }
19
- /** `cw comment add <kind> <run-id> <target-id> | comment list <run-id>` — leave or list comments. */
20
- function handleComment(args, runner) {
21
- const [subcommand, ...rest] = args.positionals;
22
- if (subcommand === "add") {
23
- const [targetKind, runId, targetId] = rest;
24
- (0, io_1.printJson)(runner.collaborationComment((0, io_1.required)(runId, "run id"), (0, io_1.required)(targetKind, "target kind"), (0, io_1.required)(targetId, "target id"), args.options));
25
- return;
26
- }
27
- if (subcommand === "list") {
28
- const result = runner.collaborationCommentList((0, io_1.required)(rest[0], "run id"), args.options);
29
- if ((0, io_1.wantsJson)(args.options))
30
- (0, io_1.printJson)(result);
31
- else
32
- process.stdout.write(`${runner.formatCommentList(result.comments)}\n`);
33
- return;
34
- }
35
- throw new Error("Usage: cw.js comment add <kind> <run-id> <target-id> --body <text> | comment list <run-id> [--json]");
36
- }
37
- /** `cw handoff <kind> <run-id> [target-id]` — hand a target off to the next owner. */
38
- function handleHandoff(args, runner) {
39
- const [targetKind, runId, targetIdRaw] = args.positionals;
40
- const kind = (0, io_1.required)(targetKind, "target kind (run|task|candidate|commit|node)");
41
- const rid = (0, io_1.required)(runId, "run id");
42
- const targetId = targetIdRaw || (kind === "run" ? rid : undefined);
43
- (0, io_1.printJson)(runner.collaborationHandoff(rid, kind, (0, io_1.required)(targetId, "target id"), args.options));
44
- }
45
- /** `cw review status <run-id> | review policy <run-id> …` — read or set review state/policy. */
46
- function handleReview(args, runner) {
47
- const [subcommand, runId] = args.positionals;
48
- if (subcommand === "status") {
49
- const report = runner.reviewStatus((0, io_1.required)(runId, "run id"), args.options);
50
- if ((0, io_1.wantsJson)(args.options))
51
- (0, io_1.printJson)(report);
52
- else
53
- process.stdout.write(`${runner.formatReviewStatus(report)}\n`);
54
- return;
55
- }
56
- if (subcommand === "policy") {
57
- (0, io_1.printJson)(runner.reviewPolicy((0, io_1.required)(runId, "run id"), args.options));
58
- return;
59
- }
60
- throw new Error("Usage: cw.js review status <run-id> [--json] | review policy <run-id> --required-approvals N --authorized-roles a,b --applies-to commit,selection");
61
- }
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleEval = handleEval;
4
- const multi_agent_eval_1 = require("../../multi-agent-eval");
5
- const io_1 = require("../io");
6
- /** `cw eval snapshot|replay|compare|score|gate|report …` — multi-agent eval. */
7
- function handleEval(args, runner) {
8
- const [subcommand, first, second] = args.positionals;
9
- let result;
10
- switch (subcommand) {
11
- case "snapshot":
12
- result = runner.evalSnapshot((0, io_1.required)(first, "run id"), args.options);
13
- break;
14
- case "replay":
15
- result = runner.evalReplay((0, io_1.required)(first, "snapshot id or path"), args.options);
16
- break;
17
- case "compare":
18
- result = runner.evalCompare((0, io_1.required)(first, "baseline id or path"), (0, io_1.required)(second, "replay id or path"));
19
- break;
20
- case "score":
21
- result = runner.evalScore((0, io_1.required)(first, "replay id or path"));
22
- break;
23
- case "gate":
24
- result = runner.evalGate((0, io_1.required)(first, "suite id or path"));
25
- if (!(0, io_1.wantsJson)(args.options) && result.status === "fail")
26
- process.exitCode = 1;
27
- break;
28
- case "report":
29
- result = runner.evalReport((0, io_1.required)(first, "replay id or path"));
30
- break;
31
- default:
32
- throw new Error("Usage: cw.js eval snapshot <run-id> --id <snapshot-id> | replay <snapshot-id-or-path> | compare <baseline-id-or-path> <replay-id-or-path> | score <replay-id-or-path> | gate <suite-id-or-path> | report <replay-id-or-path>");
33
- }
34
- if ((0, io_1.wantsJson)(args.options))
35
- (0, io_1.printJson)(result);
36
- else
37
- process.stdout.write(`${(0, multi_agent_eval_1.formatMultiAgentEval)(result)}\n`);
38
- if (subcommand === "gate" && result.status === "fail")
39
- process.exitCode = 1;
40
- }
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleGc = handleGc;
4
- exports.handleTelemetry = handleTelemetry;
5
- exports.handleDemo = handleDemo;
6
- const capability_core_1 = require("../../capability-core");
7
- const run_registry_1 = require("../../run-registry");
8
- const telemetry_demo_1 = require("../../telemetry-demo");
9
- const io_1 = require("../io");
10
- /** `cw gc plan|run|verify [run-id] …` — run retention & provable reclamation. */
11
- function handleGc(args, runner) {
12
- // Run Retention & Provable Reclamation (v0.1.39). `plan` is a pure dry-run
13
- // (frees nothing); `run` executes the write-ahead reclamation transaction;
14
- // `verify` re-proves a reclaimed run. CW never reclaims by default.
15
- const registry = (0, capability_core_1.runRegistryFor)(args.options, runner);
16
- const [subcommand, id] = args.positionals;
17
- switch (subcommand) {
18
- case "plan": {
19
- const result = (0, capability_core_1.gcPlan)(registry, id, args.options);
20
- if ((0, io_1.wantsJson)(args.options))
21
- (0, io_1.printJson)(result);
22
- else
23
- process.stdout.write(`${(0, run_registry_1.formatGcPlan)(result)}\n`);
24
- return;
25
- }
26
- case "run": {
27
- const result = (0, capability_core_1.gcRun)(registry, id, args.options);
28
- if ((0, io_1.wantsJson)(args.options))
29
- (0, io_1.printJson)(result);
30
- else
31
- process.stdout.write(`${(0, run_registry_1.formatGcRun)(result)}\n`);
32
- return;
33
- }
34
- case "verify": {
35
- const result = (0, capability_core_1.gcVerify)(registry, (0, io_1.required)(id, "run id"), args.options);
36
- if ((0, io_1.wantsJson)(args.options))
37
- (0, io_1.printJson)(result);
38
- else
39
- process.stdout.write(`${(0, run_registry_1.formatGcVerify)(result)}\n`);
40
- // Fail closed ONLY on a real integrity failure: a run that WAS reclaimed
41
- // but no longer re-proves. A not-reclaimed run has nothing to verify
42
- // (reclaimed:false/verified:false) and must not be treated as a failure.
43
- // LIMIT (honest): a DELETED reclaimed.json reads as reclaimed:false, so
44
- // proof-deletion is indistinguishable from never-reclaimed here without
45
- // an independent witness (e.g. a trust-audit reclamation event) — a
46
- // follow-up. This guard is still strictly better than the prior exit-0.
47
- if (result.reclaimed && !result.verified)
48
- process.exitCode = 1;
49
- return;
50
- }
51
- default:
52
- throw new Error("Usage: cw.js gc plan|run|verify [run-id] [--reclaimAfterArchiveDays N] [--keep-scratch] [--keep-snapshots] [--limit N] [--json]");
53
- }
54
- }
55
- /** `cw telemetry verify <run-id> …` — verify the signed telemetry ledger. */
56
- function handleTelemetry(args, runner) {
57
- const [subcommand, id] = args.positionals;
58
- switch (subcommand) {
59
- case "verify": {
60
- const result = (0, capability_core_1.telemetryVerify)(runner, { ...args.options, runId: id || args.options.runId || args.options.run });
61
- if ((0, io_1.wantsJson)(args.options))
62
- (0, io_1.printJson)(result);
63
- else
64
- process.stdout.write(`${(0, telemetry_demo_1.formatTelemetryVerify)(result)}\n`);
65
- // Fail closed: a forged/edited/corrupt ledger verifies false — report it
66
- // through the exit code so `cw telemetry verify <run> && deploy` cannot
67
- // pass on a lie. (Absent ledger = present:false/verified:true -> exit 0.)
68
- if (!result.verified)
69
- process.exitCode = 1;
70
- return;
71
- }
72
- default:
73
- throw new Error("Usage: cw.js telemetry verify <run-id> [--pubkey <pem-or-path>] [--json]");
74
- }
75
- }
76
- /** `cw demo tamper|bundle [--json]` — the tamper/bundle integrity demos. */
77
- function handleDemo(args, runner) {
78
- const [subcommand] = args.positionals;
79
- switch (subcommand) {
80
- case "tamper": {
81
- const result = (0, capability_core_1.demoTamper)(runner, args.options);
82
- if ((0, io_1.wantsJson)(args.options))
83
- (0, io_1.printJson)(result);
84
- else
85
- process.stdout.write(`${(0, telemetry_demo_1.formatTamperDemo)(result)}\n`);
86
- // Fail closed: if the proof did not hold (a tamper went undetected),
87
- // exit nonzero so the demo can never green a broken guarantee.
88
- if (!result.proven)
89
- process.exitCode = 1;
90
- return;
91
- }
92
- case "bundle": {
93
- const result = (0, capability_core_1.demoBundle)(runner, args.options);
94
- if ((0, io_1.wantsJson)(args.options))
95
- (0, io_1.printJson)(result);
96
- else
97
- process.stdout.write(`${(0, telemetry_demo_1.formatBundleDemo)(result)}\n`);
98
- // Fail closed: a forged bundle that verified would be a regression in the
99
- // bundle guarantee — exit nonzero so the demo can never green it.
100
- if (!result.proven)
101
- process.exitCode = 1;
102
- return;
103
- }
104
- default:
105
- throw new Error("Usage: cw.js demo tamper|bundle [--json]");
106
- }
107
- }
@@ -1,165 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleMultiAgent = handleMultiAgent;
4
- const operator_ux_1 = require("../../operator-ux");
5
- const multi_agent_operator_ux_1 = require("../../multi-agent-operator-ux");
6
- const state_explosion_1 = require("../../state-explosion");
7
- const evidence_reasoning_1 = require("../../evidence-reasoning");
8
- const io_1 = require("../io");
9
- /** `cw multi-agent <verb> <run-id> [id]` — the multi-agent operator surface. */
10
- function handleMultiAgent(args, runner) {
11
- const [subcommand, runId, id] = args.positionals;
12
- switch (subcommand) {
13
- case "status":
14
- if ((0, io_1.wantsJson)(args.options))
15
- (0, io_1.printJson)(runner.hostMultiAgentStatus((0, io_1.required)(runId, "run id")));
16
- else
17
- process.stdout.write(`${(0, multi_agent_operator_ux_1.formatMultiAgentOperatorStatus)(runner.multiAgentOperatorStatus((0, io_1.required)(runId, "run id")))}\n`);
18
- return;
19
- case "step":
20
- (0, io_1.printJson)(runner.hostMultiAgentStep((0, io_1.required)(runId, "run id"), args.options));
21
- return;
22
- case "blackboard":
23
- (0, io_1.printJson)(runner.hostMultiAgentBlackboard((0, io_1.required)(runId, "run id"), id, args.options));
24
- return;
25
- case "score":
26
- (0, io_1.printJson)(runner.hostMultiAgentScore((0, io_1.required)(runId, "run id"), { ...args.options, candidate: args.options.candidate || args.options.candidateId || id }));
27
- return;
28
- case "select":
29
- (0, io_1.printJson)(runner.hostMultiAgentSelect((0, io_1.required)(runId, "run id"), { ...args.options, candidate: args.options.candidate || args.options.candidateId || id }));
30
- return;
31
- case "summary": {
32
- const summary = runner.multiAgentSummary((0, io_1.required)(runId, "run id"));
33
- if ((0, io_1.wantsJson)(args.options))
34
- (0, io_1.printJson)(summary);
35
- else
36
- process.stdout.write(`${(0, operator_ux_1.formatMultiAgentSummary)(summary)}\n`);
37
- return;
38
- }
39
- case "summarize": {
40
- const report = runner.multiAgentSummarize((0, io_1.required)(runId, "run id"));
41
- if ((0, io_1.wantsJson)(args.options))
42
- (0, io_1.printJson)(report);
43
- else
44
- process.stdout.write(`${(0, state_explosion_1.formatStateExplosionReport)(report)}\n`);
45
- return;
46
- }
47
- case "graph": {
48
- const wantsView = args.options.view || args.options.focus || args.options.depth;
49
- if (wantsView) {
50
- const graph = runner.multiAgentGraphView((0, io_1.required)(runId, "run id"), args.options);
51
- if ((0, io_1.wantsJson)(args.options))
52
- (0, io_1.printJson)(graph);
53
- else
54
- process.stdout.write(`${(0, state_explosion_1.formatCompactGraph)(graph)}\n`);
55
- return;
56
- }
57
- const graph = runner.multiAgentOperatorGraph((0, io_1.required)(runId, "run id"));
58
- if ((0, io_1.wantsJson)(args.options))
59
- (0, io_1.printJson)(graph);
60
- else
61
- process.stdout.write(`${(0, operator_ux_1.formatOperatorGraph)({ runId: (0, io_1.required)(runId, "run id"), nodes: graph.nodes, edges: graph.edges })}\n`);
62
- return;
63
- }
64
- case "dependencies": {
65
- const rows = runner.multiAgentDependencies((0, io_1.required)(runId, "run id"));
66
- if ((0, io_1.wantsJson)(args.options))
67
- (0, io_1.printJson)(rows);
68
- else
69
- process.stdout.write(`${(0, multi_agent_operator_ux_1.formatMultiAgentDependencies)(rows)}\n`);
70
- return;
71
- }
72
- case "failures": {
73
- const rows = runner.multiAgentFailures((0, io_1.required)(runId, "run id"));
74
- if ((0, io_1.wantsJson)(args.options))
75
- (0, io_1.printJson)(rows);
76
- else
77
- process.stdout.write(`${(0, multi_agent_operator_ux_1.formatMultiAgentFailures)(rows)}\n`);
78
- return;
79
- }
80
- case "evidence": {
81
- const rows = runner.multiAgentEvidence((0, io_1.required)(runId, "run id"));
82
- if ((0, io_1.wantsJson)(args.options))
83
- (0, io_1.printJson)(rows);
84
- else
85
- process.stdout.write(`${(0, multi_agent_operator_ux_1.formatMultiAgentEvidence)(rows)}\n`);
86
- return;
87
- }
88
- case "reasoning": {
89
- if (args.options.refresh && !args.options.evidence && !args.options.evidenceId) {
90
- const index = runner.multiAgentReasoningRefresh((0, io_1.required)(runId, "run id"));
91
- (0, io_1.printJson)(index);
92
- return;
93
- }
94
- const report = runner.multiAgentReasoning((0, io_1.required)(runId, "run id"), { ...args.options, evidence: args.options.evidence || args.options.evidenceId || id });
95
- if ((0, io_1.wantsJson)(args.options))
96
- (0, io_1.printJson)(report);
97
- else
98
- process.stdout.write(`${(0, evidence_reasoning_1.formatEvidenceReasoningReport)(report)}\n`);
99
- return;
100
- }
101
- case "run":
102
- if (!runId ||
103
- args.options.topology ||
104
- args.options.topologyId ||
105
- args.options.app ||
106
- args.options.appId ||
107
- args.options.workflow ||
108
- args.options.workflowId) {
109
- (0, io_1.printJson)(runner.hostMultiAgentRun(runId, args.options));
110
- return;
111
- }
112
- if (id && !args.options.id && !args.options.status)
113
- (0, io_1.printJson)(runner.showMultiAgentRun((0, io_1.required)(runId, "run id"), id));
114
- else if (id && args.options.status)
115
- (0, io_1.printJson)(runner.transitionMultiAgentRun((0, io_1.required)(runId, "run id"), id, args.options));
116
- else
117
- (0, io_1.printJson)(runner.createMultiAgentRun((0, io_1.required)(runId, "run id"), args.options));
118
- return;
119
- case "show":
120
- (0, io_1.printJson)(runner.showMultiAgentRun((0, io_1.required)(runId, "run id"), (0, io_1.required)(id, "multi-agent run id")));
121
- return;
122
- case "role":
123
- if (id && !args.options.id && !args.options["multi-agent-run"] && !args.options.multiAgentRun && !args.options.multiAgentRunId) {
124
- (0, io_1.printJson)(runner.showAgentRole((0, io_1.required)(runId, "run id"), id));
125
- }
126
- else {
127
- (0, io_1.printJson)(runner.createAgentRole((0, io_1.required)(runId, "run id"), { ...args.options, id: args.options.id || id }));
128
- }
129
- return;
130
- case "group":
131
- if (id && !args.options.id && !args.options["multi-agent-run"] && !args.options.multiAgentRun && !args.options.multiAgentRunId) {
132
- (0, io_1.printJson)(runner.showAgentGroup((0, io_1.required)(runId, "run id"), id));
133
- }
134
- else {
135
- (0, io_1.printJson)(runner.createAgentGroup((0, io_1.required)(runId, "run id"), { ...args.options, id: args.options.id || id }));
136
- }
137
- return;
138
- case "membership":
139
- if (id && !args.options.id && !args.options.group && !args.options.groupId && !args.options["multi-agent-group"]) {
140
- (0, io_1.printJson)(runner.showAgentMembership((0, io_1.required)(runId, "run id"), id));
141
- }
142
- else {
143
- (0, io_1.printJson)(runner.assignAgentMembership((0, io_1.required)(runId, "run id"), { ...args.options, id: args.options.id || id }));
144
- }
145
- return;
146
- case "fanout":
147
- if (id && !args.options.id && !args.options.group && !args.options.groupId && !args.options["multi-agent-group"]) {
148
- (0, io_1.printJson)(runner.showAgentFanout((0, io_1.required)(runId, "run id"), id));
149
- }
150
- else {
151
- (0, io_1.printJson)(runner.createAgentFanout((0, io_1.required)(runId, "run id"), { ...args.options, id: args.options.id || id }));
152
- }
153
- return;
154
- case "fanin":
155
- if (id && !args.options.id && !args.options.group && !args.options.groupId && !args.options["multi-agent-group"] && !args.options.fanout) {
156
- (0, io_1.printJson)(runner.showAgentFanin((0, io_1.required)(runId, "run id"), id));
157
- }
158
- else {
159
- (0, io_1.printJson)(runner.collectAgentFanin((0, io_1.required)(runId, "run id"), { ...args.options, id: args.options.id || id }));
160
- }
161
- return;
162
- default:
163
- throw new Error("Usage: cw.js multi-agent run|status|step|blackboard|score|select|summary|summarize|graph|dependencies|failures|evidence|reasoning|show|role|group|membership|fanout|fanin <run-id> [id]");
164
- }
165
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleNode = handleNode;
4
- const operator_ux_1 = require("../../operator-ux");
5
- const io_1 = require("../io");
6
- /** `cw node list|show|graph|snapshot|diff|replay|verify <run-id> …` — node inspection. */
7
- function handleNode(args, runner) {
8
- const [subcommand, runId, nodeId] = args.positionals;
9
- switch (subcommand) {
10
- case "list":
11
- (0, io_1.printJson)(runner.listNodes((0, io_1.required)(runId, "run id")));
12
- return;
13
- case "show":
14
- (0, io_1.printJson)(runner.showNode((0, io_1.required)(runId, "run id"), (0, io_1.required)(nodeId, "node id")));
15
- return;
16
- case "graph":
17
- if ((0, io_1.wantsJson)(args.options))
18
- (0, io_1.printJson)(runner.graphNodes((0, io_1.required)(runId, "run id")));
19
- else
20
- process.stdout.write(`${(0, operator_ux_1.formatOperatorGraph)(runner.operatorGraph((0, io_1.required)(runId, "run id")))}\n`);
21
- return;
22
- case "snapshot":
23
- (0, io_1.printJson)(runner.nodeSnapshot((0, io_1.required)(runId, "run id"), (0, io_1.required)(nodeId, "node id")));
24
- return;
25
- case "diff":
26
- (0, io_1.printJson)(runner.nodeDiff((0, io_1.required)(runId, "run id"), (0, io_1.required)(nodeId, "baseline snapshot id"), (0, io_1.required)(args.positionals[3], "candidate snapshot id")));
27
- return;
28
- case "replay":
29
- (0, io_1.printJson)(runner.nodeReplay((0, io_1.required)(runId, "run id"), (0, io_1.required)(nodeId, "snapshot id")));
30
- return;
31
- case "verify": {
32
- const verdict = runner.nodeReplayVerify((0, io_1.required)(runId, "run id"), (0, io_1.required)(nodeId, "replay id"));
33
- (0, io_1.printJson)(verdict);
34
- if (!verdict.pass)
35
- process.exitCode = 1;
36
- return;
37
- }
38
- default:
39
- throw new Error("Usage: cw.js node list|show|graph|snapshot|diff|replay|verify <run-id> [node-id|snapshot-id|replay-id]");
40
- }
41
- }