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,155 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleSandbox = handleSandbox;
4
- exports.handleBackend = handleBackend;
5
- exports.handleContract = handleContract;
6
- exports.handleMigration = handleMigration;
7
- exports.handleFeedback = handleFeedback;
8
- exports.handleMetrics = handleMetrics;
9
- const capability_core_1 = require("../../capability-core");
10
- const observability_1 = require("../../observability");
11
- const operator_ux_1 = require("../../operator-ux");
12
- const io_1 = require("../io");
13
- /** `cw sandbox list|show|validate|choose|resolve [profile-id|profile-file]`. */
14
- function handleSandbox(args, runner) {
15
- const [subcommand, profileIdOrFile] = args.positionals;
16
- switch (subcommand) {
17
- case "list":
18
- (0, io_1.printJson)(runner.listSandboxProfiles(args.options));
19
- return;
20
- case "show":
21
- (0, io_1.printJson)(runner.showSandboxProfile((0, io_1.required)(profileIdOrFile, "profile id"), args.options));
22
- return;
23
- case "validate": {
24
- const result = runner.validateSandboxProfile((0, io_1.required)(profileIdOrFile, "profile file"), args.options);
25
- (0, io_1.printJson)(result);
26
- if (!result.valid)
27
- process.exitCode = 1;
28
- return;
29
- }
30
- case "choose":
31
- case "resolve":
32
- (0, io_1.printJson)((0, capability_core_1.sandboxChoose)(runner, { ...args.options, profileId: profileIdOrFile || args.options.profileId }));
33
- return;
34
- default:
35
- throw new Error("Usage: cw.js sandbox list|show|validate|choose|resolve [profile-id|profile-file]");
36
- }
37
- }
38
- /** `cw backend list|show|probe [backend-id] | cw backend agent config [show|set] …`. */
39
- function handleBackend(args, runner) {
40
- const [subcommand, backendId] = args.positionals;
41
- switch (subcommand) {
42
- case "list":
43
- (0, io_1.printJson)(runner.listBackends(args.options));
44
- return;
45
- case "show":
46
- (0, io_1.printJson)(runner.showBackend((0, io_1.required)(backendId, "backend id"), args.options));
47
- return;
48
- case "probe":
49
- (0, io_1.printJson)(runner.probeBackend(backendId, args.options));
50
- return;
51
- case "agent": {
52
- // `backend agent config [show]` = read-only; `backend agent config set ...` = mutating.
53
- const [, , action] = args.positionals;
54
- if (action === "set") {
55
- (0, io_1.printJson)((0, capability_core_1.backendAgentConfigSet)(args.options));
56
- return;
57
- }
58
- (0, io_1.printJson)((0, capability_core_1.backendAgentConfigShow)(args.options));
59
- return;
60
- }
61
- default:
62
- throw new Error("Usage: cw.js backend list|show|probe [backend-id] | cw.js backend agent config [show|set] [--agent-command ... --agent-endpoint ... --agent-model ...]");
63
- }
64
- }
65
- /** `cw contract show <run-id> [contract-id]`. */
66
- function handleContract(args, runner) {
67
- const [subcommand, runId, contractId] = args.positionals;
68
- switch (subcommand) {
69
- case "show":
70
- (0, io_1.printJson)(runner.showContract((0, io_1.required)(runId, "run id"), contractId));
71
- return;
72
- default:
73
- throw new Error("Usage: cw.js contract show <run-id> [contract-id]");
74
- }
75
- }
76
- /** `cw migration list|check|prove [target] …`. */
77
- function handleMigration(args, runner) {
78
- const [subcommand, target] = args.positionals;
79
- switch (subcommand) {
80
- case "list":
81
- (0, io_1.printJson)(runner.migrationList());
82
- return;
83
- case "check": {
84
- const report = runner.migrationCheck((0, io_1.required)(target, "target (run-id or state/app file)"), args.options);
85
- (0, io_1.printJson)(report);
86
- if (report.status === "unsupported")
87
- process.exitCode = 1;
88
- return;
89
- }
90
- case "prove": {
91
- const proof = runner.migrationProve((0, io_1.required)(target, "target (run-id or state/app file)"), args.options);
92
- (0, io_1.printJson)(proof);
93
- if (!proof.pass)
94
- process.exitCode = 1;
95
- return;
96
- }
97
- default:
98
- throw new Error("Usage: cw.js migration list|check|prove [target] [--contract run-state|workflow-app]");
99
- }
100
- }
101
- /** `cw feedback list|show|summary|collect|task|resolve <run-id> [feedback-id]`. */
102
- function handleFeedback(args, runner) {
103
- const [subcommand, runId, feedbackId] = args.positionals;
104
- switch (subcommand) {
105
- case "list":
106
- (0, io_1.printJson)(runner.listFeedback((0, io_1.required)(runId, "run id"), args.options));
107
- return;
108
- case "show":
109
- (0, io_1.printJson)(runner.showFeedback((0, io_1.required)(runId, "run id"), (0, io_1.required)(feedbackId, "feedback id")));
110
- return;
111
- case "collect":
112
- (0, io_1.printJson)(runner.collectFeedback((0, io_1.required)(runId, "run id")));
113
- return;
114
- case "summary": {
115
- const summary = runner.summarizeFeedbackRecords((0, io_1.required)(runId, "run id"));
116
- if ((0, io_1.wantsJson)(args.options))
117
- (0, io_1.printJson)(summary);
118
- else
119
- process.stdout.write(`${(0, operator_ux_1.formatFeedbackSummary)(summary)}\n`);
120
- return;
121
- }
122
- case "task":
123
- (0, io_1.printJson)(runner.createFeedbackTask((0, io_1.required)(runId, "run id"), (0, io_1.required)(feedbackId, "feedback id"), args.options));
124
- return;
125
- case "resolve":
126
- (0, io_1.printJson)(runner.resolveFeedback((0, io_1.required)(runId, "run id"), (0, io_1.required)(feedbackId, "feedback id"), args.options));
127
- return;
128
- default:
129
- throw new Error("Usage: cw.js feedback list|show|summary|collect|task|resolve <run-id> [feedback-id]");
130
- }
131
- }
132
- /** `cw metrics show <run-id> | metrics summary …`. */
133
- function handleMetrics(args, runner) {
134
- const [subcommand, runId] = args.positionals;
135
- switch (subcommand) {
136
- case "show": {
137
- const report = runner.metricsShow((0, io_1.required)(runId, "run id"), args.options);
138
- if ((0, io_1.wantsJson)(args.options))
139
- (0, io_1.printJson)(report);
140
- else
141
- process.stdout.write(`${(0, observability_1.formatMetricsReport)(report)}\n`);
142
- return;
143
- }
144
- case "summary": {
145
- const report = (0, capability_core_1.metricsSummary)((0, capability_core_1.runRegistryFor)(args.options, runner), runner, args.options);
146
- if ((0, io_1.wantsJson)(args.options))
147
- (0, io_1.printJson)(report);
148
- else
149
- process.stdout.write(`${(0, observability_1.formatMetricsSummary)(report)}\n`);
150
- return;
151
- }
152
- default:
153
- throw new Error("Usage: cw.js metrics show <run-id> | metrics summary [--scope repo|home] [--pricing <path>|default] [--json]");
154
- }
155
- }
@@ -1,146 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleReport = handleReport;
4
- exports.handleOperator = handleOperator;
5
- exports.handleGraph = handleGraph;
6
- exports.handleTopology = handleTopology;
7
- exports.handleSummary = handleSummary;
8
- const capability_core_1 = require("../../capability-core");
9
- const operator_ux_1 = require("../../operator-ux");
10
- const state_explosion_1 = require("../../state-explosion");
11
- const io_1 = require("../io");
12
- /** `cw report <run-id> [--show] | report bundle <run-id> | report verify-bundle <path>`. */
13
- function handleReport(args, runner) {
14
- // `report verify-bundle <path>` is the offline self-contained bundle verifier;
15
- // `report bundle <run-id>` exports a sealed bundle and self-verifies it;
16
- // every other `report <run-id>` form prints/inspects a local run's report.
17
- if (args.positionals[0] === "verify-bundle") {
18
- const result = (0, capability_core_1.runVerifyReportBundle)(runner, { ...args.options, archive: args.positionals[1] || args.options.archive || args.options.path || args.options.file || args.options.bundle });
19
- (0, io_1.printJson)(result);
20
- // Fail closed: a forged/edited/corrupt bundle verifies false — surface it
21
- // through the exit code so `cw report verify-bundle <file> && ship` cannot
22
- // pass on a lie. Mirrors run inspect-archive / telemetry verify.
23
- if (!result.ok)
24
- process.exitCode = 1;
25
- return;
26
- }
27
- if (args.positionals[0] === "bundle") {
28
- const result = (0, capability_core_1.reportBundle)(runner, (0, io_1.required)(args.positionals[1] || (0, io_1.optionalArg)(args.options.runId || args.options.run), "run id"), args.options);
29
- (0, io_1.printJson)(result);
30
- // Fail closed: never report a "bundle made" success if the artifact does not
31
- // self-verify — so `cw report bundle <run> && send-to-client` cannot ship an
32
- // unverifiable report (e.g. no trust key under --strict-signatures).
33
- if (!result.ok)
34
- process.exitCode = 1;
35
- return;
36
- }
37
- const runId = (0, io_1.required)(args.positionals[0], "run id");
38
- const report = runner.report(runId);
39
- if ((0, io_1.wantsJson)(args.options)) {
40
- (0, io_1.printJson)(report);
41
- }
42
- else if (args.options.show || args.options.summary) {
43
- process.stdout.write(`${(0, operator_ux_1.formatOperatorReport)(runner.operatorReport(runId))}\n`);
44
- process.stdout.write(`\n${(0, state_explosion_1.formatStateExplosionReport)(runner.stateExplosionReport(runId))}\n`);
45
- }
46
- else {
47
- process.stdout.write(`${report.path}\n`);
48
- }
49
- }
50
- /** `cw operator status|report <run-id> [--json]`. */
51
- function handleOperator(args, runner) {
52
- const [subcommand, runId] = args.positionals;
53
- switch (subcommand) {
54
- case "status":
55
- if ((0, io_1.wantsJson)(args.options))
56
- (0, io_1.printJson)(runner.operatorStatus((0, io_1.required)(runId, "run id")));
57
- else {
58
- const summary = runner.operatorStatus((0, io_1.required)(runId, "run id"));
59
- process.stdout.write(`${(args.options.summary || args.options.brief ? (0, operator_ux_1.formatOperatorSummary)(summary) : (0, operator_ux_1.formatOperatorStatus)(summary))}\n`);
60
- }
61
- return;
62
- case "report":
63
- if ((0, io_1.wantsJson)(args.options))
64
- (0, io_1.printJson)(runner.operatorReport((0, io_1.required)(runId, "run id")));
65
- else
66
- process.stdout.write(`${(0, operator_ux_1.formatOperatorReport)(runner.operatorReport((0, io_1.required)(runId, "run id")))}\n`);
67
- return;
68
- default:
69
- throw new Error("Usage: cw.js operator status|report <run-id> [--json]");
70
- }
71
- }
72
- /** `cw graph <run-id> [--json]` — the operator run graph. */
73
- function handleGraph(args, runner) {
74
- const graph = runner.operatorGraph((0, io_1.required)(args.positionals[0], "run id"));
75
- if ((0, io_1.wantsJson)(args.options))
76
- (0, io_1.printJson)(graph);
77
- else
78
- process.stdout.write(`${(0, operator_ux_1.formatOperatorGraph)(graph)}\n`);
79
- }
80
- /** `cw topology list|show|validate|apply|summary|graph …`. */
81
- function handleTopology(args, runner) {
82
- const [subcommand, first, second] = args.positionals;
83
- switch (subcommand) {
84
- case "list":
85
- (0, io_1.printJson)(runner.listTopologies());
86
- return;
87
- case "show":
88
- if (second)
89
- (0, io_1.printJson)(runner.showTopologyRun((0, io_1.required)(first, "run id"), second));
90
- else
91
- (0, io_1.printJson)(runner.showTopology((0, io_1.required)(first, "topology id")));
92
- return;
93
- case "validate": {
94
- const result = runner.validateTopology((0, io_1.required)(first, "topology id"));
95
- (0, io_1.printJson)(result);
96
- if (!result.valid)
97
- process.exitCode = 1;
98
- return;
99
- }
100
- case "apply":
101
- (0, io_1.printJson)(runner.applyTopology((0, io_1.required)(first, "run id"), (0, io_1.required)(second, "topology id"), args.options));
102
- return;
103
- case "summary": {
104
- const summary = runner.topologySummary((0, io_1.required)(first, "run id"));
105
- if ((0, io_1.wantsJson)(args.options))
106
- (0, io_1.printJson)(summary);
107
- else
108
- process.stdout.write(`${(0, operator_ux_1.formatTopologySummary)(summary)}\n`);
109
- return;
110
- }
111
- case "graph": {
112
- const graph = runner.topologyGraph((0, io_1.required)(first, "run id"));
113
- if ((0, io_1.wantsJson)(args.options))
114
- (0, io_1.printJson)(graph);
115
- else
116
- process.stdout.write(`${(0, operator_ux_1.formatOperatorGraph)({ runId: (0, io_1.required)(first, "run id"), nodes: graph.nodes, edges: graph.edges })}\n`);
117
- return;
118
- }
119
- default:
120
- throw new Error("Usage: cw.js topology list|show <topology-id>|show <run-id> <topology-run-id>|validate <topology-id>|apply <run-id> <topology-id>|summary <run-id>|graph <run-id>");
121
- }
122
- }
123
- /** `cw summary refresh|show <run-id> [--json]` — durable state-explosion summary. */
124
- function handleSummary(args, runner) {
125
- const [subcommand, runId] = args.positionals;
126
- switch (subcommand) {
127
- case "refresh": {
128
- const index = runner.summaryRefresh((0, io_1.required)(runId, "run id"), args.options);
129
- if ((0, io_1.wantsJson)(args.options))
130
- (0, io_1.printJson)(index);
131
- else
132
- process.stdout.write(`${(0, state_explosion_1.formatStateExplosionReport)(runner.summaryShow((0, io_1.required)(runId, "run id")))}\n`);
133
- return;
134
- }
135
- case "show": {
136
- const report = runner.summaryShow((0, io_1.required)(runId, "run id"));
137
- if ((0, io_1.wantsJson)(args.options))
138
- (0, io_1.printJson)(report);
139
- else
140
- process.stdout.write(`${(0, state_explosion_1.formatStateExplosionReport)(report)}\n`);
141
- return;
142
- }
143
- default:
144
- throw new Error("Usage: cw.js summary refresh|show <run-id> [--json]");
145
- }
146
- }
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleRegistry = handleRegistry;
4
- exports.handleQueue = handleQueue;
5
- exports.handleHistory = handleHistory;
6
- const capability_core_1 = require("../../capability-core");
7
- const run_registry_1 = require("../../run-registry");
8
- const io_1 = require("../io");
9
- /** `cw registry refresh|show [--scope repo|home] [--json]`. */
10
- function handleRegistry(args, runner) {
11
- const registry = (0, capability_core_1.runRegistryFor)(args.options, runner);
12
- const [subcommand] = args.positionals;
13
- switch (subcommand) {
14
- case "refresh": {
15
- const report = (0, capability_core_1.runRegistryRefresh)(registry, args.options);
16
- if ((0, io_1.wantsJson)(args.options))
17
- (0, io_1.printJson)(report);
18
- else
19
- process.stdout.write(`${(0, run_registry_1.formatRegistryReport)(report)}\n`);
20
- return;
21
- }
22
- case "show": {
23
- const report = (0, capability_core_1.runRegistryShow)(registry, args.options);
24
- if ((0, io_1.wantsJson)(args.options))
25
- (0, io_1.printJson)(report);
26
- else
27
- process.stdout.write(`${(0, run_registry_1.formatRegistryReport)(report)}\n`);
28
- return;
29
- }
30
- default:
31
- throw new Error("Usage: cw.js registry refresh|show [--scope repo|home] [--json]");
32
- }
33
- }
34
- /** `cw queue add|list|drain|show [queue-id] [--repo PATH] [--priority N]`. */
35
- function handleQueue(args, runner) {
36
- const registry = (0, capability_core_1.runRegistryFor)(args.options, runner);
37
- const [subcommand, id] = args.positionals;
38
- switch (subcommand) {
39
- case "add":
40
- (0, io_1.printJson)((0, capability_core_1.queueAdd)(registry, args.options));
41
- return;
42
- case "list": {
43
- const result = (0, capability_core_1.queueList)(registry, args.options);
44
- if ((0, io_1.wantsJson)(args.options))
45
- (0, io_1.printJson)(result);
46
- else
47
- process.stdout.write(`${(0, run_registry_1.formatQueueList)(result)}\n`);
48
- return;
49
- }
50
- case "drain":
51
- (0, io_1.printJson)((0, capability_core_1.queueDrain)(registry, args.options));
52
- return;
53
- case "show":
54
- (0, io_1.printJson)((0, capability_core_1.queueShow)(registry, (0, io_1.required)(id, "queue id")));
55
- return;
56
- default:
57
- throw new Error("Usage: cw.js queue add|list|drain|show [queue-id] [--repo PATH] [--priority N]");
58
- }
59
- }
60
- /** `cw history [--json]` — recent runs across the resolved registry scope. */
61
- function handleHistory(args, runner) {
62
- const registry = (0, capability_core_1.runRegistryFor)(args.options, runner);
63
- const result = (0, capability_core_1.runHistory)(registry, args.options);
64
- if ((0, io_1.wantsJson)(args.options))
65
- (0, io_1.printJson)(result);
66
- else
67
- process.stdout.write(`${(0, run_registry_1.formatHistory)(result)}\n`);
68
- }
@@ -1,153 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleRun = handleRun;
4
- const capability_core_1 = require("../../capability-core");
5
- const run_registry_1 = require("../../run-registry");
6
- const run_summary_1 = require("../run-summary");
7
- const io_1 = require("../io");
8
- /** `cw run <app> --drive [--once]` (Agent Delegation Drive) + the run-registry verbs
9
- * (drive/search/list/show/resume/archive/rerun/export/import/verify-import/inspect-archive/restore). */
10
- function handleRun(args, runner) {
11
- // Agent Delegation Drive (v0.1.38): `cw run <app> --drive [--once]` drives a
12
- // run end-to-end by delegating each worker to the agent backend. Distinct from
13
- // the run-REGISTRY verbs below. `--preview` (or the `run drive <run-id>` form)
14
- // is the read-only, deterministic next-step preview.
15
- //
16
- // A run-REGISTRY subcommand keyword (resume/show/...) must NOT be intercepted
17
- // here just because it carries a --drive flag of its own — e.g.
18
- // `run resume <id> --drive` is the resume verb's opt-in continuation, not
19
- // `run <app=resume> --drive`. Fall through to the switch for those keywords.
20
- const runRegistrySubcommand = new Set([
21
- "drive", "search", "list", "show", "resume", "archive", "rerun", "export", "import", "verify-import", "inspect-archive", "restore"
22
- ]);
23
- if (args.options.drive && !runRegistrySubcommand.has(String(args.positionals[0] || ""))) {
24
- const target = args.positionals[0];
25
- const runId = (0, io_1.optionalArg)(args.options.run) || (0, io_1.optionalArg)(args.options.runId);
26
- if (args.options.preview) {
27
- (0, io_1.printJson)((0, capability_core_1.runDrivePreview)(runner, { ...args.options, runId: runId || target }));
28
- return;
29
- }
30
- const driveArgs = { ...args.options };
31
- if (runId)
32
- driveArgs.runId = runId;
33
- else
34
- driveArgs.appId = target;
35
- const dr = (0, capability_core_1.runDrive)(runner, driveArgs);
36
- (0, io_1.printJson)(dr);
37
- if (!(0, io_1.wantsJson)(args.options)) {
38
- (0, run_summary_1.emitRunSummary)(runner, args.options, {
39
- runId: dr.runId,
40
- reportPath: dr.reportPath,
41
- status: dr.status,
42
- statePath: dr.statePath,
43
- completedWorkers: dr.completedWorkers,
44
- plannedWorkers: dr.plannedWorkers,
45
- agentConfigured: dr.agentConfigured
46
- });
47
- }
48
- return;
49
- }
50
- const registry = (0, capability_core_1.runRegistryFor)(args.options, runner);
51
- const [subcommand, id] = args.positionals;
52
- switch (subcommand) {
53
- case "drive": {
54
- // `run drive <run-id>` = read-only preview; `--step [--once]` = mutating drive.
55
- if (args.options.step) {
56
- const driveArgs = { ...args.options };
57
- if (id)
58
- driveArgs.runId = id;
59
- const dr = (0, capability_core_1.runDrive)(runner, driveArgs);
60
- (0, io_1.printJson)(dr);
61
- if (!(0, io_1.wantsJson)(args.options)) {
62
- (0, run_summary_1.emitRunSummary)(runner, args.options, {
63
- runId: dr.runId,
64
- reportPath: dr.reportPath,
65
- status: dr.status,
66
- statePath: dr.statePath,
67
- completedWorkers: dr.completedWorkers,
68
- plannedWorkers: dr.plannedWorkers,
69
- agentConfigured: dr.agentConfigured
70
- });
71
- }
72
- return;
73
- }
74
- (0, io_1.printJson)((0, capability_core_1.runDrivePreview)(runner, { ...args.options, runId: (0, io_1.required)(id, "run id") }));
75
- return;
76
- }
77
- case "search": {
78
- const result = (0, capability_core_1.runSearch)(registry, args.options);
79
- if ((0, io_1.wantsJson)(args.options))
80
- (0, io_1.printJson)(result);
81
- else
82
- process.stdout.write(`${(0, run_registry_1.formatRunSearch)(result)}\n`);
83
- return;
84
- }
85
- case "list": {
86
- const result = (0, capability_core_1.runList)(registry, args.options);
87
- if ((0, io_1.wantsJson)(args.options))
88
- (0, io_1.printJson)(result);
89
- else
90
- process.stdout.write(`${(0, run_registry_1.formatRunSearch)(result)}\n`);
91
- return;
92
- }
93
- case "show": {
94
- const result = (0, capability_core_1.runShow)(registry, (0, io_1.required)(id, "run id"), args.options);
95
- if ((0, io_1.wantsJson)(args.options))
96
- (0, io_1.printJson)(result);
97
- else
98
- process.stdout.write(`${(0, run_registry_1.formatRunShow)(result)}\n`);
99
- return;
100
- }
101
- case "resume": {
102
- const result = (0, capability_core_1.runResume)(registry, runner, (0, io_1.required)(id, "run id"), args.options);
103
- if ((0, io_1.wantsJson)(args.options))
104
- (0, io_1.printJson)(result);
105
- else
106
- process.stdout.write(`${(0, run_registry_1.formatResume)(result)}\n`);
107
- return;
108
- }
109
- case "archive":
110
- (0, io_1.printJson)((0, capability_core_1.runArchive)(registry, id, args.options));
111
- return;
112
- case "rerun":
113
- (0, io_1.printJson)((0, capability_core_1.runRerun)(registry, (0, io_1.required)(id, "run id"), args.options));
114
- return;
115
- case "export":
116
- (0, io_1.printJson)((0, capability_core_1.runExportArchive)(runner, (0, io_1.required)(id || (0, io_1.optionalArg)(args.options.runId || args.options.run), "run id"), args.options));
117
- return;
118
- case "import":
119
- (0, io_1.printJson)((0, capability_core_1.runImportArchive)(runner, { ...args.options, archive: id || args.options.archive || args.options.path }));
120
- return;
121
- case "verify-import": {
122
- const result = (0, capability_core_1.runVerifyImport)(runner, (0, io_1.required)(id || (0, io_1.optionalArg)(args.options.runId || args.options.run), "run id"), args.options);
123
- (0, io_1.printJson)(result);
124
- // Fail-closed ONLY behind --strict, so the default exit stays 0
125
- // (byte-identical). With --strict, any failed restore check — including
126
- // the new trust-audit row — exits 1 for `verify-import && restore`.
127
- if (Boolean(args.options.strict) && !result.ok)
128
- process.exitCode = 1;
129
- return;
130
- }
131
- case "inspect-archive": {
132
- const result = (0, capability_core_1.runInspectArchive)(runner, { ...args.options, archive: id || args.options.archive || args.options.path });
133
- (0, io_1.printJson)(result);
134
- // Read-only diagnostic: exit 1 when the archive fails any integrity check,
135
- // so `cw run inspect-archive <path> && restore` stops on a bad archive.
136
- if (!result.ok)
137
- process.exitCode = 1;
138
- return;
139
- }
140
- case "restore": {
141
- const result = (0, capability_core_1.runRestoreArchive)(runner, { ...args.options, archive: id || args.options.archive || args.options.path });
142
- (0, io_1.printJson)(result);
143
- // Fail-closed: exit 1 when inspect OR verify failed, so a tampered or
144
- // unverifiable archive never reports a made-up success (mirrors the
145
- // inspect-archive exit-1 pattern).
146
- if (!result.ok)
147
- process.exitCode = 1;
148
- return;
149
- }
150
- default:
151
- throw new Error("Usage: cw.js run search|list|show|resume|archive|rerun|drive|export|import|verify-import|inspect-archive|restore [run-id|archive] [--scope repo|home] [--json] | cw.js run <app> --drive [--once] [--incremental] [--repo R --question Q]");
152
- }
153
- }
@@ -1,132 +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.handleSchedule = handleSchedule;
7
- exports.handleRoutine = handleRoutine;
8
- exports.handleSched = handleSched;
9
- // `cw schedule` / `cw routine` / `cw sched` handlers — the scheduling command
10
- // family, carved out of the command-surface god-dispatch. Three sibling verbs:
11
- // schedule — desktop scheduler (create/list/.../daemon) over the Scheduler
12
- // routine — routine triggers (create/list/delete/fire/events) over the bridge
13
- // sched — durable run-queue scheduling (plan/lease/release/.../policy)
14
- const node_fs_1 = __importDefault(require("node:fs"));
15
- const daemon_1 = require("../../daemon");
16
- const capability_core_1 = require("../../capability-core");
17
- const io_1 = require("../io");
18
- /** `cw schedule create|list|delete|due|complete|pause|resume|run-now|history|daemon`. */
19
- async function handleSchedule(args, scheduler) {
20
- const [subcommand, id] = args.positionals;
21
- switch (subcommand) {
22
- case "create":
23
- (0, io_1.printJson)(scheduler.create(args.options));
24
- return;
25
- case "list":
26
- (0, io_1.printJson)(scheduler.list(args.options.status ? String(args.options.status) : undefined));
27
- return;
28
- case "delete":
29
- (0, io_1.printJson)(scheduler.delete((0, io_1.required)(id, "schedule id")));
30
- return;
31
- case "due":
32
- (0, io_1.printJson)(scheduler.due());
33
- return;
34
- case "complete":
35
- (0, io_1.printJson)(scheduler.complete((0, io_1.required)(id, "schedule id"), args.options));
36
- return;
37
- case "pause":
38
- (0, io_1.printJson)(scheduler.pause((0, io_1.required)(id, "schedule id")));
39
- return;
40
- case "resume":
41
- (0, io_1.printJson)(scheduler.resume((0, io_1.required)(id, "schedule id")));
42
- return;
43
- case "run-now":
44
- (0, io_1.printJson)(scheduler.runNow((0, io_1.required)(id, "schedule id")));
45
- return;
46
- case "history":
47
- (0, io_1.printJson)(scheduler.history(id));
48
- return;
49
- case "daemon": {
50
- const daemon = new daemon_1.DesktopSchedulerDaemon({
51
- cwd: String(args.options.cwd || process.cwd()),
52
- intervalSeconds: Number(args.options.intervalSeconds || args.options.interval || 60)
53
- });
54
- if (args.options.once) {
55
- (0, io_1.printJson)(daemon.tick());
56
- return;
57
- }
58
- await daemon.run();
59
- return;
60
- }
61
- default:
62
- throw new Error("Usage: cw.js schedule create|list|delete|due|complete|pause|resume|run-now|history|daemon");
63
- }
64
- }
65
- /** `cw routine create|list|delete|fire|events`. */
66
- function handleRoutine(args, triggers) {
67
- const [subcommand, idOrKind, payloadPath] = args.positionals;
68
- switch (subcommand) {
69
- case "create":
70
- (0, io_1.printJson)(triggers.create(args.options));
71
- return;
72
- case "list":
73
- (0, io_1.printJson)(triggers.list(args.options.kind ? String(args.options.kind) : undefined));
74
- return;
75
- case "delete":
76
- (0, io_1.printJson)(triggers.delete((0, io_1.required)(idOrKind, "trigger id")));
77
- return;
78
- case "fire": {
79
- const kind = (0, io_1.required)(idOrKind, "trigger kind");
80
- let payload;
81
- try {
82
- payload = payloadPath ? JSON.parse(node_fs_1.default.readFileSync(payloadPath, "utf8")) : args.options;
83
- }
84
- catch (e) {
85
- throw new Error(`Failed to parse payload${payloadPath ? ` file "${payloadPath}"` : ""}: ${String(e && e.message || e)}`);
86
- }
87
- (0, io_1.printJson)(triggers.fire(kind, payload));
88
- return;
89
- }
90
- case "events":
91
- (0, io_1.printJson)(triggers.events(idOrKind));
92
- return;
93
- default:
94
- throw new Error("Usage: cw.js routine create|list|delete|fire|events");
95
- }
96
- }
97
- /** `cw sched plan|lease|release|complete|reclaim|reset|policy [show|set]` — durable run-queue. */
98
- function handleSched(args, runner) {
99
- const registry = (0, capability_core_1.runRegistryFor)(args.options, runner);
100
- const [subcommand, idArg] = args.positionals;
101
- switch (subcommand) {
102
- case "plan":
103
- (0, io_1.printJson)((0, capability_core_1.schedPlan)(registry, args.options));
104
- return;
105
- case "lease":
106
- (0, io_1.printJson)((0, capability_core_1.schedLease)(registry, args.options));
107
- return;
108
- case "release":
109
- (0, io_1.printJson)((0, capability_core_1.schedRelease)(registry, { ...args.options, leaseId: args.options.leaseId || idArg }));
110
- return;
111
- case "complete":
112
- (0, io_1.printJson)((0, capability_core_1.schedComplete)(registry, { ...args.options, leaseId: args.options.leaseId || idArg }));
113
- return;
114
- case "reclaim":
115
- (0, io_1.printJson)((0, capability_core_1.schedReclaim)(registry, args.options));
116
- return;
117
- case "reset":
118
- (0, io_1.printJson)((0, capability_core_1.schedReset)(registry, { ...args.options, id: args.options.id || idArg }));
119
- return;
120
- case "policy": {
121
- const [, action] = args.positionals;
122
- if (action === "set") {
123
- (0, io_1.printJson)((0, capability_core_1.schedPolicySet)(registry, args.options));
124
- return;
125
- }
126
- (0, io_1.printJson)((0, capability_core_1.schedPolicyShow)(registry));
127
- return;
128
- }
129
- default:
130
- throw new Error("Usage: cw.js sched plan|lease|release|complete|reclaim|reset|policy [show|set] [id] [--maxConcurrent N --maxAttempts N ...]");
131
- }
132
- }