@jtf19/vibecoding-kit 0.1.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 (619) hide show
  1. package/AGENTS.md +84 -0
  2. package/CHANGELOG.md +28 -0
  3. package/CLAUDE.md +137 -0
  4. package/CODE_OF_CONDUCT.md +30 -0
  5. package/CONTRIBUTING.md +69 -0
  6. package/LICENSE +67 -0
  7. package/README.md +162 -0
  8. package/SECURITY.md +34 -0
  9. package/adapters/claude/install.md +70 -0
  10. package/adapters/claude/plugin.json +38 -0
  11. package/adapters/claude/settings.example.json +15 -0
  12. package/adapters/codex/hooks.example.json +15 -0
  13. package/adapters/codex/install.md +72 -0
  14. package/adapters/codex/plugin.json +58 -0
  15. package/adapters/cursor/hooks.example.json +17 -0
  16. package/adapters/cursor/install.md +72 -0
  17. package/adapters/cursor/plugin.json +42 -0
  18. package/adapters/opencode/install.md +95 -0
  19. package/adapters/opencode/plugin.js +56 -0
  20. package/adapters/opencode/plugin.json +58 -0
  21. package/adapters/pi/extension.ts +56 -0
  22. package/adapters/pi/install.md +95 -0
  23. package/adapters/pi/plugin.json +58 -0
  24. package/bin/vibe-cli-usage.mjs +43 -0
  25. package/bin/vibe.mjs +120 -0
  26. package/docs/acceptance-checklist.md +1226 -0
  27. package/docs/architecture-debt-burndown.md +537 -0
  28. package/docs/architecture.md +77 -0
  29. package/docs/ci-evidence-onboarding.md +143 -0
  30. package/docs/development.md +71 -0
  31. package/docs/evidence-authoring.md +188 -0
  32. package/docs/golden-path.md +179 -0
  33. package/docs/install-acceptance-checklist.md +90 -0
  34. package/docs/install-claude.md +41 -0
  35. package/docs/install-codex.md +41 -0
  36. package/docs/install-cursor.md +41 -0
  37. package/docs/install-experience-roadmap.md +394 -0
  38. package/docs/install.md +119 -0
  39. package/docs/maintainer-guide.md +197 -0
  40. package/docs/phase-1-implementation.md +848 -0
  41. package/docs/phase-2-roadmap.md +142 -0
  42. package/docs/quick-recipes.md +115 -0
  43. package/docs/readiness-interpretation.md +105 -0
  44. package/docs/readiness-troubleshooting.md +209 -0
  45. package/docs/release-check-reference.md +63 -0
  46. package/docs/release-guide.md +481 -0
  47. package/docs/release-notes.md +75 -0
  48. package/docs/runtime-contract.md +1010 -0
  49. package/docs/runtime-maintainer-validation.md +212 -0
  50. package/docs/runtime-roadmap.md +2265 -0
  51. package/docs/skill-authoring-guide.md +150 -0
  52. package/docs/submodule-guide.md +131 -0
  53. package/docs/team-adoption.md +113 -0
  54. package/docs/user-guide.md +108 -0
  55. package/docs/vibecoding-fork-analysis.md +398 -0
  56. package/docs/workflow-chaining.md +539 -0
  57. package/examples/ci/README.md +61 -0
  58. package/examples/ci/ci-evidence-input.example.json +56 -0
  59. package/examples/ci/generate-diff-coverage.mjs +90 -0
  60. package/examples/ci/generate-test-evidence.mjs +82 -0
  61. package/examples/ci/github-actions-readiness.yml +108 -0
  62. package/examples/claude-project/README.md +57 -0
  63. package/examples/codex-project/README.md +57 -0
  64. package/examples/cursor-project/README.md +57 -0
  65. package/examples/full-chain/README.md +63 -0
  66. package/examples/full-chain/architecture-design.md +128 -0
  67. package/examples/full-chain/commit-readiness.json +31 -0
  68. package/examples/full-chain/delivery-traceability.yaml +32 -0
  69. package/examples/full-chain/diff-coverage.json +73 -0
  70. package/examples/full-chain/evidence.json +20 -0
  71. package/examples/full-chain/implementation-plan.md +54 -0
  72. package/examples/full-chain/product-acceptance.md +86 -0
  73. package/examples/full-chain/product-discovery.md +84 -0
  74. package/examples/full-chain/product-spec.md +88 -0
  75. package/examples/full-chain/scenario-acceptance.yaml +32 -0
  76. package/examples/full-chain/test-evidence.json +29 -0
  77. package/examples/full-chain/ui-design-contract.md +87 -0
  78. package/examples/golden-path/README.md +84 -0
  79. package/examples/golden-path/diff-coverage.json +66 -0
  80. package/examples/golden-path/implementation-plan.md +62 -0
  81. package/examples/golden-path/product-spec.md +96 -0
  82. package/examples/golden-path/test-evidence.json +29 -0
  83. package/examples/runtime-fixtures/architecture-design.md +128 -0
  84. package/examples/runtime-fixtures/commit-readiness.json +31 -0
  85. package/examples/runtime-fixtures/delivery-traceability.yaml +32 -0
  86. package/examples/runtime-fixtures/diff-coverage.json +73 -0
  87. package/examples/runtime-fixtures/evidence.json +20 -0
  88. package/examples/runtime-fixtures/implementation-plan.md +54 -0
  89. package/examples/runtime-fixtures/negative/commit-readiness-boundary-escalated.json +27 -0
  90. package/examples/runtime-fixtures/negative/delivery-traceability-bad-ref.yaml +32 -0
  91. package/examples/runtime-fixtures/negative/diff-coverage-changed-file-without-task-ref.json +40 -0
  92. package/examples/runtime-fixtures/negative/diff-coverage-operation-mismatch.json +38 -0
  93. package/examples/runtime-fixtures/negative/diff-coverage-required-task-missing.json +24 -0
  94. package/examples/runtime-fixtures/negative/diff-coverage-unexpected-file.json +20 -0
  95. package/examples/runtime-fixtures/negative/test-evidence-missing-output-digest.json +23 -0
  96. package/examples/runtime-fixtures/negative/test-evidence-risky-task-missing.json +29 -0
  97. package/examples/runtime-fixtures/product-acceptance.md +86 -0
  98. package/examples/runtime-fixtures/product-discovery.md +84 -0
  99. package/examples/runtime-fixtures/product-spec.md +88 -0
  100. package/examples/runtime-fixtures/scenario-acceptance.yaml +32 -0
  101. package/examples/runtime-fixtures/test-evidence.json +29 -0
  102. package/examples/runtime-fixtures/ui-design-contract.md +87 -0
  103. package/hooks/post-tool-compact/README.md +47 -0
  104. package/hooks/session-start/README.md +112 -0
  105. package/hooks/session-start/session-start-state-boundary-contract.mjs +161 -0
  106. package/hooks/session-start/session-start.md +29 -0
  107. package/hooks/session-start/session-start.mjs +49 -0
  108. package/hooks/workflow-handoff/README.md +44 -0
  109. package/hooks/workflow-handoff/workflow-handoff.md +11 -0
  110. package/package.json +72 -0
  111. package/skills/using-vibecoding/SKILL.md +396 -0
  112. package/skills/vibe-brainstorming/SKILL.md +98 -0
  113. package/skills/vibe-context-compact/SKILL.md +95 -0
  114. package/skills/vibe-debugging/SKILL.md +87 -0
  115. package/skills/vibe-dispatching-parallel-work/SKILL.md +144 -0
  116. package/skills/vibe-executing-plans/SKILL.md +114 -0
  117. package/skills/vibe-finishing-a-development-branch/SKILL.md +110 -0
  118. package/skills/vibe-implementation/SKILL.md +84 -0
  119. package/skills/vibe-planning/SKILL.md +102 -0
  120. package/skills/vibe-product-acceptance/SKILL.md +106 -0
  121. package/skills/vibe-product-discovery/SKILL.md +107 -0
  122. package/skills/vibe-product-spec/SKILL.md +105 -0
  123. package/skills/vibe-receiving-code-review/SKILL.md +110 -0
  124. package/skills/vibe-requesting-code-review/SKILL.md +106 -0
  125. package/skills/vibe-review/SKILL.md +106 -0
  126. package/skills/vibe-subagent-driven-development/SKILL.md +198 -0
  127. package/skills/vibe-systematic-debugging/SKILL.md +106 -0
  128. package/skills/vibe-test-driven-development/SKILL.md +112 -0
  129. package/skills/vibe-ui-design/SKILL.md +107 -0
  130. package/skills/vibe-verification/SKILL.md +84 -0
  131. package/skills/vibe-verification-before-completion/SKILL.md +170 -0
  132. package/skills/vibe-workspace-isolation/SKILL.md +158 -0
  133. package/skills/vibe-writing-plans/SKILL.md +137 -0
  134. package/skills/vibe-writing-skills/SKILL.md +118 -0
  135. package/templates/AGENTS.md +88 -0
  136. package/templates/CLAUDE.md +88 -0
  137. package/templates/VIBE-CODING.md +157 -0
  138. package/templates/architecture-design.md +139 -0
  139. package/templates/delivery-traceability.yaml +52 -0
  140. package/templates/evidence/README.md +117 -0
  141. package/templates/evidence/diff-coverage.json +34 -0
  142. package/templates/evidence/test-evidence.json +29 -0
  143. package/templates/implementation-plan.md +73 -0
  144. package/templates/product-acceptance.md +84 -0
  145. package/templates/product-discovery.md +81 -0
  146. package/templates/product-spec.md +84 -0
  147. package/templates/scenario-acceptance.yaml +37 -0
  148. package/templates/ui-design-contract.md +86 -0
  149. package/tools/vibe-architecture-check/README.md +66 -0
  150. package/tools/vibe-architecture-check/index.mjs +691 -0
  151. package/tools/vibe-compact/README.md +65 -0
  152. package/tools/vibe-compact/compact-contract.mjs +63 -0
  153. package/tools/vibe-compact/index.mjs +111 -0
  154. package/tools/vibe-doctor/README.md +200 -0
  155. package/tools/vibe-doctor/index.mjs +1721 -0
  156. package/tools/vibe-init/README.md +231 -0
  157. package/tools/vibe-init/index.mjs +369 -0
  158. package/tools/vibe-init/init-cli-args.mjs +100 -0
  159. package/tools/vibe-init/init-entry-merge-model.mjs +33 -0
  160. package/tools/vibe-init/init-install-manifest-model.mjs +137 -0
  161. package/tools/vibe-init/init-installed-agent-experience-contract.mjs +172 -0
  162. package/tools/vibe-init/init-platform-model.mjs +11 -0
  163. package/tools/vibe-init/init-presentation.mjs +149 -0
  164. package/tools/vibe-lifecycle/README.md +37 -0
  165. package/tools/vibe-lifecycle/index.mjs +365 -0
  166. package/tools/vibe-lifecycle/lifecycle-cli-args.mjs +104 -0
  167. package/tools/vibe-lifecycle/lifecycle-summary-model.mjs +67 -0
  168. package/tools/vibe-lifecycle/lifecycle-uninstall-plan-model.mjs +11 -0
  169. package/tools/vibe-plugin-pack/README.md +105 -0
  170. package/tools/vibe-plugin-pack/index.mjs +302 -0
  171. package/tools/vibe-plugin-pack/plugin-pack-cli.mjs +39 -0
  172. package/tools/vibe-plugin-pack/plugin-pack-manifest.mjs +37 -0
  173. package/tools/vibe-profile/index.mjs +212 -0
  174. package/tools/vibe-release-check/README.md +123 -0
  175. package/tools/vibe-release-check/command-manifest/release-check-base-commands.mjs +23 -0
  176. package/tools/vibe-release-check/command-manifest/release-check-closeout-commands.mjs +16 -0
  177. package/tools/vibe-release-check/command-manifest/release-check-command-metadata.mjs +32 -0
  178. package/tools/vibe-release-check/command-manifest/release-check-completion-commands.mjs +41 -0
  179. package/tools/vibe-release-check/command-manifest/release-check-full-chain-commands.mjs +12 -0
  180. package/tools/vibe-release-check/command-manifest/release-check-golden-path-commands.mjs +12 -0
  181. package/tools/vibe-release-check/command-manifest/release-check-install-commands.mjs +26 -0
  182. package/tools/vibe-release-check/command-manifest/release-check-learning-smoke-commands.mjs +21 -0
  183. package/tools/vibe-release-check/command-manifest/release-check-methodology-commands.mjs +27 -0
  184. package/tools/vibe-release-check/command-manifest/release-check-runtime-smoke-commands.mjs +116 -0
  185. package/tools/vibe-release-check/command-manifest/release-check-token-smoke-commands.mjs +21 -0
  186. package/tools/vibe-release-check/index.mjs +223 -0
  187. package/tools/vibe-release-check/release-check-behavior-smoke.mjs +177 -0
  188. package/tools/vibe-release-check/release-check-cli.mjs +37 -0
  189. package/tools/vibe-release-check/release-check-command-manifest.mjs +49 -0
  190. package/tools/vibe-release-check/release-check-completion-fixtures.mjs +151 -0
  191. package/tools/vibe-release-check/release-check-completion-suite.mjs +110 -0
  192. package/tools/vibe-release-check/release-check-dispatch.mjs +116 -0
  193. package/tools/vibe-release-check/release-check-full-chain-suite.mjs +55 -0
  194. package/tools/vibe-release-check/release-check-golden-path-suite.mjs +85 -0
  195. package/tools/vibe-release-check/release-check-install-marker-specs.mjs +133 -0
  196. package/tools/vibe-release-check/release-check-install-suite.mjs +112 -0
  197. package/tools/vibe-release-check/release-check-json-assertion-helpers.mjs +157 -0
  198. package/tools/vibe-release-check/release-check-json-markers.mjs +33 -0
  199. package/tools/vibe-release-check/release-check-learning-fixture-specs.mjs +199 -0
  200. package/tools/vibe-release-check/release-check-learning-suite.mjs +249 -0
  201. package/tools/vibe-release-check/release-check-live-behavior-smoke-fixture.mjs +406 -0
  202. package/tools/vibe-release-check/release-check-methodology-suite.mjs +108 -0
  203. package/tools/vibe-release-check/release-check-package-boundary-smoke.mjs +111 -0
  204. package/tools/vibe-release-check/release-check-platform-transcript-smoke-fixture.mjs +150 -0
  205. package/tools/vibe-release-check/release-check-readonly-marker-data.mjs +1 -0
  206. package/tools/vibe-release-check/release-check-readonly-marker-smoke-specs.mjs +170 -0
  207. package/tools/vibe-release-check/release-check-run-summary.mjs +67 -0
  208. package/tools/vibe-release-check/release-check-runtime-automation-fixtures.mjs +1 -0
  209. package/tools/vibe-release-check/release-check-runtime-automation-governance-reply-trace-smoke-helpers.mjs +224 -0
  210. package/tools/vibe-release-check/release-check-runtime-automation-governance-smoke-specs.mjs +215 -0
  211. package/tools/vibe-release-check/release-check-runtime-automation-governance-suite.mjs +5 -0
  212. package/tools/vibe-release-check/release-check-runtime-automation-methodology-smoke-specs.mjs +157 -0
  213. package/tools/vibe-release-check/release-check-runtime-automation-methodology-suite.mjs +130 -0
  214. package/tools/vibe-release-check/release-check-runtime-automation-platform-smoke-helpers.mjs +306 -0
  215. package/tools/vibe-release-check/release-check-runtime-automation-platform-suite.mjs +30 -0
  216. package/tools/vibe-release-check/release-check-runtime-automation-smoke-fixtures.mjs +53 -0
  217. package/tools/vibe-release-check/release-check-runtime-automation-source-candidate-smoke-helpers.mjs +506 -0
  218. package/tools/vibe-release-check/release-check-runtime-automation-source-suite.mjs +5 -0
  219. package/tools/vibe-release-check/release-check-runtime-automation-subagents-lifecycle-smoke-helpers.mjs +305 -0
  220. package/tools/vibe-release-check/release-check-runtime-automation-subagents-suite.mjs +25 -0
  221. package/tools/vibe-release-check/release-check-runtime-automation-suite.mjs +25 -0
  222. package/tools/vibe-release-check/release-check-runtime-daemon-bounded-run-smoke-helpers.mjs +243 -0
  223. package/tools/vibe-release-check/release-check-runtime-daemon-suite.mjs +5 -0
  224. package/tools/vibe-release-check/release-check-runtime-dispatch-fixtures.mjs +129 -0
  225. package/tools/vibe-release-check/release-check-runtime-dispatch-suite.mjs +5 -0
  226. package/tools/vibe-release-check/release-check-runtime-execution-approval-smoke-helpers.mjs +274 -0
  227. package/tools/vibe-release-check/release-check-runtime-execution-approval-suite.mjs +5 -0
  228. package/tools/vibe-release-check/release-check-runtime-execution-base-suite.mjs +388 -0
  229. package/tools/vibe-release-check/release-check-runtime-execution-recovery-suite.mjs +412 -0
  230. package/tools/vibe-release-check/release-check-runtime-execution-scheduler-suite.mjs +261 -0
  231. package/tools/vibe-release-check/release-check-runtime-execution-suite.mjs +11 -0
  232. package/tools/vibe-release-check/release-check-runtime-flow-smoke.mjs +347 -0
  233. package/tools/vibe-release-check/release-check-runtime-handoff-fixture-specs.mjs +211 -0
  234. package/tools/vibe-release-check/release-check-runtime-handoff-fixtures.mjs +11 -0
  235. package/tools/vibe-release-check/release-check-runtime-handoff-smoke-specs.mjs +86 -0
  236. package/tools/vibe-release-check/release-check-runtime-handoff-suite.mjs +316 -0
  237. package/tools/vibe-release-check/release-check-runtime-ledger-fixture-specs.mjs +9 -0
  238. package/tools/vibe-release-check/release-check-runtime-ledger-fixtures.mjs +51 -0
  239. package/tools/vibe-release-check/release-check-runtime-ledger-suite.mjs +24 -0
  240. package/tools/vibe-release-check/release-check-runtime-scheduler-fixture-specs.mjs +129 -0
  241. package/tools/vibe-release-check/release-check-runtime-scheduler-fixtures.mjs +10 -0
  242. package/tools/vibe-release-check/release-check-runtime-sdd-suite.mjs +535 -0
  243. package/tools/vibe-release-check/release-check-runtime-smoke-harness.mjs +140 -0
  244. package/tools/vibe-release-check/release-check-runtime-surface-expectations.mjs +106 -0
  245. package/tools/vibe-release-check/release-check-runtime-surface-smoke.mjs +112 -0
  246. package/tools/vibe-release-check/release-check-runtime-task-artifact-suite.mjs +105 -0
  247. package/tools/vibe-release-check/release-check-runtime-task-fixture-specs.mjs +270 -0
  248. package/tools/vibe-release-check/release-check-runtime-task-fixtures.mjs +19 -0
  249. package/tools/vibe-release-check/release-check-runtime.mjs +53 -0
  250. package/tools/vibe-release-check/release-check-stage103-118-fixtures.mjs +214 -0
  251. package/tools/vibe-release-check/release-check-stage103-118-smoke-specs.mjs +97 -0
  252. package/tools/vibe-release-check/release-check-stage103-118-smoke.mjs +861 -0
  253. package/tools/vibe-release-check/release-check-stage11-smoke.mjs +66 -0
  254. package/tools/vibe-release-check/release-check-stage119-120-fixture-specs.mjs +119 -0
  255. package/tools/vibe-release-check/release-check-stage119-120-smoke.mjs +325 -0
  256. package/tools/vibe-release-check/release-check-stage12-smoke.mjs +59 -0
  257. package/tools/vibe-release-check/release-check-stage121-136-fixture-specs.mjs +26 -0
  258. package/tools/vibe-release-check/release-check-stage121-136-fixtures.mjs +591 -0
  259. package/tools/vibe-release-check/release-check-stage121-136-smoke.mjs +917 -0
  260. package/tools/vibe-release-check/release-check-stage13-smoke.mjs +78 -0
  261. package/tools/vibe-release-check/release-check-stage137-140-smoke.mjs +534 -0
  262. package/tools/vibe-release-check/release-check-stage14-smoke.mjs +101 -0
  263. package/tools/vibe-release-check/release-check-stage141-148-smoke.mjs +1143 -0
  264. package/tools/vibe-release-check/release-check-stage15-smoke.mjs +132 -0
  265. package/tools/vibe-release-check/release-check-stage50-53-smoke.mjs +429 -0
  266. package/tools/vibe-release-check/release-check-subagent-adapter-bridge-smoke.mjs +162 -0
  267. package/tools/vibe-release-check/release-check-suite-plan-smoke.mjs +86 -0
  268. package/tools/vibe-release-check/release-check-suites.mjs +164 -0
  269. package/tools/vibe-release-check/release-check-test-run-smoke.mjs +59 -0
  270. package/tools/vibe-release-check/release-check-timing.mjs +98 -0
  271. package/tools/vibe-release-check/release-check-token-suite.mjs +260 -0
  272. package/tools/vibe-release-check/release-check-workflow-entry-suite.mjs +195 -0
  273. package/tools/vibe-release-check/release-check-workflow-governance-fixtures.mjs +138 -0
  274. package/tools/vibe-release-check/release-check-workflow-governance-smoke-suite.mjs +768 -0
  275. package/tools/vibe-release-check/release-check-workflow-ux-smoke.mjs +456 -0
  276. package/tools/vibe-runtime/README.md +2637 -0
  277. package/tools/vibe-runtime/index.mjs +3117 -0
  278. package/tools/vibe-runtime/runtime-adapter-bootstrap-matrix.mjs +264 -0
  279. package/tools/vibe-runtime/runtime-adapter-entry-acceptance.mjs +310 -0
  280. package/tools/vibe-runtime/runtime-adapter-packaging-consistency-command.mjs +131 -0
  281. package/tools/vibe-runtime/runtime-adapter-packaging-consistency.mjs +253 -0
  282. package/tools/vibe-runtime/runtime-advice-hub-model.mjs +175 -0
  283. package/tools/vibe-runtime/runtime-agent-session-start-contract.mjs +138 -0
  284. package/tools/vibe-runtime/runtime-artifact-ref-validation.mjs +281 -0
  285. package/tools/vibe-runtime/runtime-automatic-verification-gate-contract.mjs +134 -0
  286. package/tools/vibe-runtime/runtime-automation-boundary-text.mjs +7 -0
  287. package/tools/vibe-runtime/runtime-automation-command.mjs +367 -0
  288. package/tools/vibe-runtime/runtime-automation-plan-model.mjs +239 -0
  289. package/tools/vibe-runtime/runtime-automation-policy-model.mjs +175 -0
  290. package/tools/vibe-runtime/runtime-automation-readiness.mjs +347 -0
  291. package/tools/vibe-runtime/runtime-autopilot-lab-profile-contract.mjs +223 -0
  292. package/tools/vibe-runtime/runtime-behavioral-evaluation-contract.mjs +529 -0
  293. package/tools/vibe-runtime/runtime-behavioral-negative-gate-matrix.mjs +274 -0
  294. package/tools/vibe-runtime/runtime-bounded-attempt-policy-model.mjs +13 -0
  295. package/tools/vibe-runtime/runtime-bounded-foreground-command-executor-contract.mjs +288 -0
  296. package/tools/vibe-runtime/runtime-capability-registry.mjs +250 -0
  297. package/tools/vibe-runtime/runtime-cli-args.mjs +550 -0
  298. package/tools/vibe-runtime/runtime-cli-command-specs.mjs +63 -0
  299. package/tools/vibe-runtime/runtime-cli-dispatch.mjs +21 -0
  300. package/tools/vibe-runtime/runtime-cli-evidence-option-specs.mjs +193 -0
  301. package/tools/vibe-runtime/runtime-cli-evidence-options.mjs +28 -0
  302. package/tools/vibe-runtime/runtime-cli-from-options.mjs +222 -0
  303. package/tools/vibe-runtime/runtime-cli-low-risk-option-specs.mjs +128 -0
  304. package/tools/vibe-runtime/runtime-cli-main.mjs +32 -0
  305. package/tools/vibe-runtime/runtime-cli-option-default-families.mjs +454 -0
  306. package/tools/vibe-runtime/runtime-cli-option-defaults.mjs +33 -0
  307. package/tools/vibe-runtime/runtime-cli-option-handlers.mjs +82 -0
  308. package/tools/vibe-runtime/runtime-cli-usage.mjs +316 -0
  309. package/tools/vibe-runtime/runtime-cli-value-options.mjs +74 -0
  310. package/tools/vibe-runtime/runtime-close-loop-dashboard.mjs +283 -0
  311. package/tools/vibe-runtime/runtime-closeout-parity-contract.mjs +214 -0
  312. package/tools/vibe-runtime/runtime-command-container.mjs +26 -0
  313. package/tools/vibe-runtime/runtime-command-surface-registry.mjs +383 -0
  314. package/tools/vibe-runtime/runtime-command-wrapper-deps.mjs +13 -0
  315. package/tools/vibe-runtime/runtime-commit-readiness-envelope.mjs +281 -0
  316. package/tools/vibe-runtime/runtime-completion-boundary-text.mjs +7 -0
  317. package/tools/vibe-runtime/runtime-completion-bundle-contract.mjs +71 -0
  318. package/tools/vibe-runtime/runtime-completion-chain-assembly.mjs +48 -0
  319. package/tools/vibe-runtime/runtime-completion-command.mjs +50 -0
  320. package/tools/vibe-runtime/runtime-completion-evidence-bundle.mjs +269 -0
  321. package/tools/vibe-runtime/runtime-completion-evidence-descriptors.mjs +156 -0
  322. package/tools/vibe-runtime/runtime-completion-local-evidence-gates.mjs +164 -0
  323. package/tools/vibe-runtime/runtime-completion-presentation.mjs +71 -0
  324. package/tools/vibe-runtime/runtime-completion-readiness-summary.mjs +159 -0
  325. package/tools/vibe-runtime/runtime-confirmed-one-shot-plan.mjs +300 -0
  326. package/tools/vibe-runtime/runtime-context-budget-entry-defaults-command.mjs +77 -0
  327. package/tools/vibe-runtime/runtime-context-budget-entry-defaults.mjs +341 -0
  328. package/tools/vibe-runtime/runtime-contract-marker-registry.mjs +13 -0
  329. package/tools/vibe-runtime/runtime-contributor-guardrail-command.mjs +78 -0
  330. package/tools/vibe-runtime/runtime-contributor-guardrail-evidence.mjs +319 -0
  331. package/tools/vibe-runtime/runtime-control-plane-command.mjs +237 -0
  332. package/tools/vibe-runtime/runtime-control-plane-evals-artifacts.mjs +123 -0
  333. package/tools/vibe-runtime/runtime-control-plane-evals-boundary-model.mjs +75 -0
  334. package/tools/vibe-runtime/runtime-control-plane-evals-cases.mjs +547 -0
  335. package/tools/vibe-runtime/runtime-control-plane-evals-command.mjs +527 -0
  336. package/tools/vibe-runtime/runtime-control-plane-evals-report-validation.mjs +209 -0
  337. package/tools/vibe-runtime/runtime-control-plane-planner-artifacts.mjs +457 -0
  338. package/tools/vibe-runtime/runtime-control-plane-planning-command.mjs +563 -0
  339. package/tools/vibe-runtime/runtime-control-plane-planning-input.mjs +99 -0
  340. package/tools/vibe-runtime/runtime-control-plane-planning-listing.mjs +48 -0
  341. package/tools/vibe-runtime/runtime-control-plane-planning-presentation.mjs +246 -0
  342. package/tools/vibe-runtime/runtime-control-plane-planning-validation.mjs +529 -0
  343. package/tools/vibe-runtime/runtime-control-plane-readonly-command.mjs +537 -0
  344. package/tools/vibe-runtime/runtime-control-plane-readonly-deps.mjs +146 -0
  345. package/tools/vibe-runtime/runtime-control-plane-release-evidence.mjs +525 -0
  346. package/tools/vibe-runtime/runtime-control-plane-release-gates.mjs +369 -0
  347. package/tools/vibe-runtime/runtime-control-plane-router-planning-model.mjs +152 -0
  348. package/tools/vibe-runtime/runtime-control-plane-routing-artifacts.mjs +588 -0
  349. package/tools/vibe-runtime/runtime-controlled-change-delivery-contract.mjs +165 -0
  350. package/tools/vibe-runtime/runtime-controlled-execution-gate-contract.mjs +141 -0
  351. package/tools/vibe-runtime/runtime-controlled-long-running-automation-contract.mjs +184 -0
  352. package/tools/vibe-runtime/runtime-controlled-subagent-orchestration-contract.mjs +169 -0
  353. package/tools/vibe-runtime/runtime-daemon-command.mjs +166 -0
  354. package/tools/vibe-runtime/runtime-daemon-state-lifecycle-model.mjs +359 -0
  355. package/tools/vibe-runtime/runtime-delivery-methodology-command.mjs +17 -0
  356. package/tools/vibe-runtime/runtime-delivery-methodology-gates.mjs +277 -0
  357. package/tools/vibe-runtime/runtime-diff-coverage-envelope.mjs +301 -0
  358. package/tools/vibe-runtime/runtime-dispatch-command.mjs +484 -0
  359. package/tools/vibe-runtime/runtime-dispatch-readonly-artifacts.mjs +406 -0
  360. package/tools/vibe-runtime/runtime-dispatch-state-lifecycle-model.mjs +199 -0
  361. package/tools/vibe-runtime/runtime-durable-state-recovery-contract.mjs +172 -0
  362. package/tools/vibe-runtime/runtime-entry-advice-model.mjs +201 -0
  363. package/tools/vibe-runtime/runtime-entry-deps-builder.mjs +54 -0
  364. package/tools/vibe-runtime/runtime-entry-presentation.mjs +82 -0
  365. package/tools/vibe-runtime/runtime-entry-summary-model.mjs +343 -0
  366. package/tools/vibe-runtime/runtime-entry-trigger-discipline.mjs +341 -0
  367. package/tools/vibe-runtime/runtime-entry-trigger-tightening-command.mjs +79 -0
  368. package/tools/vibe-runtime/runtime-entry-trigger-tightening.mjs +357 -0
  369. package/tools/vibe-runtime/runtime-eval-catalog-model.mjs +101 -0
  370. package/tools/vibe-runtime/runtime-eval-transcript-fixtures.mjs +218 -0
  371. package/tools/vibe-runtime/runtime-evidence-intake-envelope.mjs +278 -0
  372. package/tools/vibe-runtime/runtime-evidence-repair-model.mjs +180 -0
  373. package/tools/vibe-runtime/runtime-executable-plan-contract.mjs +428 -0
  374. package/tools/vibe-runtime/runtime-execution-approval-lifecycle-models.mjs +278 -0
  375. package/tools/vibe-runtime/runtime-execution-candidate-approval-artifacts.mjs +227 -0
  376. package/tools/vibe-runtime/runtime-execution-command.mjs +544 -0
  377. package/tools/vibe-runtime/runtime-execution-enabled-bridge-model.mjs +113 -0
  378. package/tools/vibe-runtime/runtime-execution-enabled-closeout-boundary.mjs +89 -0
  379. package/tools/vibe-runtime/runtime-execution-enabled-preflight-model.mjs +185 -0
  380. package/tools/vibe-runtime/runtime-execution-enabled-profile-contract.mjs +127 -0
  381. package/tools/vibe-runtime/runtime-execution-enabled-run-envelope.mjs +153 -0
  382. package/tools/vibe-runtime/runtime-execution-evidence-binder.mjs +537 -0
  383. package/tools/vibe-runtime/runtime-execution-plan-artifacts.mjs +136 -0
  384. package/tools/vibe-runtime/runtime-execution-policy-artifacts.mjs +377 -0
  385. package/tools/vibe-runtime/runtime-execution-presentation.mjs +174 -0
  386. package/tools/vibe-runtime/runtime-execution-readonly-artifacts.mjs +228 -0
  387. package/tools/vibe-runtime/runtime-execution-run-preflight-artifacts.mjs +265 -0
  388. package/tools/vibe-runtime/runtime-execution-safety-artifacts.mjs +131 -0
  389. package/tools/vibe-runtime/runtime-execution-state-write-lifecycle-model.mjs +99 -0
  390. package/tools/vibe-runtime/runtime-experience-friction-matrix.mjs +395 -0
  391. package/tools/vibe-runtime/runtime-experience-learning-pattern.mjs +354 -0
  392. package/tools/vibe-runtime/runtime-experience-regression-dashboard.mjs +398 -0
  393. package/tools/vibe-runtime/runtime-experience-upgrade-command.mjs +92 -0
  394. package/tools/vibe-runtime/runtime-experience-upgrade-prioritizer.mjs +451 -0
  395. package/tools/vibe-runtime/runtime-foreground-worker-plan.mjs +275 -0
  396. package/tools/vibe-runtime/runtime-git-diff-read-model.mjs +322 -0
  397. package/tools/vibe-runtime/runtime-governance-attestation.mjs +304 -0
  398. package/tools/vibe-runtime/runtime-governance-command.mjs +609 -0
  399. package/tools/vibe-runtime/runtime-governance-convergence-reports.mjs +601 -0
  400. package/tools/vibe-runtime/runtime-governance-pr-models.mjs +551 -0
  401. package/tools/vibe-runtime/runtime-governance-presentation.mjs +67 -0
  402. package/tools/vibe-runtime/runtime-governance-route-model.mjs +194 -0
  403. package/tools/vibe-runtime/runtime-governance-surface-reports.mjs +495 -0
  404. package/tools/vibe-runtime/runtime-hooks-boundary-model.mjs +356 -0
  405. package/tools/vibe-runtime/runtime-hooks-command.mjs +286 -0
  406. package/tools/vibe-runtime/runtime-human-completion-evidence-model.mjs +220 -0
  407. package/tools/vibe-runtime/runtime-human-friendly-aliases.mjs +250 -0
  408. package/tools/vibe-runtime/runtime-implementation-methodology-command.mjs +17 -0
  409. package/tools/vibe-runtime/runtime-implementation-methodology-gates.mjs +164 -0
  410. package/tools/vibe-runtime/runtime-implementation-task-registry.mjs +334 -0
  411. package/tools/vibe-runtime/runtime-install-experience-command.mjs +120 -0
  412. package/tools/vibe-runtime/runtime-install-experience-score.mjs +334 -0
  413. package/tools/vibe-runtime/runtime-installed-multiround-ux-acceptance.mjs +149 -0
  414. package/tools/vibe-runtime/runtime-interaction-command-domain-registry.mjs +46 -0
  415. package/tools/vibe-runtime/runtime-interaction-command.mjs +648 -0
  416. package/tools/vibe-runtime/runtime-interaction-completion-command.mjs +220 -0
  417. package/tools/vibe-runtime/runtime-interaction-entry-command.mjs +130 -0
  418. package/tools/vibe-runtime/runtime-interaction-workflow-envelopes.mjs +412 -0
  419. package/tools/vibe-runtime/runtime-learning-advice-model.mjs +157 -0
  420. package/tools/vibe-runtime/runtime-learning-artifact-model.mjs +509 -0
  421. package/tools/vibe-runtime/runtime-learning-audit-model.mjs +106 -0
  422. package/tools/vibe-runtime/runtime-learning-interaction-command.mjs +220 -0
  423. package/tools/vibe-runtime/runtime-learning-observation-model.mjs +124 -0
  424. package/tools/vibe-runtime/runtime-learning-presentation.mjs +84 -0
  425. package/tools/vibe-runtime/runtime-learning-run-preview-model.mjs +184 -0
  426. package/tools/vibe-runtime/runtime-lease-command.mjs +95 -0
  427. package/tools/vibe-runtime/runtime-lease-state-lifecycle-model.mjs +247 -0
  428. package/tools/vibe-runtime/runtime-list-presentation.mjs +7 -0
  429. package/tools/vibe-runtime/runtime-live-behavior-transcript-model.mjs +164 -0
  430. package/tools/vibe-runtime/runtime-local-behavior-eval-contracts-command.mjs +76 -0
  431. package/tools/vibe-runtime/runtime-local-behavior-eval-contracts.mjs +382 -0
  432. package/tools/vibe-runtime/runtime-local-commit-automation-gate.mjs +254 -0
  433. package/tools/vibe-runtime/runtime-local-json-input.mjs +32 -0
  434. package/tools/vibe-runtime/runtime-methodology-coverage-map.mjs +398 -0
  435. package/tools/vibe-runtime/runtime-methodology-coverage-marker-specs.mjs +61 -0
  436. package/tools/vibe-runtime/runtime-methodology-coverage-presentation.mjs +26 -0
  437. package/tools/vibe-runtime/runtime-methodology-gate-model.mjs +154 -0
  438. package/tools/vibe-runtime/runtime-methodology-gate-output-envelope.mjs +4 -0
  439. package/tools/vibe-runtime/runtime-methodology-interaction-command.mjs +147 -0
  440. package/tools/vibe-runtime/runtime-methodology-presentation.mjs +76 -0
  441. package/tools/vibe-runtime/runtime-methodology-route-model.mjs +93 -0
  442. package/tools/vibe-runtime/runtime-next-action-console.mjs +388 -0
  443. package/tools/vibe-runtime/runtime-next-action-evidence-prompts-command.mjs +84 -0
  444. package/tools/vibe-runtime/runtime-next-action-evidence-prompts.mjs +327 -0
  445. package/tools/vibe-runtime/runtime-observability-command.mjs +96 -0
  446. package/tools/vibe-runtime/runtime-observability-presentation.mjs +30 -0
  447. package/tools/vibe-runtime/runtime-observability-readiness-model.mjs +204 -0
  448. package/tools/vibe-runtime/runtime-patch-queue-contract.mjs +151 -0
  449. package/tools/vibe-runtime/runtime-plan-action-manifest.mjs +334 -0
  450. package/tools/vibe-runtime/runtime-planner-route-model.mjs +75 -0
  451. package/tools/vibe-runtime/runtime-platform-acceptance-command.mjs +216 -0
  452. package/tools/vibe-runtime/runtime-platform-capability-artifacts.mjs +156 -0
  453. package/tools/vibe-runtime/runtime-platform-capability-model.mjs +105 -0
  454. package/tools/vibe-runtime/runtime-platform-command.mjs +329 -0
  455. package/tools/vibe-runtime/runtime-platform-presentation.mjs +78 -0
  456. package/tools/vibe-runtime/runtime-platform-session-artifacts.mjs +857 -0
  457. package/tools/vibe-runtime/runtime-platform-transcript-example-pack.mjs +293 -0
  458. package/tools/vibe-runtime/runtime-platform-transcript-intake-model.mjs +247 -0
  459. package/tools/vibe-runtime/runtime-platform-transcript-replay-model.mjs +371 -0
  460. package/tools/vibe-runtime/runtime-policy-catalog.mjs +54 -0
  461. package/tools/vibe-runtime/runtime-product-methodology-command.mjs +17 -0
  462. package/tools/vibe-runtime/runtime-product-methodology-gates.mjs +316 -0
  463. package/tools/vibe-runtime/runtime-progressive-entry-ux.mjs +237 -0
  464. package/tools/vibe-runtime/runtime-queue-command.mjs +98 -0
  465. package/tools/vibe-runtime/runtime-queue-state-lifecycle-model.mjs +318 -0
  466. package/tools/vibe-runtime/runtime-readiness-gate-split.mjs +196 -0
  467. package/tools/vibe-runtime/runtime-readonly-local-json-output-envelope.mjs +24 -0
  468. package/tools/vibe-runtime/runtime-recovery-classification-models.mjs +412 -0
  469. package/tools/vibe-runtime/runtime-recovery-command.mjs +107 -0
  470. package/tools/vibe-runtime/runtime-recovery-presentation.mjs +65 -0
  471. package/tools/vibe-runtime/runtime-recovery-state-lifecycle-model.mjs +419 -0
  472. package/tools/vibe-runtime/runtime-release-command-deps.mjs +4 -0
  473. package/tools/vibe-runtime/runtime-release-command.mjs +225 -0
  474. package/tools/vibe-runtime/runtime-release-state-lifecycle-model.mjs +48 -0
  475. package/tools/vibe-runtime/runtime-reply-artifact-lifecycle-model.mjs +84 -0
  476. package/tools/vibe-runtime/runtime-reply-command.mjs +488 -0
  477. package/tools/vibe-runtime/runtime-retry-command.mjs +223 -0
  478. package/tools/vibe-runtime/runtime-retry-run-gate-model.mjs +151 -0
  479. package/tools/vibe-runtime/runtime-review-envelope.mjs +449 -0
  480. package/tools/vibe-runtime/runtime-review-feedback-gate.mjs +160 -0
  481. package/tools/vibe-runtime/runtime-runbook-executor-preview-contract.mjs +361 -0
  482. package/tools/vibe-runtime/runtime-scheduler-command.mjs +8 -0
  483. package/tools/vibe-runtime/runtime-scheduler-risk-artifacts.mjs +775 -0
  484. package/tools/vibe-runtime/runtime-scheduler-state-lifecycle-model.mjs +53 -0
  485. package/tools/vibe-runtime/runtime-sdd-consumption-command.mjs +386 -0
  486. package/tools/vibe-runtime/runtime-sdd-evidence-chain-model.mjs +200 -0
  487. package/tools/vibe-runtime/runtime-sdd-handoff-chain-model.mjs +168 -0
  488. package/tools/vibe-runtime/runtime-sdd-implementer-artifact-model.mjs +90 -0
  489. package/tools/vibe-runtime/runtime-sdd-loop-command.mjs +659 -0
  490. package/tools/vibe-runtime/runtime-sdd-plan-preflight-model.mjs +121 -0
  491. package/tools/vibe-runtime/runtime-sdd-review-package-command.mjs +197 -0
  492. package/tools/vibe-runtime/runtime-sdd-review-package-model.mjs +183 -0
  493. package/tools/vibe-runtime/runtime-sdd-task-brief-model.mjs +144 -0
  494. package/tools/vibe-runtime/runtime-self-test-gate-profile.mjs +225 -0
  495. package/tools/vibe-runtime/runtime-sequential-stage-runbook.mjs +406 -0
  496. package/tools/vibe-runtime/runtime-session-checkpoint-model.mjs +217 -0
  497. package/tools/vibe-runtime/runtime-session-skill-command.mjs +241 -0
  498. package/tools/vibe-runtime/runtime-session-start-example-command.mjs +122 -0
  499. package/tools/vibe-runtime/runtime-session-start-example-pack.mjs +290 -0
  500. package/tools/vibe-runtime/runtime-session-start-shape-acceptance.mjs +344 -0
  501. package/tools/vibe-runtime/runtime-skill-contract-schema.mjs +221 -0
  502. package/tools/vibe-runtime/runtime-skill-route-registry.mjs +47 -0
  503. package/tools/vibe-runtime/runtime-skill-runtime-traceability-map.mjs +268 -0
  504. package/tools/vibe-runtime/runtime-source-merge-apply-boundary-model.mjs +130 -0
  505. package/tools/vibe-runtime/runtime-source-merge-artifacts.mjs +920 -0
  506. package/tools/vibe-runtime/runtime-source-merge-command.mjs +160 -0
  507. package/tools/vibe-runtime/runtime-source-merge-entry-command.mjs +153 -0
  508. package/tools/vibe-runtime/runtime-source-patch-plan-model.mjs +119 -0
  509. package/tools/vibe-runtime/runtime-stage-scriptlet.mjs +430 -0
  510. package/tools/vibe-runtime/runtime-staged-commit-readiness.mjs +469 -0
  511. package/tools/vibe-runtime/runtime-state-directory-model.mjs +7 -0
  512. package/tools/vibe-runtime/runtime-state-io.mjs +41 -0
  513. package/tools/vibe-runtime/runtime-state-paths.mjs +231 -0
  514. package/tools/vibe-runtime/runtime-state-presence-model.mjs +6 -0
  515. package/tools/vibe-runtime/runtime-state-risk-paths.mjs +70 -0
  516. package/tools/vibe-runtime/runtime-subagent-adapter-dispatch-command.mjs +266 -0
  517. package/tools/vibe-runtime/runtime-subagent-boundary-contracts.mjs +118 -0
  518. package/tools/vibe-runtime/runtime-subagent-permission-command.mjs +78 -0
  519. package/tools/vibe-runtime/runtime-subagent-permission-gate-model.mjs +131 -0
  520. package/tools/vibe-runtime/runtime-subagent-permission-visibility.mjs +294 -0
  521. package/tools/vibe-runtime/runtime-subagents-artifact-specs.mjs +257 -0
  522. package/tools/vibe-runtime/runtime-subagents-command.mjs +10 -0
  523. package/tools/vibe-runtime/runtime-subagents-eligibility-model.mjs +340 -0
  524. package/tools/vibe-runtime/runtime-subagents-platform-session-proxies.mjs +54 -0
  525. package/tools/vibe-runtime/runtime-subagents-presentation.mjs +91 -0
  526. package/tools/vibe-runtime/runtime-subagents-risk-artifacts.mjs +853 -0
  527. package/tools/vibe-runtime/runtime-subagents-stage-artifact-model.mjs +538 -0
  528. package/tools/vibe-runtime/runtime-subagents-tail-routing-model.mjs +48 -0
  529. package/tools/vibe-runtime/runtime-suite-plan-model.mjs +194 -0
  530. package/tools/vibe-runtime/runtime-superpowers-comparison-matrix.mjs +399 -0
  531. package/tools/vibe-runtime/runtime-superpowers-gap-matrix.mjs +307 -0
  532. package/tools/vibe-runtime/runtime-superpowers-parity-command.mjs +102 -0
  533. package/tools/vibe-runtime/runtime-superpowers-parity-profile-contract.mjs +183 -0
  534. package/tools/vibe-runtime/runtime-superpowers-parity-scorecard.mjs +460 -0
  535. package/tools/vibe-runtime/runtime-superpowers-regression-guard.mjs +270 -0
  536. package/tools/vibe-runtime/runtime-superpowers-style-eval-pack.mjs +367 -0
  537. package/tools/vibe-runtime/runtime-task-commit-gates.mjs +62 -0
  538. package/tools/vibe-runtime/runtime-task-commit-readiness.mjs +66 -0
  539. package/tools/vibe-runtime/runtime-task-commit-sidecar.mjs +65 -0
  540. package/tools/vibe-runtime/runtime-tdd-trace-contract.mjs +277 -0
  541. package/tools/vibe-runtime/runtime-test-evidence-model.mjs +196 -0
  542. package/tools/vibe-runtime/runtime-test-run-command-deps.mjs +7 -0
  543. package/tools/vibe-runtime/runtime-test-run-command.mjs +108 -0
  544. package/tools/vibe-runtime/runtime-token-economy-model.mjs +336 -0
  545. package/tools/vibe-runtime/runtime-token-interaction-command.mjs +381 -0
  546. package/tools/vibe-runtime/runtime-token-savior-budget.mjs +370 -0
  547. package/tools/vibe-runtime/runtime-tokens-command-deps.mjs +17 -0
  548. package/tools/vibe-runtime/runtime-tokens-command.mjs +117 -0
  549. package/tools/vibe-runtime/runtime-tokens-presentation.mjs +45 -0
  550. package/tools/vibe-runtime/runtime-trace-command.mjs +283 -0
  551. package/tools/vibe-runtime/runtime-trace-source-registry.mjs +132 -0
  552. package/tools/vibe-runtime/runtime-verification-gate-chain-model.mjs +131 -0
  553. package/tools/vibe-runtime/runtime-verification-repair-loop-plan.mjs +188 -0
  554. package/tools/vibe-runtime/runtime-workflow-alias-boundary-text.mjs +7 -0
  555. package/tools/vibe-runtime/runtime-workflow-alias-interaction-command.mjs +145 -0
  556. package/tools/vibe-runtime/runtime-workflow-command-deps.mjs +41 -0
  557. package/tools/vibe-runtime/runtime-workflow-command.mjs +191 -0
  558. package/tools/vibe-runtime/runtime-workflow-discipline-summary.mjs +164 -0
  559. package/tools/vibe-runtime/runtime-workflow-entry-envelopes.mjs +156 -0
  560. package/tools/vibe-runtime/runtime-workflow-ledger-command.mjs +239 -0
  561. package/tools/vibe-runtime/runtime-workflow-ledger-state-lifecycle-model.mjs +46 -0
  562. package/tools/vibe-runtime/runtime-workflow-loop-contract.mjs +259 -0
  563. package/tools/vibe-runtime/runtime-workflow-next-step-gate-model.mjs +106 -0
  564. package/tools/vibe-runtime/runtime-workflow-presentation.mjs +355 -0
  565. package/tools/vibe-runtime/runtime-workflow-readiness-model.mjs +176 -0
  566. package/tools/vibe-runtime/runtime-workflow-run-plan-model.mjs +207 -0
  567. package/tools/vibe-runtime/runtime-workflow-start-model.mjs +229 -0
  568. package/tools/vibe-runtime/runtime-workflow-state-artifacts.mjs +381 -0
  569. package/tools/vibe-runtime/runtime-workflow-state-helpers.mjs +456 -0
  570. package/tools/vibe-runtime/runtime-workflow-state-summary.mjs +65 -0
  571. package/tools/vibe-runtime/runtime-workflow-state-validation.mjs +104 -0
  572. package/tools/vibe-runtime/runtime-workflow-ux-model.mjs +205 -0
  573. package/tools/vibe-runtime/runtime-workspace-boundary-text.mjs +7 -0
  574. package/tools/vibe-runtime/runtime-workspace-isolation-command.mjs +295 -0
  575. package/tools/vibe-runtime/state-core-paths.mjs +113 -0
  576. package/tools/vibe-runtime/state-extension-paths.mjs +198 -0
  577. package/tools/vibe-runtime/state-safe-paths.mjs +2 -0
  578. package/tools/vibe-runtime-check/README.md +110 -0
  579. package/tools/vibe-runtime-check/architecture-tool-contracts.mjs +150 -0
  580. package/tools/vibe-runtime-check/index.mjs +186 -0
  581. package/tools/vibe-runtime-check/install-summary-adoption-contracts.mjs +115 -0
  582. package/tools/vibe-runtime-check/marker-contract-core.mjs +20 -0
  583. package/tools/vibe-runtime-check/product-artifact-contracts.mjs +24 -0
  584. package/tools/vibe-runtime-check/release-check-install-placement-contracts.mjs +166 -0
  585. package/tools/vibe-runtime-check/release-runtime-suite-layer-contracts.mjs +137 -0
  586. package/tools/vibe-runtime-check/runtime-architecture-manifest-drift-contracts.mjs +128 -0
  587. package/tools/vibe-runtime-check/runtime-automation-readiness-contracts.mjs +404 -0
  588. package/tools/vibe-runtime-check/runtime-capability-registry-contracts.mjs +299 -0
  589. package/tools/vibe-runtime-check/runtime-check-diagnostics-presentation.mjs +71 -0
  590. package/tools/vibe-runtime-check/runtime-cli-surface-contracts.mjs +156 -0
  591. package/tools/vibe-runtime-check/runtime-close-loop-contracts.mjs +163 -0
  592. package/tools/vibe-runtime-check/runtime-contract-delivery-registry.mjs +19 -0
  593. package/tools/vibe-runtime-check/runtime-contract-implementation-registry.mjs +23 -0
  594. package/tools/vibe-runtime-check/runtime-contract-local-evidence-registry.mjs +43 -0
  595. package/tools/vibe-runtime-check/runtime-contract-product-registry.mjs +83 -0
  596. package/tools/vibe-runtime-check/runtime-contract-registry.mjs +19 -0
  597. package/tools/vibe-runtime-check/runtime-control-plane-contracts.mjs +14 -0
  598. package/tools/vibe-runtime-check/runtime-doc-contract-marker-specs.mjs +349 -0
  599. package/tools/vibe-runtime-check/runtime-doc-contracts.mjs +24 -0
  600. package/tools/vibe-runtime-check/runtime-doc-marker-contracts.mjs +25 -0
  601. package/tools/vibe-runtime-check/runtime-entry-size-contracts.mjs +477 -0
  602. package/tools/vibe-runtime-check/runtime-experience-cli-contract-specs.mjs +98 -0
  603. package/tools/vibe-runtime-check/runtime-experience-cli-contracts.mjs +12 -0
  604. package/tools/vibe-runtime-check/runtime-experience-contracts.mjs +187 -0
  605. package/tools/vibe-runtime-check/runtime-governance-learning-token-contract-specs.mjs +92 -0
  606. package/tools/vibe-runtime-check/runtime-governance-learning-token-contracts.mjs +12 -0
  607. package/tools/vibe-runtime-check/runtime-high-risk-boundary-contracts.mjs +35 -0
  608. package/tools/vibe-runtime-check/runtime-high-risk-boundary-matrix.mjs +75 -0
  609. package/tools/vibe-runtime-check/runtime-index-import-boundary-contracts.mjs +192 -0
  610. package/tools/vibe-runtime-check/runtime-optimization-boundary-contracts.mjs +49 -0
  611. package/tools/vibe-runtime-check/runtime-pure-model-boundary-contracts.mjs +176 -0
  612. package/tools/vibe-runtime-check/runtime-release-closeout-contracts.mjs +25 -0
  613. package/tools/vibe-runtime-check/runtime-roadmap-marker-specs.mjs +559 -0
  614. package/tools/vibe-runtime-check/runtime-source-bundle.mjs +119 -0
  615. package/tools/vibe-runtime-check/runtime-tool-readme-contracts.mjs +93 -0
  616. package/tools/vibe-runtime-check/runtime-tool-readme-marker-specs.mjs +952 -0
  617. package/tools/vibe-runtime-check/workflow-skill-contracts.mjs +129 -0
  618. package/tools/vibe-runtime-check/workflow-skill-route-registry-contracts.mjs +106 -0
  619. package/tools/vibe-runtime-check/workflow-ux-contracts.mjs +46 -0
@@ -0,0 +1,550 @@
1
+ import path from 'node:path';
2
+ import { createRuntimeCliDefaultOptions } from './runtime-cli-option-defaults.mjs';
3
+ import { parseLowRiskRuntimeCliOption } from './runtime-cli-option-handlers.mjs';
4
+ import { parseLowRiskRuntimeCliEvidenceOption } from './runtime-cli-evidence-options.mjs';
5
+ import { parseLowRiskRuntimeCliFromOption } from './runtime-cli-from-options.mjs';
6
+ import { parseLowRiskRuntimeCliValueOption } from './runtime-cli-value-options.mjs';
7
+
8
+ const taskIdPattern = /^[A-Za-z0-9._-]+$/;
9
+ const windowsReservedTaskBasenames = new Set([
10
+ 'CON',
11
+ 'PRN',
12
+ 'AUX',
13
+ 'NUL',
14
+ 'COM1',
15
+ 'COM2',
16
+ 'COM3',
17
+ 'COM4',
18
+ 'COM5',
19
+ 'COM6',
20
+ 'COM7',
21
+ 'COM8',
22
+ 'COM9',
23
+ 'LPT1',
24
+ 'LPT2',
25
+ 'LPT3',
26
+ 'LPT4',
27
+ 'LPT5',
28
+ 'LPT6',
29
+ 'LPT7',
30
+ 'LPT8',
31
+ 'LPT9',
32
+ ]);
33
+ const taskIdRequirement = 'Use only letters, numbers, dot, underscore, and hyphen; path separators, traversal, Windows reserved device names, and trailing dots or spaces are not allowed.';
34
+ const viewSpecs = Object.freeze({
35
+ executions: { show: ['executionsShow', 'dispatchEvent'], verify: ['executionsVerify', 'dispatchEvent'], list: 'executionsList' },
36
+ actions: { show: ['actionsShow', 'actionId'], verify: ['actionsVerify', 'actionId'], list: 'actionsList' },
37
+ approvals: { show: ['approvalsShow', 'approval'], verify: ['approvalsVerify', 'approval'], list: 'approvalsList' },
38
+ queue: { show: ['queueShow', 'queueFile'], verify: ['queueVerify', 'queueFile'], list: 'queueList' },
39
+ leases: { show: ['leasesShow', 'queueFile'], verify: ['leasesVerify', 'queueFile'], list: 'leasesList' },
40
+ recovery: { show: ['recoveryShow', 'recoveryFile'], verify: ['recoveryVerify', 'recoveryFile'] },
41
+ scheduler: { show: ['schedulerShowPlan', 'schedulerPlanFile'], verify: ['schedulerVerifyPlan', 'schedulerPlanFile'], list: 'schedulerListPlans' },
42
+ retry: { show: ['retryShowPackage', 'retryPackageFile'], verify: ['retryVerifyPackage', 'retryPackageFile'], list: 'retryListPackages' },
43
+ daemon: { show: ['daemonLoopsShow', 'daemonLoopFile'], verify: ['daemonLoopsVerify', 'daemonLoopFile'], list: 'daemonLoopsList' },
44
+ reply: { show: ['replyShow', 'replyFile'], verify: ['replyVerify', 'replyFile'], list: 'replyList' },
45
+ traces: { show: ['traceShow', 'traceFile'], verify: ['traceVerify', 'traceFile'], list: 'traceList' },
46
+ governance: { show: ['governanceShow', 'governanceFile'], verify: ['governanceVerify', 'governanceFile'], list: 'governanceList' },
47
+ methodology: { show: ['methodologyShow', 'methodologyFile'], verify: ['methodologyVerify', 'methodologyFile'], list: 'methodologyList' },
48
+ hooks: { show: ['hooksShow', 'hooksFile'], verify: ['hooksVerify', 'hooksFile'], list: 'hooksList' },
49
+ subagents: { show: ['subagentsShow', 'subagentsFile'], verify: ['subagentsVerify', 'subagentsFile'], list: 'subagentsList' },
50
+ platforms: { show: ['platformsShow', 'platformsFile'], verify: ['platformsVerify', 'platformsFile'], list: 'platformsList' },
51
+ source: { show: ['sourceShow', 'sourceFile'], verify: ['sourceVerify', 'sourceFile'], list: 'sourceList' },
52
+ merge: { show: ['mergeShow', 'mergeFile'], verify: ['mergeVerify', 'mergeFile'], list: 'mergeList' },
53
+ planner: { show: ['plannerShow', 'plannerFile'], verify: ['plannerVerify', 'plannerFile'], list: 'plannerList' },
54
+ router: { show: ['routerShow', 'routerFile'], verify: ['routerVerify', 'routerFile'], list: 'routerList' },
55
+ orchestrator: { show: ['orchestratorShow', 'orchestratorFile'], verify: ['orchestratorVerify', 'orchestratorFile'], list: 'orchestratorList' },
56
+ 'scheduler-policies': { show: ['schedulerPolicyShow', 'profile'], list: 'schedulerPolicyList' },
57
+ policies: { show: ['policyShow', 'profile'], list: 'policyList' },
58
+ learning: { show: ['learningShow', 'learningFile'], verify: ['learningVerify', 'learningFile'], list: 'learningList' },
59
+ evals: { verify: ['evalsVerify', 'evalsFile'] },
60
+ tokens: { verify: ['tokensVerify', 'tokenFile'] },
61
+ });
62
+ const mappedValueOptionSpecs = Object.freeze({
63
+ '--from-superpowers': { commands: ['governance'], required: '--from-superpowers requires a local Superpowers directory', unsupported: '--from-superpowers is only supported by governance --superpowers-gap, governance --superpowers-comparison, or governance --superpowers-regression-guard', set: (options, value) => { options.fromSuperpowers = value; } },
64
+ '--from-superpowers-root': { commands: ['governance', 'methodology'], required: '--from-superpowers-root requires a local Superpowers root directory', unsupported: '--from-superpowers-root is only supported by governance --superpowers-comparison or methodology --coverage-map', set: (options, value) => { options.fromSuperpowers = value; options.fromSuperpowersRoot = true; } },
65
+ '--from-runbook': { commands: ['verification', 'release', 'workflow', 'automation'], required: '--from-runbook requires a local Stage 118 runbook JSON file', unsupported: '--from-runbook is only supported by verification --execution-evidence, release --staged-commit-readiness, workflow --next-action-console, or automation --stage-scriptlet', set: (options, value) => { options.fromRunbook = path.resolve(value); } },
66
+ '--stage': { commands: ['verification', 'release', 'automation'], required: '--stage requires a stage id', unsupported: '--stage is only supported by verification --execution-evidence, release --staged-commit-readiness, or automation --stage-scriptlet', set: (options, value) => { options.selectedStage = value; } },
67
+ '--base': { commands: ['sdd'], required: '--base requires a commit sha', unsupported: '--base is only supported by sdd --review-package', set: (options, value) => { options.base = value; } },
68
+ '--head': { commands: ['sdd'], required: '--head requires a commit sha', unsupported: '--head is only supported by sdd --review-package', set: (options, value) => { options.head = value; } },
69
+ '--actor': { required: '--actor requires an id', set: (options, value) => { options.actor = value; } },
70
+ '--reason': { required: '--reason requires text', set: (options, value) => { options.reason = value; } },
71
+ '--instinct': { commands: ['learning'], required: '--instinct requires a candidate instinct file', unsupported: '--instinct is only supported by learning --promote or learning --advice', set: (options, value) => { options.learningInstinctFile = value; } },
72
+ '--platform': { required: '--platform requires claude, cursor, or codex', set: (options, value) => { options.platform = value; } },
73
+ '--approval': { required: '--approval requires an approval file', set: (options, value) => { options.approval = value; } },
74
+ '--probe': { commands: ['platforms'], required: '--probe requires a platform', unsupported: '--probe is only supported by platforms', set: (options, value) => { options.platformsProbe = true; options.platform = value; } },
75
+ '--cancel-session': { commands: ['subagents'], required: '--cancel-session requires a platform session file', unsupported: '--cancel-session is only supported by subagents', set: (options, value) => { options.cancelSession = true; options.subagentsFile = value; } },
76
+ '--ingest-session-result': { commands: ['subagents'], required: '--ingest-session-result requires a platform session result file', unsupported: '--ingest-session-result is only supported by subagents', set: (options, value) => { options.sessionResultIngest = true; options.subagentsResultFile = value; } },
77
+ '--review-session-result': { commands: ['subagents'], required: '--review-session-result requires a platform session intake file', unsupported: '--review-session-result is only supported by subagents', set: (options, value) => { options.sessionResultReview = true; options.subagentsResultFile = value; } },
78
+ '--from-approval': { required: '--from-approval requires a platform session approval file', set: (options, value) => { options.fromApproval = value; } },
79
+ '--capability': { required: '--capability requires a platform capability file', set: (options, value) => { options.capabilityFile = value; } },
80
+ '--from-dispatch': { required: '--from-dispatch requires a dispatch event file', set: (options, value) => { options.fromDispatch = value; } },
81
+ '--from-session-review': { commands: ['source'], required: '--from-session-review requires a platform session review file', unsupported: '--from-session-review is only supported by source', set: (options, value) => { options.sourceFile = value; } },
82
+ '--from-task-result': { commands: ['release'], required: '--from-task-result requires a local task result file', unsupported: '--from-task-result is only supported by release --task-commit-readiness', set: (options, value) => { options.taskResultFile = value; } },
83
+ '--from-readiness': { commands: ['release', 'governance'], required: '--from-readiness requires a local readiness file', unsupported: '--from-readiness is only supported by release --local-commit-gate, release --task-commit, release --closeout-readiness, or governance --pr-review-intake', set: (options, value) => { options.fromReadiness = value; } },
84
+ '--from-verification': { commands: ['merge'], required: '--from-verification requires a source verification file', unsupported: '--from-verification is only supported by merge', set: (options, value) => { options.mergeFile = value; } },
85
+ '--ingest-result': { commands: ['subagents'], required: '--ingest-result requires a subagent run result file', unsupported: '--ingest-result is only supported by subagents', set: (options, value) => { options.subagentsIngestResult = true; options.subagentsResultFile = value; } },
86
+ '--review-gate': { commands: ['subagents'], required: '--review-gate requires a subagent result file', unsupported: '--review-gate is only supported by subagents', set: (options, value) => { options.subagentsReviewGate = true; options.subagentsResultFile = value; } },
87
+ '--from-briefs': { commands: ['router'], required: '--from-briefs requires a planner briefs file', unsupported: '--from-briefs is only supported by router', set: (options, value) => { options.routerFromBriefs = true; options.routerFile = value; } },
88
+ '--run-contract': { commands: ['evals'], required: '--run-contract requires an eval suite id', unsupported: '--run-contract is only supported by evals', set: (options, value) => { options.evalsRunContract = true; options.evalsSuite = value; } },
89
+ '--run-scenario': { commands: ['evals'], required: '--run-scenario requires an eval suite id', unsupported: '--run-scenario is only supported by evals', set: (options, value) => { options.evalsRunScenario = true; options.evalsSuite = value; } },
90
+ '--run-behavior': { commands: ['evals'], required: '--run-behavior requires an eval suite id', unsupported: '--run-behavior is only supported by evals', set: (options, value) => { options.evalsRunBehavior = true; options.evalsSuite = value; } },
91
+ '--run-adversarial': { commands: ['evals'], required: '--run-adversarial requires an eval suite id', unsupported: '--run-adversarial is only supported by evals', set: (options, value) => { options.evalsRunAdversarial = true; options.evalsSuite = value; } },
92
+ '--verify-ledger': { commands: ['feedback'], required: '--verify-ledger requires a feedback ledger file', unsupported: '--verify-ledger is only supported by feedback', set: (options, value) => { options.feedbackVerifyLedger = true; options.feedbackLedgerFile = value; } },
93
+ '--from-executable-plan': { commands: ['automation'], required: '--from-executable-plan requires a local Stage 117 executable plan JSON file', unsupported: '--from-executable-plan is only supported by automation --stage-runbook', set: (options, value) => { options.fromExecutablePlan = path.resolve(value); } },
94
+ '--from-route': { commands: ['planner'], required: '--from-route requires a planner route file', unsupported: '--from-route is only supported by planner', set: (options, value) => { options.plannerFile = value; } },
95
+ '--claim': { required: '--claim requires a dispatch event file', set: (options, value) => { options.dispatchClaim = true; options.dispatchEvent = value; } },
96
+ '--ack': { required: '--ack requires a dispatch event file', set: (options, value) => { options.dispatchAck = true; options.dispatchEvent = value; } },
97
+ '--pickup': { required: '--pickup requires a dispatch event file', set: (options, value) => { options.dispatchPickup = true; options.dispatchEvent = value; } },
98
+ '--pickup-verify': { required: '--pickup-verify requires a dispatch event file', set: (options, value) => { options.dispatchPickupVerify = true; options.dispatchEvent = value; } },
99
+ '--pickup-dry-run': { required: '--pickup-dry-run requires a dispatch event file', set: (options, value) => { options.dispatchPickupDryRun = true; options.dispatchEvent = value; } },
100
+ '--show-plan': { required: '--show-plan requires a scheduler plan file', set: (options, value) => { options.schedulerShowPlan = true; options.schedulerPlanFile = value; } },
101
+ '--verify-plan': { required: '--verify-plan requires a scheduler plan file', set: (options, value) => { options.schedulerVerifyPlan = true; options.schedulerPlanFile = value; } },
102
+ '--show-classification': { required: '--show-classification requires a recovery classification file', set: (options, value) => { options.recoveryShowClassification = true; options.recoveryClassificationFile = value; } },
103
+ '--verify-classification': { required: '--verify-classification requires a recovery classification file', set: (options, value) => { options.recoveryVerifyClassification = true; options.recoveryClassificationFile = value; } },
104
+ '--confirm-plan': { commands: ['automation', 'workflow'], required: '--confirm-plan requires a confirmation phrase', unsupported: '--confirm-plan is only supported by automation --one-shot-plan or workflow --close-loop-dashboard', set: (options, value) => { options.confirmPlan = value; } },
105
+ '--from-task': { commands: ['source'], required: '--from-task requires a task artifact file', unsupported: '--from-task is only supported by source --patch-plan', set: (options, value) => { options.fromTask = value; } },
106
+ '--verify-change': { commands: ['source'], required: '--verify-change requires a source sandbox run file', unsupported: '--verify-change is only supported by source', set: (options, value) => { options.sourceVerifyChange = true; options.sourceFile = value; } },
107
+ });
108
+ const mappedFlagOptionSpecs = Object.freeze({
109
+ '--session-approval': { commands: ['subagents'], unsupported: '--session-approval is only supported by subagents', set: (options) => { options.sessionApproval = true; } },
110
+ '--adapter-dispatch': { commands: ['subagents'], unsupported: '--adapter-dispatch is only supported by subagents', set: (options) => { options.subagentsAdapterDispatch = true; } },
111
+ '--create-session': { commands: ['subagents'], unsupported: '--create-session is only supported by subagents', set: (options) => { options.createSession = true; } },
112
+ '--auto-dispatch': { commands: ['subagents'], unsupported: '--auto-dispatch is only supported by subagents', set: (options) => { options.subagentsAutoDispatch = true; } },
113
+ '--hook-run': { commands: ['hooks'], unsupported: '--hook-run is only supported by hooks', set: (options) => { options.hooksRun = true; } },
114
+ '--claims': { set: (options) => { options.dispatchClaims = true; } },
115
+ '--list-plans': { set: (options) => { options.schedulerListPlans = true; } },
116
+ '--list-classifications': { set: (options) => { options.recoveryListClassifications = true; } },
117
+ '--recover': { set: (options) => { options.schedulerRecover = true; } },
118
+ '--run-loop': { commands: ['sdd'], unsupported: '--run-loop is only supported by sdd', set: (options) => { options.sddRunLoop = true; } },
119
+ '--isolate-plan': { commands: ['workspace'], unsupported: '--isolate-plan is only supported by workspace', set: (options) => { options.workspaceIsolatePlan = true; } },
120
+ '--cleanup-plan': { commands: ['workspace'], unsupported: '--cleanup-plan is only supported by workspace', set: (options) => { options.workspaceCleanupPlan = true; } },
121
+ '--create': { commands: ['workspace'], unsupported: '--create is only supported by workspace', set: (options) => { options.workspaceCreate = true; } },
122
+ '--score': { set: (options) => { options.readinessScore = true; } },
123
+ '--dry-run': { set: (options) => { options.dryRun = true; } },
124
+ '--write': { set: (options) => { options.write = true; } },
125
+ '--confirm': { set: (options) => { options.confirm = true; } },
126
+ '--once': { set: (options) => { options.once = true; } },
127
+ '--scan': { set: (options) => { options.scan = true; } },
128
+ '--preflight': { set: (options) => { options.preflight = true; } },
129
+ '--patch-plan': { commands: ['source'], unsupported: '--patch-plan is only supported by source', set: (options) => { options.sourcePatchPlan = true; } },
130
+ '--repair-plan': { commands: ['verification'], unsupported: '--repair-plan is only supported by verification', set: (options) => { options.verificationRepairPlan = true; } },
131
+ '--apply-to-worktree': { commands: ['source'], unsupported: '--apply-to-worktree is only supported by source', set: (options) => { options.sourceApplyToWorktree = true; } },
132
+ '--approval-package': { set: (options) => { options.approvalPackage = true; } },
133
+ '--auto-run': { set: (options) => { options.autoRun = true; } },
134
+ '--json': { set: (options) => { options.json = true; } },
135
+ '--dispatch-intent': { set: (options) => { options.dispatchIntent = true; } },
136
+ });
137
+
138
+ function requireArgValue(argv, index, message) {
139
+ const value = argv[index + 1];
140
+ if (!value) throw new Error(message);
141
+ return value;
142
+ }
143
+
144
+ function collectFollowingValues(argv, index) {
145
+ const values = [];
146
+ for (let valueIndex = index + 1; valueIndex < argv.length; valueIndex += 1) {
147
+ const value = argv[valueIndex];
148
+ if (!value || value.startsWith('-')) break;
149
+ values.push(value);
150
+ }
151
+ return values;
152
+ }
153
+
154
+ const notHandled = Object.freeze({ handled: false, index: 0 });
155
+
156
+ function parseRuntimeCliViewOption(options, argv, index) {
157
+ const arg = argv[index];
158
+ if (arg === '--show' || arg === '--verify') {
159
+ const spec = viewSpecs[options.command]?.[arg.slice(2)] || (arg === '--show' ? ['dispatchShow', 'dispatchEvent'] : ['dispatchVerify', 'dispatchEvent']);
160
+ const [flag, fileField] = spec;
161
+ const message = arg === '--show' ? '--show requires an event file, profile, or queue file' : '--verify requires an event file or queue file';
162
+ options[flag] = true;
163
+ options[fileField] = requireArgValue(argv, index, message);
164
+ return { handled: true, index: index + 1 };
165
+ }
166
+ if (arg !== '--list') return notHandled;
167
+ options[viewSpecs[options.command]?.list || 'dispatchList'] = true;
168
+ return { handled: true, index };
169
+ }
170
+
171
+ function parseRuntimeCliPostViewOption(options, argv, index) {
172
+ const arg = argv[index];
173
+ const flags = { '--classify': 'recoveryClassify', '--build': 'traceBuild', '--attest': 'governanceAttest', '--list-packages': 'retryListPackages', '--loop': 'daemonLoop', '--stop': 'daemonStop', '--loops': 'daemonLoopsList', '--draft': 'replyDraft', '--source-bound': 'replySourceBound' };
174
+ const files = { '--show-package': ['retryShowPackage', 'retryPackageFile', '--show-package requires a retry package file'], '--verify-package': ['retryVerifyPackage', 'retryPackageFile', '--verify-package requires a retry package file'], '--review': ['replyReview', 'replyFile', '--review requires a reply draft file'], '--outbox': ['replyOutbox', 'replyFile', '--outbox requires a reply approval file'], '--send': ['replySend', 'replyFile', '--send requires a reply outbox file'] };
175
+ if (arg === '--transition') {
176
+ options.approvalsTransition = true;
177
+ options.approval = requireArgValue(argv, index, '--transition requires an approval file');
178
+ return { handled: true, index: index + 1 };
179
+ }
180
+ if (arg === '--preview') {
181
+ if (options.command === 'hooks') options.hooksPreview = true;
182
+ else if (options.command === 'governance' || options.command === 'learning' || options.command === 'tokens') options.dryRun = true;
183
+ else options.recoveryPreview = true;
184
+ return { handled: true, index };
185
+ }
186
+ if (arg === '--summary') {
187
+ if (options.command === 'policies') options.policySummary = true;
188
+ else options.observabilitySummary = true;
189
+ return { handled: true, index };
190
+ }
191
+ if (arg === '--max-iterations') {
192
+ options.maxIterations = Number.parseInt(requireArgValue(argv, index, '--max-iterations requires a number'), 10);
193
+ return { handled: true, index: index + 1 };
194
+ }
195
+ if (flags[arg]) {
196
+ options[flags[arg]] = true;
197
+ return { handled: true, index };
198
+ }
199
+ if (!files[arg]) return notHandled;
200
+ const [flag, fileField, message] = files[arg];
201
+ options[flag] = true;
202
+ options[fileField] = requireArgValue(argv, index, message);
203
+ return { handled: true, index: index + 1 };
204
+ }
205
+
206
+ function parseRuntimeCliBaseOption(options, argv, index) {
207
+ const arg = argv[index];
208
+ if (arg === '--help' || arg === '-h') {
209
+ options.help = true;
210
+ return { handled: true, index };
211
+ }
212
+ if (arg === '--root') {
213
+ options.root = path.resolve(requireArgValue(argv, index, '--root requires a path'));
214
+ return { handled: true, index: index + 1 };
215
+ }
216
+ if (arg === '--from-file') {
217
+ const value = requireArgValue(argv, index, '--from-file requires a path');
218
+ options.fromFile = ['tokens', 'release', 'sdd'].includes(options.command) ? value : path.resolve(value);
219
+ return { handled: true, index: index + 1 };
220
+ }
221
+ if (arg === '--prompt') {
222
+ const value = requireArgValue(argv, index, '--prompt requires text');
223
+ if (!['bootstrap', 'workflow', 'session', 'entry', 'tokens', 'automation'].includes(options.command)) throw new Error('--prompt is only supported by bootstrap --acceptance, workflow --start, session --start, workflow --entry-ux, entry --contract, tokens --savior-budget, or automation --plan');
224
+ options.prompt = value;
225
+ return { handled: true, index: index + 1 };
226
+ }
227
+ return notHandled;
228
+ }
229
+
230
+ function parseRuntimeCliTaskStatusOption(options, argv, index) {
231
+ const arg = argv[index];
232
+ if (arg === '--task') {
233
+ const value = requireArgValue(argv, index, '--task requires a task id');
234
+ validateTaskId(value);
235
+ options.task = value;
236
+ return { handled: true, index: index + 1 };
237
+ }
238
+ if (arg === '--status') {
239
+ if (options.command === 'workspace') {
240
+ options.workspaceStatus = true;
241
+ return { handled: true, index };
242
+ }
243
+ const value = requireArgValue(argv, index, '--status requires a value');
244
+ if (options.command === 'approvals') options.approvalLifecycleStatus = value;
245
+ else options.ackStatus = value;
246
+ return { handled: true, index: index + 1 };
247
+ }
248
+ return notHandled;
249
+ }
250
+
251
+ function parseRuntimeCliMappedOption(options, argv, index) {
252
+ const arg = argv[index];
253
+ const valueSpec = mappedValueOptionSpecs[arg];
254
+ if (valueSpec) {
255
+ const value = requireArgValue(argv, index, valueSpec.required);
256
+ if (valueSpec.commands && !valueSpec.commands.includes(options.command)) throw new Error(valueSpec.unsupported);
257
+ valueSpec.set(options, value, arg);
258
+ return { handled: true, index: index + 1 };
259
+ }
260
+ const flagSpec = mappedFlagOptionSpecs[arg];
261
+ if (!flagSpec) return notHandled;
262
+ if (flagSpec.commands && !flagSpec.commands.includes(options.command)) throw new Error(flagSpec.unsupported);
263
+ flagSpec.set(options, arg);
264
+ return { handled: true, index };
265
+ }
266
+
267
+ function parseRuntimeCliMultiValueOption(options, argv, index) {
268
+ const arg = argv[index];
269
+ const values = collectFollowingValues(argv, index);
270
+ if (arg === '--from-observations') {
271
+ if (options.command !== 'learning') throw new Error('--from-observations is only supported by learning --instincts, learning --advice, or learning --experience-pattern');
272
+ if (values.length === 0) throw new Error('--from-observations requires at least one learning observation file');
273
+ options.learningObservationFiles.push(...values);
274
+ return { handled: true, index: index + values.length };
275
+ }
276
+ if (arg === '--from-compactions') {
277
+ if (options.command !== 'tokens') throw new Error('--from-compactions is only supported by tokens --metrics');
278
+ if (values.length === 0) throw new Error('--from-compactions requires at least one token compaction file');
279
+ options.tokenCompactionFiles.push(...values);
280
+ return { handled: true, index: index + values.length };
281
+ }
282
+ return notHandled;
283
+ }
284
+
285
+ function parseRuntimeCliRoutingArtifactOption(options, argv, index) {
286
+ const arg = argv[index];
287
+ const values = collectFollowingValues(argv, index);
288
+ if (arg === '--from-router') {
289
+ if (options.command === 'orchestrator') {
290
+ if (values.length !== 1) throw new Error('--from-router requires exactly one router approval file for orchestrator');
291
+ options.orchestratorFromRouter = true;
292
+ options.orchestratorFile = values[0];
293
+ } else if (options.command === 'feedback') {
294
+ if (values.length === 0) throw new Error('--from-router requires at least one router artifact file');
295
+ options.feedbackRouterFiles.push(...values);
296
+ } else throw new Error('--from-router is only supported by orchestrator or feedback');
297
+ return { handled: true, index: index + values.length };
298
+ }
299
+ if (arg === '--from-orchestrator') {
300
+ if (options.command === 'subagents') {
301
+ if (values.length !== 1) throw new Error('--from-orchestrator requires exactly one orchestrator dispatch plan file for subagents');
302
+ options.subagentsFromOrchestrator = true;
303
+ options.orchestratorFile = values[0];
304
+ } else if (options.command === 'feedback') {
305
+ if (values.length === 0) throw new Error('--from-orchestrator requires at least one orchestrator artifact file');
306
+ options.feedbackOrchestratorFiles.push(...values);
307
+ } else throw new Error('--from-orchestrator is only supported by subagents or feedback');
308
+ return { handled: true, index: index + values.length };
309
+ }
310
+ return notHandled;
311
+ }
312
+
313
+ function parseRuntimeCliFeedbackInputOption(options, argv, index) {
314
+ const arg = argv[index];
315
+ const values = collectFollowingValues(argv, index);
316
+ if (arg === '--from-evals') {
317
+ if (options.command !== 'release' && options.command !== 'feedback') throw new Error('--from-evals is only supported by release or feedback');
318
+ if (values.length === 0) throw new Error('--from-evals requires at least one eval report file');
319
+ if (options.command === 'feedback') options.feedbackEvalFiles.push(...values);
320
+ else options.releaseEvalFiles.push(...values);
321
+ return { handled: true, index: index + values.length };
322
+ }
323
+ if (arg === '--from-planner' || arg === '--from-release-gate') {
324
+ const field = arg === '--from-planner' ? 'feedbackPlannerFiles' : 'feedbackReleaseGateFiles';
325
+ const label = arg === '--from-planner' ? 'planner artifact' : 'release gate';
326
+ if (options.command !== 'feedback') throw new Error(`${arg} is only supported by feedback`);
327
+ if (values.length === 0) throw new Error(`${arg} requires at least one ${label} file`);
328
+ options[field].push(...values);
329
+ return { handled: true, index: index + values.length };
330
+ }
331
+ return notHandled;
332
+ }
333
+
334
+ function parseRuntimeCliSubjectPlanOption(options, argv, index) {
335
+ const arg = argv[index];
336
+ if (arg === '--subject') {
337
+ if (options.command !== 'release' && options.command !== 'automation' && options.command !== 'workflow') throw new Error('--subject is only supported by release --commit-guard, release --commit-readiness, release --staged-commit-readiness, automation --one-shot-plan, workflow --close-loop-dashboard, or workflow --close-loop');
338
+ const values = collectFollowingValues(argv, index);
339
+ if (values.length === 0) throw new Error('--subject requires a commit subject');
340
+ options.commitSubject = values.join(' ');
341
+ return { handled: true, index: index + values.length };
342
+ }
343
+ if (arg === '--from-plan') {
344
+ const value = requireArgValue(argv, index, '--from-plan requires a scheduler hook plan file, planner plan file, local plan file, or completion evidence plan file');
345
+ if (['verification', 'release', 'review', 'automation', 'completion'].includes(options.command)) options.fromPlan = value;
346
+ else if (options.command === 'subagents') options.schedulerPlanFile = value;
347
+ else if (options.command === 'planner') options.plannerFile = value;
348
+ else throw new Error('--from-plan is only supported by verification --evidence-intake, verification --tdd-trace, release --diff-coverage, release --diff-read, review --intake, automation --stage-runbook, subagents, planner, or completion --evidence-bundle');
349
+ return { handled: true, index: index + 1 };
350
+ }
351
+ return notHandled;
352
+ }
353
+
354
+ function parseRuntimeCliPlanToggleOption(options, argv, index) {
355
+ const arg = argv[index];
356
+ const value = argv[index + 1];
357
+ if (arg === '--eligibility') {
358
+ if (value && !value.startsWith('-')) {
359
+ if (options.command !== 'subagents') throw new Error('--eligibility <file> is only supported by subagents');
360
+ options.subagentsEligibilityFile = value;
361
+ return { handled: true, index: index + 1 };
362
+ }
363
+ options.subagentsEligibility = true;
364
+ return { handled: true, index };
365
+ }
366
+ if (arg === '--dispatch-plan' || arg === '--decompose' || arg === '--briefs') return parseRuntimeCliOptionalPlanFileOption(options, argv, index);
367
+ return notHandled;
368
+ }
369
+
370
+ function parseRuntimeCliOptionalPlanFileOption(options, argv, index) {
371
+ const arg = argv[index];
372
+ const value = argv[index + 1];
373
+ const hasFile = value && !value.startsWith('-');
374
+ if (arg === '--dispatch-plan') {
375
+ if (options.command !== 'orchestrator') throw new Error('--dispatch-plan is only supported by orchestrator');
376
+ options.orchestratorDispatchPlan = true;
377
+ if (hasFile) options.orchestratorFile = value;
378
+ } else if (arg === '--decompose' || arg === '--briefs') {
379
+ if (options.command !== 'planner') throw new Error(`${arg} is only supported by planner`);
380
+ if (arg === '--decompose') options.plannerDecompose = true;
381
+ else options.plannerBriefs = true;
382
+ if (hasFile) options.plannerFile = value;
383
+ } else return notHandled;
384
+ return { handled: true, index: hasFile ? index + 1 : index };
385
+ }
386
+
387
+ function parseRuntimeCliRouteApplyOption(options, argv, index) {
388
+ const arg = argv[index];
389
+ if (arg === '--from-hook') {
390
+ const value = requireArgValue(argv, index, '--from-hook requires a hook intent file');
391
+ if (options.command === 'scheduler') { options.schedulerFromHook = true; options.schedulerHookFile = value; }
392
+ else if (options.command === 'planner') { options.plannerFromHook = true; options.plannerFile = value; }
393
+ else throw new Error('--from-hook is only supported by scheduler or planner');
394
+ return { handled: true, index: index + 1 };
395
+ }
396
+ if (arg === '--apply') {
397
+ const value = requireArgValue(argv, index, '--apply requires a recovery classification file or merge approval file');
398
+ if (options.command === 'merge') { options.mergeApply = true; options.mergeFile = value; }
399
+ else { options.recoveryApply = true; options.recoveryClassificationFile = value; }
400
+ return { handled: true, index: index + 1 };
401
+ }
402
+ if (arg === '--route') {
403
+ if (options.command === 'planner') options.plannerRoute = true;
404
+ else if (options.command === 'methodology') options.methodologyRoute = true;
405
+ else throw new Error('--route is only supported by planner or methodology');
406
+ return { handled: true, index };
407
+ }
408
+ return notHandled;
409
+ }
410
+
411
+ function parseRuntimeCliExecutionBoundaryOption(options, argv, index) {
412
+ const arg = argv[index];
413
+ if (arg === '--approve') {
414
+ const value = requireArgValue(argv, index, '--approve requires a reply draft or merge readiness file');
415
+ if (options.command === 'merge') { options.mergeApprove = true; options.mergeFile = value; }
416
+ else if (options.command === 'router') { options.routerApprove = true; options.routerFile = value; }
417
+ else { options.replyApprove = true; options.replyFile = value; }
418
+ return { handled: true, index: index + 1 };
419
+ }
420
+ if (arg === '--apply-sandbox' || arg === '--sandbox-apply') {
421
+ const value = requireArgValue(argv, index, `${arg} requires a source change candidate file`);
422
+ if (options.command !== 'source') throw new Error(`${arg} is only supported by source`);
423
+ options.sourceApplySandbox = true;
424
+ options.sourceFile = value;
425
+ return { handled: true, index: index + 1 };
426
+ }
427
+ if (arg === '--run') {
428
+ if (options.command === 'retry') { options.retryRunPackage = true; options.retryPackageFile = requireArgValue(argv, index, '--run requires a retry package file'); return { handled: true, index: index + 1 }; }
429
+ options.run = true;
430
+ return { handled: true, index };
431
+ }
432
+ return notHandled;
433
+ }
434
+
435
+ function parseRuntimeCliModeOption(options, argv, index) {
436
+ const arg = argv[index];
437
+ if (arg === '--adapter') {
438
+ const value = requireArgValue(argv, index, '--adapter requires an adapter id');
439
+ if (options.command === 'platforms') options.entryAdapter = value;
440
+ else options.replyAdapter = value;
441
+ return { handled: true, index: index + 1 };
442
+ }
443
+ if (arg === '--plan') {
444
+ if (options.command === 'automation') options.automationPlan = true;
445
+ else if (options.command === 'sdd') options.sddPlan = true;
446
+ else if (options.command === 'router') options.routerPlan = true;
447
+ else if (options.command === 'orchestrator') options.orchestratorPlan = true;
448
+ else options.schedulerPlan = true;
449
+ return { handled: true, index };
450
+ }
451
+ if (arg === '--readiness') {
452
+ if (options.command === 'methodology') options.methodologyReadiness = true;
453
+ else if (options.command === 'completion') options.completionReadiness = true;
454
+ else if (options.command === 'merge') options.mergeReadiness = true;
455
+ else if (options.command === 'automation') options.automationReadiness = true;
456
+ else throw new Error('--readiness is only supported by methodology, completion, merge, or automation');
457
+ return { handled: true, index };
458
+ }
459
+ return notHandled;
460
+ }
461
+
462
+ function parseRuntimeCliProfileDispatchOption(options, argv, index) {
463
+ const arg = argv[index];
464
+ if (arg === '--profile') {
465
+ if (options.command === 'tokens') {
466
+ options.tokensProfile = true;
467
+ const value = argv[index + 1];
468
+ if (value && !String(value).startsWith('--')) { options.tokenProfileName = value; return { handled: true, index: index + 1 }; }
469
+ return { handled: true, index };
470
+ }
471
+ options.profile = requireArgValue(argv, index, '--profile requires a policy profile');
472
+ return { handled: true, index: index + 1 };
473
+ }
474
+ if (arg === '--candidate') {
475
+ if (options.command === 'source') options.sourceCandidate = true;
476
+ else options.candidate = true;
477
+ return { handled: true, index };
478
+ }
479
+ if (arg === '--dispatch') {
480
+ if (options.command === 'subagents') options.subagentsDispatch = true;
481
+ else options.dispatch = true;
482
+ return { handled: true, index };
483
+ }
484
+ return notHandled;
485
+ }
486
+
487
+ function parseRuntimeCliKnownOption(options, argv, index) {
488
+ const fromOptionResult = parseLowRiskRuntimeCliFromOption(options, argv, index);
489
+ if (fromOptionResult.handled) return fromOptionResult;
490
+ const evidenceOptionResult = parseLowRiskRuntimeCliEvidenceOption(options, argv, index);
491
+ if (evidenceOptionResult.handled) return evidenceOptionResult;
492
+ const valueOptionResult = parseLowRiskRuntimeCliValueOption(options, argv, index);
493
+ if (valueOptionResult.handled) return valueOptionResult;
494
+ const viewOptionResult = parseRuntimeCliViewOption(options, argv, index);
495
+ if (viewOptionResult.handled) return viewOptionResult;
496
+ const postViewOptionResult = parseRuntimeCliPostViewOption(options, argv, index);
497
+ if (postViewOptionResult.handled) return postViewOptionResult;
498
+
499
+ const parsers = [
500
+ parseRuntimeCliBaseOption,
501
+ parseRuntimeCliTaskStatusOption,
502
+ parseRuntimeCliMappedOption,
503
+ parseRuntimeCliMultiValueOption,
504
+ parseRuntimeCliRoutingArtifactOption,
505
+ parseRuntimeCliFeedbackInputOption,
506
+ parseRuntimeCliSubjectPlanOption,
507
+ parseRuntimeCliPlanToggleOption,
508
+ parseRuntimeCliRouteApplyOption,
509
+ parseRuntimeCliExecutionBoundaryOption,
510
+ parseRuntimeCliModeOption,
511
+ parseRuntimeCliProfileDispatchOption,
512
+ ];
513
+ for (const parser of parsers) {
514
+ const result = parser(options, argv, index);
515
+ if (result.handled) return result;
516
+ }
517
+ if (parseLowRiskRuntimeCliOption(argv[index], options)) return { handled: true, index };
518
+ return notHandled;
519
+ }
520
+
521
+ export function parseArgs(argv) {
522
+ const options = createRuntimeCliDefaultOptions();
523
+
524
+ for (let index = 0; index < argv.length; index += 1) {
525
+ const arg = argv[index];
526
+ if (index === 0 && !arg.startsWith('-')) {
527
+ options.command = arg;
528
+ continue;
529
+ }
530
+ const result = parseRuntimeCliKnownOption(options, argv, index);
531
+ if (!result.handled) throw new Error(`Unknown argument: ${arg}`);
532
+ index = result.index;
533
+ }
534
+
535
+ return options;
536
+ }
537
+
538
+ export function validateTaskId(id) {
539
+ const reservedBasename = id.split('.')[0].toUpperCase();
540
+ if (
541
+ !taskIdPattern.test(id)
542
+ || id === '.'
543
+ || id === '..'
544
+ || id.endsWith('.')
545
+ || id.endsWith(' ')
546
+ || windowsReservedTaskBasenames.has(reservedBasename)
547
+ ) {
548
+ throw new Error(`Invalid task id: ${id}. ${taskIdRequirement}`);
549
+ }
550
+ }
@@ -0,0 +1,63 @@
1
+ const runtimeCliDispatchContractSurface = 'runtime-cli-dispatch runtime-cli-args runtime-cli-usage governance release tasks reset';
2
+
3
+ export const runtimeCommandSpecs = Object.freeze([
4
+ ['entry', 'runEntry'],
5
+ ['advice', 'runAdvice'],
6
+ ['status', 'runStatus'],
7
+ ['validate-handoff', 'runValidateHandoff'],
8
+ ['record-handoff', 'runRecordHandoff'],
9
+ ['next', 'runNext'],
10
+ ['dispatches', 'runDispatches'],
11
+ ['execute', 'runExecute'],
12
+ ['executions', 'runExecutions'],
13
+ ['actions', 'runActions'],
14
+ ['approvals', 'runApprovals'],
15
+ ['policies', 'runPolicies'],
16
+ ['queue', 'runQueue'],
17
+ ['leases', 'runLeases'],
18
+ ['recovery', 'runRecovery'],
19
+ ['observability', 'runObservability'],
20
+ ['readiness', 'runObservability'],
21
+ ['scheduler', 'runScheduler'],
22
+ ['scheduler-policies', 'runSchedulerPolicies'],
23
+ ['retry', 'runRetry'],
24
+ ['daemon', 'runDaemon'],
25
+ ['reply', 'runReply'],
26
+ ['traces', 'runTraces'],
27
+ ['governance', 'runGovernance'],
28
+ ['automation', 'runAutomation'],
29
+ ['methodology', 'runMethodology'],
30
+ ['workflow', 'runWorkflow'],
31
+ ['session', 'runSession'],
32
+ ['skill', 'runSkill'],
33
+ ['verification', 'runVerification'],
34
+ ['review', 'runReview'],
35
+ ['completion', 'runCompletion'],
36
+ ['bootstrap', 'runBootstrap'],
37
+ ['onboarding', 'runOnboarding'],
38
+ ['learning', 'runLearning'],
39
+ ['tokens', 'runTokens'],
40
+ ['hooks', 'runHooks'],
41
+ ['subagents', 'runSubagents'],
42
+ ['sdd', 'runSdd'],
43
+ ['workspace', 'runWorkspace'],
44
+ ['platforms', 'runPlatforms'],
45
+ ['source', 'runSource'],
46
+ ['merge', 'runMerge'],
47
+ ['planner', 'runPlanner'],
48
+ ['router', 'runRouter'],
49
+ ['orchestrator', 'runOrchestrator'],
50
+ ['evals', 'runEvals'],
51
+ ['release', 'runRelease'],
52
+ ['tests', 'runTests'],
53
+ ['feedback', 'runFeedback'],
54
+ ['artifacts', 'runArtifacts'],
55
+ ['tasks', 'runTasks'],
56
+ ['reset', 'runReset'],
57
+ ]);
58
+
59
+ export function assertRuntimeCliDispatchContractSurface() {
60
+ if (!runtimeCliDispatchContractSurface.includes('runtime-cli-dispatch')) {
61
+ throw new Error('runtime CLI dispatch contract marker missing');
62
+ }
63
+ }
@@ -0,0 +1,21 @@
1
+ import {
2
+ assertRuntimeCliDispatchContractSurface,
3
+ runtimeCommandSpecs,
4
+ } from './runtime-cli-command-specs.mjs';
5
+
6
+ export const runtimeCliDispatchSurfaceContractMarkers = Object.freeze(['governance', 'release', 'tasks', 'reset']);
7
+
8
+ export const runtimeCommandNames = runtimeCommandSpecs.map(([command]) => command);
9
+
10
+ export function runtimeCommandHandlers(runners) {
11
+ assertRuntimeCliDispatchContractSurface();
12
+ return Object.fromEntries(
13
+ runtimeCommandSpecs.map(([command, runnerName]) => [command, runners[runnerName]]),
14
+ );
15
+ }
16
+
17
+ export function dispatchRuntimeCommand(options, handlers) {
18
+ const handler = handlers[options.command];
19
+ if (!handler) throw new Error(`Unknown command: ${options.command}`);
20
+ return handler(options);
21
+ }