@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,231 @@
1
+ import crypto from 'node:crypto';
2
+ import path from 'node:path';
3
+ import * as safePaths from './state-safe-paths.mjs';
4
+
5
+ export * from './runtime-state-risk-paths.mjs';
6
+ export * from './state-safe-paths.mjs';
7
+
8
+ export const approvalLifecycleFileName = createApprovalLifecycleFileName();
9
+ export const approvalLifecycleFilePath = createApprovalLifecycleFilePath();
10
+ export const safeStateArtifactFilePath = createSafeStateArtifactFilePath();
11
+ export const candidateFilePath = artifactLocator(safePaths.executionCandidatesDirectory, '.candidate.json', 'Candidate');
12
+ export const approvalFilePath = artifactLocator(safePaths.executionApprovalsDirectory, '.approval.json', 'Approval');
13
+ export const autoRunLockFilePath = createAutoRunLockFilePath();
14
+ export const recoveryFilePath = artifactLocator(safePaths.recoveryPackagesDirectory, '.recovery.json', 'Recovery');
15
+ export const recoveryClassificationFilePath = artifactLocator(
16
+ safePaths.recoveryClassificationsDirectory,
17
+ '.recovery-classification.json',
18
+ 'Recovery classification',
19
+ );
20
+ export const replyDraftFilePath = artifactLocator(safePaths.replyDraftsDirectory, '.reply-draft.json', 'Reply draft');
21
+ export const replyReviewFilePath = artifactLocator(safePaths.replyReviewsDirectory, '.reply-review.json', 'Reply review');
22
+ export const replyApprovalFilePath = artifactLocator(safePaths.replyApprovalsDirectory, '.reply-approval.json', 'Reply approval');
23
+ export const replyOutboxFilePath = artifactLocator(safePaths.replyOutboxDirectory, '.reply-outbox.json', 'Reply outbox');
24
+ export const replySendRunFilePath = artifactLocator(safePaths.replySendRunsDirectory, '.reply-send-run.json', 'Reply send run');
25
+ export const runtimeTraceFilePath = artifactLocator(safePaths.runtimeTracesDirectory, '.runtime-trace.json', 'Runtime trace');
26
+ export const governanceFilePath = artifactLocator(
27
+ safePaths.governanceDirectory,
28
+ '.governance-attestation.json',
29
+ 'Governance attestation',
30
+ );
31
+ export const governancePrReadinessFilePath = artifactLocator(
32
+ safePaths.governanceDirectory,
33
+ '.pr-readiness-governance.json',
34
+ 'PR readiness governance',
35
+ );
36
+ export const governancePrReviewIntakeFilePath = artifactLocator(
37
+ safePaths.governanceDirectory,
38
+ '.pr-review-intake-governance.json',
39
+ 'PR review intake governance',
40
+ );
41
+ export const governanceAnyFilePath = createGovernanceAnyFilePath();
42
+ export const hookIntentFilePath = artifactLocator(safePaths.hookIntentsDirectory, '.hook-intent.json', 'Hook intent');
43
+ export const subagentEligibilityFilePath = artifactLocator(
44
+ safePaths.subagentEligibilityDirectory,
45
+ '.subagent-eligibility.json',
46
+ 'Subagent eligibility',
47
+ );
48
+ export const subagentDispatchFilePath = artifactLocator(
49
+ safePaths.subagentDispatchesDirectory,
50
+ '.subagent-dispatch.json',
51
+ 'Subagent dispatch',
52
+ );
53
+ export const subagentAdapterDispatchFilePath = artifactLocator(
54
+ safePaths.subagentAdapterDispatchesDirectory,
55
+ '.subagent-adapter-dispatch.json',
56
+ 'Subagent adapter dispatch',
57
+ );
58
+ export const subagentRunResultFilePath = artifactLocator(
59
+ safePaths.subagentRunResultsDirectory,
60
+ '.subagent-run-result.json',
61
+ 'Subagent run result',
62
+ );
63
+ export const subagentResultFilePath = artifactLocator(
64
+ safePaths.subagentResultsDirectory,
65
+ '.subagent-result.json',
66
+ 'Subagent ingested result',
67
+ );
68
+ export const subagentReviewFilePath = artifactLocator(safePaths.subagentReviewsDirectory, '.subagent-review.json', 'Subagent review');
69
+ export const hookRunFilePath = artifactLocator(safePaths.hookRunsDirectory, '.hook-run.json', 'Hook run');
70
+ export const hookHeartbeatFilePath = artifactLocator(safePaths.hookHeartbeatsDirectory, '.hook-heartbeat.json', 'Hook heartbeat');
71
+ export const platformCapabilityFilePath = artifactLocator(
72
+ safePaths.platformCapabilitiesDirectory,
73
+ '.platform-capability.json',
74
+ 'Platform capability',
75
+ );
76
+ export const platformSessionApprovalFilePath = artifactLocator(
77
+ safePaths.platformSessionApprovalsDirectory,
78
+ '.platform-session-approval.json',
79
+ 'Platform session approval',
80
+ );
81
+ export const platformSessionFilePath = artifactLocator(safePaths.platformSessionsDirectory, '.platform-session.json', 'Platform session');
82
+ export const platformSessionResultFilePath = artifactLocator(
83
+ safePaths.platformSessionResultsDirectory,
84
+ '.platform-session-result.json',
85
+ 'Platform session result',
86
+ );
87
+ export const platformSessionCancellationFilePath = artifactLocator(
88
+ safePaths.platformSessionCancellationsDirectory,
89
+ '.platform-session-cancel.json',
90
+ 'Platform session cancellation',
91
+ );
92
+ export const platformSessionIntakeFilePath = artifactLocator(
93
+ safePaths.platformSessionIntakeDirectory,
94
+ '.platform-session-intake.json',
95
+ 'Platform session intake',
96
+ );
97
+ export const platformSessionReviewFilePath = artifactLocator(
98
+ safePaths.platformSessionReviewsDirectory,
99
+ '.platform-session-review.json',
100
+ 'Platform session review',
101
+ );
102
+ export const sourceChangeCandidateFilePath = artifactLocator(
103
+ safePaths.sourceChangeCandidatesDirectory,
104
+ '.source-change-candidate.json',
105
+ 'Source change candidate',
106
+ );
107
+ export const sourceSandboxRunFilePath = artifactLocator(
108
+ safePaths.sourceSandboxRunsDirectory,
109
+ '.source-sandbox-run.json',
110
+ 'Source sandbox run',
111
+ );
112
+ export const sourceVerificationFilePath = artifactLocator(
113
+ safePaths.sourceVerificationsDirectory,
114
+ '.source-verification.json',
115
+ 'Source verification',
116
+ );
117
+ export const mergeReadinessFilePath = artifactLocator(safePaths.mergeReadinessDirectory, '.merge-readiness.json', 'Merge readiness');
118
+ export const mergeApprovalFilePath = artifactLocator(safePaths.mergeApprovalsDirectory, '.merge-approval.json', 'Merge approval');
119
+ export const mergeApplyFilePath = artifactLocator(safePaths.mergeAppliesDirectory, '.merge-apply.json', 'Merge apply');
120
+ export const plannerRouteFilePath = artifactLocator(safePaths.plannerRoutesDirectory, '.planner-route.json', 'Planner route');
121
+ export const plannerPlanFilePath = artifactLocator(safePaths.plannerPlansDirectory, '.planner-plan.json', 'Planner plan');
122
+ export const plannerBriefsFilePath = artifactLocator(safePaths.plannerBriefsDirectory, '.planner-briefs.json', 'Planner briefs');
123
+ export const routerPlanFilePath = artifactLocator(safePaths.routerPlansDirectory, '.router-plan.json', 'Router plan');
124
+ export const routerApprovalFilePath = artifactLocator(safePaths.routerApprovalsDirectory, '.router-approval.json', 'Router approval');
125
+ export const orchestratorPlanFilePath = artifactLocator(
126
+ safePaths.orchestratorPlansDirectory,
127
+ '.orchestrator-plan.json',
128
+ 'Orchestrator plan',
129
+ );
130
+ export const orchestratorDispatchPlanFilePath = artifactLocator(
131
+ safePaths.orchestratorDispatchPlansDirectory,
132
+ '.orchestrator-dispatch-plan.json',
133
+ 'Orchestrator dispatch plan',
134
+ );
135
+ export const evalSuiteFilePath = artifactLocator(safePaths.evalSuitesDirectory, '.eval-suite.json', 'Eval suite');
136
+ export const evalRunFilePath = artifactLocator(safePaths.evalRunsDirectory, '.eval-run.json', 'Eval run');
137
+ export const evalReportFilePath = artifactLocator(safePaths.evalReportsDirectory, '.eval-report.json', 'Eval report');
138
+ export const releaseGateFilePath = artifactLocator(safePaths.releaseGatesDirectory, '.release-gate.json', 'Release gate');
139
+ export const releaseNotesFilePath = artifactLocator(safePaths.releaseNotesDirectory, '.release-notes.json', 'Release notes');
140
+ export const feedbackLedgerFilePath = artifactLocator(safePaths.feedbackLedgersDirectory, '.feedback-ledger.json', 'Feedback ledger');
141
+ export const learningObservationFilePath = artifactLocator(
142
+ safePaths.learningDirectory,
143
+ '.learning-observation.json',
144
+ 'Learning observation',
145
+ );
146
+ export const learningCandidateInstinctFilePath = artifactLocator(
147
+ safePaths.learningDirectory,
148
+ '.candidate-instinct.json',
149
+ 'Candidate instinct',
150
+ );
151
+ export const learningPromotionFilePath = artifactLocator(
152
+ safePaths.learningDirectory,
153
+ '.learning-promotion.json',
154
+ 'Learning promotion',
155
+ );
156
+ export const tokenCompactionFilePath = artifactLocator(safePaths.tokenEconomyDirectory, '.token-compaction.json', 'Token compaction');
157
+ export const tokenMetricsFilePath = artifactLocator(safePaths.tokenEconomyDirectory, '.token-metrics.json', 'Token metrics');
158
+ export const plannerRouteSnapshotPath = snapshotLocator(safePaths.plannerRoutesDirectory, '.planner-route.json');
159
+ export const plannerPlanSnapshotPath = snapshotLocator(safePaths.plannerPlansDirectory, '.planner-plan.json');
160
+ export const plannerBriefsSnapshotPath = snapshotLocator(safePaths.plannerBriefsDirectory, '.planner-briefs.json');
161
+ export const routerPlanSnapshotPath = snapshotLocator(safePaths.routerPlansDirectory, '.router-plan.json');
162
+ export const routerApprovalSnapshotPath = snapshotLocator(safePaths.routerApprovalsDirectory, '.router-approval.json');
163
+ export const orchestratorPlanSnapshotPath = snapshotLocator(safePaths.orchestratorPlansDirectory, '.orchestrator-plan.json');
164
+ export const orchestratorDispatchPlanSnapshotPath = snapshotLocator(
165
+ safePaths.orchestratorDispatchPlansDirectory,
166
+ '.orchestrator-dispatch-plan.json',
167
+ );
168
+ export const evalSuiteSnapshotPath = snapshotLocator(safePaths.evalSuitesDirectory, '.eval-suite.json');
169
+ export const evalRunSnapshotPath = snapshotLocator(safePaths.evalRunsDirectory, '.eval-run.json');
170
+ export const evalReportSnapshotPath = snapshotLocator(safePaths.evalReportsDirectory, '.eval-report.json');
171
+ export const releaseGateSnapshotPath = snapshotLocator(safePaths.releaseGatesDirectory, '.release-gate.json');
172
+ export const releaseNotesSnapshotPath = snapshotLocator(safePaths.releaseNotesDirectory, '.release-notes.json');
173
+ export const feedbackLedgerSnapshotPath = snapshotLocator(safePaths.feedbackLedgersDirectory, '.feedback-ledger.json');
174
+
175
+ function createApprovalLifecycleFileName() {
176
+ return function formatApprovalLifecycleFileName(approvalFile) {
177
+ const digest = crypto.createHash('sha256').update(String(approvalFile || '')).digest('hex').slice(0, 16);
178
+ return `${digest}.approval-lifecycle.json`;
179
+ };
180
+ }
181
+
182
+ function createApprovalLifecycleFilePath() {
183
+ return function locateApprovalLifecycleFile(root, approvalFile) {
184
+ return path.join(safePaths.approvalLifecycleDirectory(root), approvalLifecycleFileName(approvalFile));
185
+ };
186
+ }
187
+
188
+ function createSafeStateArtifactFilePath() {
189
+ return function locateSafeStateArtifact(root, directory, fileName, extension, label) {
190
+ const raw = String(fileName || '').trim();
191
+ if (!raw) throw new Error(`${label} file is required`);
192
+ if (path.isAbsolute(raw)) throw new Error(`${label} file must be relative to its state directory`);
193
+ if (raw.includes('/') || raw.includes('\\')) throw new Error(`${label} file must not include path separators`);
194
+ if (raw === '.' || raw === '..' || raw.includes('..')) throw new Error(`${label} file must not include traversal`);
195
+ if (!raw.endsWith(extension)) throw new Error(`${label} file must be a ${extension} file`);
196
+ return path.join(directory(root), raw);
197
+ };
198
+ }
199
+
200
+ function artifactLocator(directory, extension, label) {
201
+ return function locateStateArtifact(root, fileName) {
202
+ return safeStateArtifactFilePath(root, directory, fileName, extension, label);
203
+ };
204
+ }
205
+
206
+ function createAutoRunLockFilePath() {
207
+ return function locateAutoRunLock(root, idempotencyKey) {
208
+ const digest = crypto.createHash('sha256').update(String(idempotencyKey || '')).digest('hex').slice(0, 32);
209
+ return path.join(safePaths.autoRunLocksDirectory(root), `${digest}.lock.json`);
210
+ };
211
+ }
212
+
213
+ function createGovernanceAnyFilePath() {
214
+ return function locateGovernanceArtifact(root, governanceFile) {
215
+ const raw = String(governanceFile || '').trim();
216
+ if (raw.endsWith('.pr-readiness-governance.json')) return governancePrReadinessFilePath(root, raw);
217
+ if (raw.endsWith('.pr-review-intake-governance.json')) return governancePrReviewIntakeFilePath(root, raw);
218
+ return governanceFilePath(root, raw);
219
+ };
220
+ }
221
+
222
+ function snapshotLocator(directory, extension) {
223
+ return function locateSnapshot(root) {
224
+ return timestampedStateFilePath(root, directory, extension);
225
+ };
226
+ }
227
+
228
+ function timestampedStateFilePath(root, directory, extension) {
229
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
230
+ return path.join(directory(root), `${timestamp}${extension}`);
231
+ }
@@ -0,0 +1,6 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+
4
+ export function runtimeStatePresent(root) {
5
+ return fs.existsSync(path.join(path.resolve(root), '.vibecoding-state'));
6
+ }
@@ -0,0 +1,70 @@
1
+ import path from 'node:path';
2
+
3
+ import * as safePaths from './state-safe-paths.mjs';
4
+ import { stateDirectory } from './runtime-state-directory-model.mjs';
5
+
6
+ export const executionQueueDirectoryName = 'execution-queue';
7
+ export const retryPackagesDirectoryName = 'retry-packages';
8
+ export const retryRunsDirectoryName = 'retry-runs';
9
+ export const schedulerPlansDirectoryName = 'scheduler-plans';
10
+ export const schedulerHookPlansDirectoryName = 'scheduler-hook-plans';
11
+ export const schedulerRunsDirectoryName = 'scheduler-runs';
12
+ export const schedulerLeasesDirectoryName = 'scheduler-leases';
13
+ export const daemonRunsDirectoryName = 'daemon-runs';
14
+ export const daemonLoopsDirectoryName = 'daemon-loops';
15
+ export const daemonHeartbeatsDirectoryName = 'daemon-heartbeats';
16
+ export const daemonStopDirectoryName = 'daemon-stop';
17
+
18
+ export const executionQueueDirectory = stateDirectoryLocator(executionQueueDirectoryName);
19
+ export const retryPackagesDirectory = stateDirectoryLocator(retryPackagesDirectoryName);
20
+ export const retryRunsDirectory = stateDirectoryLocator(retryRunsDirectoryName);
21
+ export const schedulerPlansDirectory = stateDirectoryLocator(schedulerPlansDirectoryName);
22
+ export const schedulerHookPlansDirectory = stateDirectoryLocator(schedulerHookPlansDirectoryName);
23
+ export const schedulerRunsDirectory = stateDirectoryLocator(schedulerRunsDirectoryName);
24
+ export const schedulerLeasesDirectory = stateDirectoryLocator(schedulerLeasesDirectoryName);
25
+ export const daemonRunsDirectory = stateDirectoryLocator(daemonRunsDirectoryName);
26
+ export const daemonLoopsDirectory = stateDirectoryLocator(daemonLoopsDirectoryName);
27
+ export const daemonHeartbeatsDirectory = stateDirectoryLocator(daemonHeartbeatsDirectoryName);
28
+ export const daemonStopDirectory = stateDirectoryLocator(daemonStopDirectoryName);
29
+
30
+ export const queueFilePath = artifactLocator(executionQueueDirectory, '.queue.json', 'Queue');
31
+ export const schedulerPlanFilePath = artifactLocator(schedulerPlansDirectory, '.scheduler-plan.json', 'Scheduler plan');
32
+ export const schedulerHookPlanFilePath = artifactLocator(
33
+ schedulerHookPlansDirectory,
34
+ '.scheduler-hook-plan.json',
35
+ 'Scheduler hook plan',
36
+ );
37
+ export const retryPackageFilePath = artifactLocator(retryPackagesDirectory, '.retry-package.json', 'Retry package');
38
+ export const daemonLoopFilePath = artifactLocator(daemonLoopsDirectory, '.daemon-loop.json', 'Daemon loop');
39
+ export const subagentRunLeaseFilePath = artifactLocator(
40
+ safePaths.subagentRunLeasesDirectory,
41
+ '.subagent-lease.json',
42
+ 'Subagent run lease',
43
+ );
44
+ export const platformSessionLeaseFilePath = artifactLocator(
45
+ safePaths.platformSessionLeasesDirectory,
46
+ '.platform-session-lease.json',
47
+ 'Platform session lease',
48
+ );
49
+
50
+ function stateDirectoryLocator(directoryName) {
51
+ return function locateStateDirectory(root) {
52
+ return path.join(stateDirectory(root), directoryName);
53
+ };
54
+ }
55
+
56
+ function artifactLocator(directory, extension, label) {
57
+ return function locateStateArtifact(root, fileName) {
58
+ return safeStateArtifactFilePath(root, directory, fileName, extension, label);
59
+ };
60
+ }
61
+
62
+ function safeStateArtifactFilePath(root, directory, fileName, extension, label) {
63
+ const raw = String(fileName || '').trim();
64
+ if (!raw) throw new Error(`${label} file is required`);
65
+ if (path.isAbsolute(raw)) throw new Error(`${label} file must be relative to its state directory`);
66
+ if (raw.includes('/') || raw.includes('\\')) throw new Error(`${label} file must not include path separators`);
67
+ if (raw === '.' || raw === '..' || raw.includes('..')) throw new Error(`${label} file must not include traversal`);
68
+ if (!raw.endsWith(extension)) throw new Error(`${label} file must be a ${extension} file`);
69
+ return path.join(directory(root), raw);
70
+ }
@@ -0,0 +1,266 @@
1
+ import path from 'node:path';
2
+ import { readonlyLocalStatePresent } from './runtime-readonly-local-json-output-envelope.mjs';
3
+ import { runtimeSubagentPermissionGate } from './runtime-subagent-permission-gate-model.mjs';
4
+
5
+ export function createRuntimeSubagentAdapterDispatchCommand(deps) {
6
+ const {
7
+ jsonSchemaVersion,
8
+ stateDirectoryName,
9
+ subagentAdapterDispatchesDirectoryName,
10
+ ensureRoot,
11
+ fileDigest,
12
+ digestObject,
13
+ readJsonArtifact,
14
+ writeStateArtifact,
15
+ listStateFiles,
16
+ subagentAdapterDispatchesDirectory,
17
+ subagentAdapterDispatchFilePath,
18
+ subagentDispatchFilePath,
19
+ subagentEligibilityFilePath,
20
+ platformCapabilityFilePath,
21
+ validateSubagentDispatchArtifact,
22
+ validateSubagentEligibilityArtifact,
23
+ validatePlatformCapabilityArtifact,
24
+ } = deps;
25
+
26
+ function subagentAdapterDispatchSnapshotPath(root) {
27
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
28
+ return path.join(subagentAdapterDispatchesDirectory(root), `${timestamp}.subagent-adapter-dispatch.json`);
29
+ }
30
+
31
+ function listSubagentAdapterDispatchFiles(root) {
32
+ return listStateFiles(root, subagentAdapterDispatchesDirectory, '.subagent-adapter-dispatch.json');
33
+ }
34
+
35
+ function gatePassed(gates, id) {
36
+ return gates.find((gate) => gate.id === id)?.passed === true;
37
+ }
38
+
39
+ function subagentAdapterDispatchCore(inputs) {
40
+ const { persist, dispatch, capability, dispatchPath, capabilityPath, gates, fileScopeIsolated, fallbackDefined, permissionGate } = inputs;
41
+ return {
42
+ version: 1,
43
+ stage: 'P8',
44
+ created_at: new Date().toISOString(),
45
+ writes: Boolean(persist),
46
+ dispatch_status: persist ? 'adapter-dispatch-artifact-ready' : 'adapter-dispatch-preview-only',
47
+ task_id: dispatch.task_id || '',
48
+ platform: capability.platform || '',
49
+ adapter: capability.adapter || '',
50
+ dispatch_file: path.basename(dispatchPath),
51
+ dispatch_digest: fileDigest(dispatchPath),
52
+ dispatch_artifact_digest: dispatch.dispatch_digest || '',
53
+ eligibility_file: dispatch.eligibility_file || '',
54
+ eligibility_digest: dispatch.eligibility_digest || '',
55
+ capability_file: path.basename(capabilityPath),
56
+ capability_digest: fileDigest(capabilityPath),
57
+ platform_capability_digest: capability.capability_digest || '',
58
+ adapter_digest: capability.adapter_digest || '',
59
+ catalog_digest: capability.catalog_digest || '',
60
+ task_brief_digest: dispatch.task_brief_digest || '',
61
+ workflow_digest: dispatch.workflow_digest || '',
62
+ permission_snapshot: {
63
+ user_permission_required: true,
64
+ user_permission_present: permissionGate.checks.find((check) => check.id === 'explicit-user-permission')?.pass === true,
65
+ source: permissionGate.permission_source,
66
+ },
67
+ brief_contract: {
68
+ task_brief_complete: Boolean(dispatch.task_id && dispatch.task_brief_digest),
69
+ task_brief_digest: dispatch.task_brief_digest || '',
70
+ },
71
+ file_isolation_contract: {
72
+ file_scope_isolated: fileScopeIsolated,
73
+ shared_state_conflict_absent: gatePassed(gates, 'shared_state_conflict_absent'),
74
+ forbidden_file_write: false,
75
+ },
76
+ review_contract: {
77
+ task_review_gate_defined: gatePassed(gates, 'task_review_gate_defined'),
78
+ final_review_gate_defined: gatePassed(gates, 'final_review_gate_defined'),
79
+ review_required: true,
80
+ result_ingestion_required: true,
81
+ },
82
+ fallback_contract: {
83
+ fallback_path_defined: fallbackDefined,
84
+ fallback: ['manual-owner-takes-over', 'vibe-receiving-code-review', 'vibe-systematic-debugging'],
85
+ },
86
+ subagent_permission_gate: permissionGate,
87
+ adapter_consumable: permissionGate.pass,
88
+ allowed_followup: ['external-adapter-consume-only', 'subagent-result-ingest-only'],
89
+ no_session_create: true,
90
+ no_platform_api: true,
91
+ no_model_invocation: true,
92
+ no_subagent_action: true,
93
+ no_git: true,
94
+ no_worktree: true,
95
+ no_business_source_write: true,
96
+ planned_writes: persist ? [path.join(stateDirectoryName, subagentAdapterDispatchesDirectoryName, '<timestamp>.subagent-adapter-dispatch.json').replace(/\\/g, '/')] : [],
97
+ };
98
+ }
99
+
100
+ function subagentAdapterDispatchEnvelope(root, dispatchFile, capabilityFile, { persist = false, artifactFile = '' } = {}) {
101
+ ensureRoot(root);
102
+ if (!dispatchFile) throw new Error('subagents --adapter-dispatch requires --from-dispatch <subagent-dispatch-file>');
103
+ if (!capabilityFile) throw new Error('subagents --adapter-dispatch requires --capability <platform-capability-file>');
104
+ const dispatchPath = subagentDispatchFilePath(root, dispatchFile);
105
+ const dispatchArtifact = readJsonArtifact(dispatchPath, 'Subagent dispatch');
106
+ const dispatchVerification = validateSubagentDispatchArtifact(root, dispatchArtifact);
107
+ if (!dispatchVerification.ok) throw new Error(`subagent dispatch verification failed: ${dispatchVerification.failures.join('; ')}`);
108
+ const capabilityPath = platformCapabilityFilePath(root, capabilityFile);
109
+ const capabilityArtifact = readJsonArtifact(capabilityPath, 'Platform capability');
110
+ const capabilityVerification = validatePlatformCapabilityArtifact(capabilityArtifact, path.basename(capabilityPath));
111
+ if (!capabilityVerification.ok) throw new Error(`platform capability verification failed: ${capabilityVerification.failures.join('; ')}`);
112
+ const dispatch = dispatchArtifact.subagent_dispatch || {};
113
+ const capability = capabilityArtifact.platform_capability || {};
114
+ const eligibilityPath = subagentEligibilityFilePath(root, dispatch.eligibility_file || '');
115
+ const eligibilityArtifact = readJsonArtifact(eligibilityPath, 'Subagent eligibility');
116
+ const eligibilityVerification = validateSubagentEligibilityArtifact(root, eligibilityArtifact);
117
+ if (!eligibilityVerification.ok) throw new Error(`subagent eligibility verification failed: ${eligibilityVerification.failures.join('; ')}`);
118
+ const gates = eligibilityArtifact.subagent_eligibility?.gates || [];
119
+ const fileScopeIsolated = gatePassed(gates, 'file_scope_isolated') && gatePassed(gates, 'shared_state_conflict_absent');
120
+ const reviewGateDefined = gatePassed(gates, 'task_review_gate_defined') && gatePassed(gates, 'final_review_gate_defined');
121
+ const fallbackDefined = gatePassed(gates, 'fallback_path_defined');
122
+ const permissionGate = runtimeSubagentPermissionGate({
123
+ persist,
124
+ dispatch: dispatchArtifact,
125
+ eligibility: eligibilityArtifact,
126
+ capability: capabilityArtifact,
127
+ });
128
+ if (persist && !permissionGate.pass) throw new Error(`subagent permission gate failed: ${permissionGate.blocked_reasons.join('; ')}`);
129
+ const adapterFile = artifactFile || path.basename(subagentAdapterDispatchSnapshotPath(root));
130
+ const core = subagentAdapterDispatchCore({
131
+ persist,
132
+ dispatch,
133
+ capability,
134
+ dispatchPath,
135
+ capabilityPath,
136
+ gates,
137
+ fileScopeIsolated,
138
+ fallbackDefined,
139
+ permissionGate,
140
+ });
141
+ return {
142
+ mode: 'subagent-adapter-dispatch',
143
+ ok: true,
144
+ state_present: readonlyLocalStatePresent(root),
145
+ subagent_adapter_dispatch: { ...core, adapter_dispatch_digest: digestObject(core) },
146
+ subagent_dispatch: { file: path.basename(dispatchPath), digest: fileDigest(dispatchPath), verification: dispatchVerification },
147
+ subagent_eligibility: { file: path.basename(eligibilityPath), digest: fileDigest(eligibilityPath), verification: eligibilityVerification },
148
+ platform_capability: { file: path.basename(capabilityPath), digest: fileDigest(capabilityPath), verification: capabilityVerification },
149
+ files: { subagent_adapter_dispatch: adapterFile },
150
+ safety: {
151
+ stage: 'P8',
152
+ writes: Boolean(persist),
153
+ subagent_adapter_dispatch_artifact: Boolean(persist),
154
+ adapter_dispatch_artifact: Boolean(persist),
155
+ adapter_consumable: Boolean(persist),
156
+ session_create: false,
157
+ platform_api: false,
158
+ model_invocation: false,
159
+ subagent_dispatch: false,
160
+ subagent: false,
161
+ mcp: false,
162
+ git: false,
163
+ worktree: false,
164
+ business_source_write: false,
165
+ auto_execution: false,
166
+ hidden_handoff: false,
167
+ },
168
+ quality: permissionGate.pass ? [] : permissionGate.blocked_reasons,
169
+ action: persist
170
+ ? 'subagent adapter dispatch artifact was written locally for explicit adapter consumption. No session was created and no platform API, model invocation, subagent action, git, worktree, or business source write occurred.'
171
+ : 'subagent adapter dispatch was previewed read-only. No files were written and no adapter or subagent session was created.',
172
+ };
173
+ }
174
+
175
+ function validateSubagentAdapterDispatchArtifact(root, artifact, fileName = '') {
176
+ const failures = [];
177
+ if (artifact.schema_version !== jsonSchemaVersion) failures.push('schema_version must be 1');
178
+ if (artifact.command !== 'subagents') failures.push('command must be subagents');
179
+ if (artifact.mode !== 'subagent-adapter-dispatch') failures.push('mode must be subagent-adapter-dispatch');
180
+ const detail = artifact.subagent_adapter_dispatch || {};
181
+ const files = artifact.files || {};
182
+ if (!files.subagent_adapter_dispatch || !String(files.subagent_adapter_dispatch).endsWith('.subagent-adapter-dispatch.json')) failures.push('files.subagent_adapter_dispatch must be a subagent adapter dispatch artifact');
183
+ if (fileName) {
184
+ if (!fileName.endsWith('.subagent-adapter-dispatch.json')) failures.push('P8 subagent adapter dispatch artifact file extension is unsupported');
185
+ else if (files.subagent_adapter_dispatch !== fileName) failures.push('P8 subagent adapter dispatch file identity mismatch');
186
+ }
187
+ if (detail.version !== 1) failures.push('subagent_adapter_dispatch.version must be 1');
188
+ if (detail.stage !== 'P8') failures.push('subagent_adapter_dispatch.stage must be P8');
189
+ if (detail.writes !== true) failures.push('subagent_adapter_dispatch.writes must be true');
190
+ if (detail.dispatch_status !== 'adapter-dispatch-artifact-ready') failures.push('subagent_adapter_dispatch.dispatch_status must be adapter-dispatch-artifact-ready');
191
+ if (!detail.task_id) failures.push('subagent_adapter_dispatch.task_id is required');
192
+ if (!['claude', 'cursor', 'codex'].includes(detail.platform)) failures.push('subagent_adapter_dispatch.platform must be claude, cursor, or codex');
193
+ if (detail.adapter !== 'local-contract-only') failures.push('subagent_adapter_dispatch.adapter must be local-contract-only');
194
+ if (detail.permission_snapshot?.user_permission_present !== true) failures.push('subagent_adapter_dispatch permission snapshot must show explicit user permission');
195
+ if (detail.brief_contract?.task_brief_complete !== true) failures.push('subagent_adapter_dispatch brief contract must be complete');
196
+ if (detail.file_isolation_contract?.file_scope_isolated !== true) failures.push('subagent_adapter_dispatch file scope must be isolated');
197
+ if (detail.review_contract?.review_required !== true || detail.review_contract?.result_ingestion_required !== true) failures.push('subagent_adapter_dispatch review and result ingestion gates are required');
198
+ if (detail.fallback_contract?.fallback_path_defined !== true) failures.push('subagent_adapter_dispatch fallback path must be defined');
199
+ if (detail.subagent_permission_gate?.pass !== true) failures.push('subagent_adapter_dispatch permission gate must pass');
200
+ if (detail.subagent_permission_gate?.gate_kind !== 'subagent-explicit-permission-gate') failures.push('subagent_adapter_dispatch permission gate kind mismatch');
201
+ if (!Array.isArray(detail.subagent_permission_gate?.checks) || detail.subagent_permission_gate.checks.length < 7) failures.push('subagent_adapter_dispatch permission gate checks are required');
202
+ if (detail.adapter_consumable !== true) failures.push('subagent_adapter_dispatch.adapter_consumable must be true');
203
+ if (!Array.isArray(detail.allowed_followup) || digestObject(detail.allowed_followup) !== digestObject(['external-adapter-consume-only', 'subagent-result-ingest-only'])) failures.push('subagent_adapter_dispatch.allowed_followup mismatch');
204
+ for (const key of ['no_session_create', 'no_platform_api', 'no_model_invocation', 'no_subagent_action', 'no_git', 'no_worktree', 'no_business_source_write']) if (detail[key] !== true) failures.push(`subagent_adapter_dispatch.${key} must be true`);
205
+ const expectedWrites = [path.join(stateDirectoryName, subagentAdapterDispatchesDirectoryName, '<timestamp>.subagent-adapter-dispatch.json').replace(/\\/g, '/')];
206
+ if (!Array.isArray(detail.planned_writes) || digestObject(detail.planned_writes) !== digestObject(expectedWrites)) failures.push('subagent_adapter_dispatch.planned_writes must only contain adapter dispatch artifact');
207
+ const digestPayload = { ...detail };
208
+ delete digestPayload.adapter_dispatch_digest;
209
+ if (detail.adapter_dispatch_digest !== digestObject(digestPayload)) failures.push('subagent_adapter_dispatch digest mismatch');
210
+ if (root && detail.dispatch_file) {
211
+ try {
212
+ const dispatchPath = subagentDispatchFilePath(root, detail.dispatch_file);
213
+ if (fileDigest(dispatchPath) !== detail.dispatch_digest) failures.push('subagent_adapter_dispatch dispatch digest mismatch');
214
+ const dispatchArtifact = readJsonArtifact(dispatchPath, 'Subagent dispatch');
215
+ const verification = validateSubagentDispatchArtifact(root, dispatchArtifact);
216
+ failures.push(...verification.failures.map((failure) => `subagent dispatch: ${failure}`));
217
+ } catch (error) {
218
+ failures.push(error.message);
219
+ }
220
+ }
221
+ if (root && detail.capability_file) {
222
+ try {
223
+ const capabilityPath = platformCapabilityFilePath(root, detail.capability_file);
224
+ if (fileDigest(capabilityPath) !== detail.capability_digest) failures.push('subagent_adapter_dispatch capability digest mismatch');
225
+ const capabilityArtifact = readJsonArtifact(capabilityPath, 'Platform capability');
226
+ const verification = validatePlatformCapabilityArtifact(capabilityArtifact, path.basename(capabilityPath));
227
+ failures.push(...verification.failures.map((failure) => `platform capability: ${failure}`));
228
+ } catch (error) {
229
+ failures.push(error.message);
230
+ }
231
+ }
232
+ const safety = artifact.safety || {};
233
+ if (safety.stage !== 'P8') failures.push('safety.stage must be P8');
234
+ for (const key of ['writes', 'subagent_adapter_dispatch_artifact', 'adapter_dispatch_artifact', 'adapter_consumable']) if (safety[key] !== true) failures.push(`safety.${key} must be true`);
235
+ for (const key of ['session_create', 'platform_api', 'model_invocation', 'subagent_dispatch', 'subagent', 'mcp', 'git', 'worktree', 'business_source_write', 'auto_execution', 'hidden_handoff']) if (safety[key] !== false) failures.push(`safety.${key} must be false`);
236
+ return { ok: failures.length === 0, failures };
237
+ }
238
+
239
+ function writeSubagentAdapterDispatch(root, envelope) {
240
+ const fileName = envelope.files?.subagent_adapter_dispatch || path.basename(subagentAdapterDispatchSnapshotPath(root));
241
+ const file = subagentAdapterDispatchFilePath(root, fileName);
242
+ const payload = { schema_version: jsonSchemaVersion, command: 'subagents', ...envelope, safety: { ...envelope.safety, subagent_adapter_dispatch_artifact: true, adapter_dispatch_artifact: true } };
243
+ const verification = validateSubagentAdapterDispatchArtifact(root, payload, path.basename(file));
244
+ if (!verification.ok) throw new Error(`subagent adapter dispatch verification failed: ${verification.failures.join('; ')}`);
245
+ return writeStateArtifact(path.dirname(file), path.basename(file), payload);
246
+ }
247
+
248
+ function printSubagentAdapterDispatch(envelope, file = '') {
249
+ console.log('Vibecoding Runtime Subagent Adapter Dispatch');
250
+ console.log(`Mode: ${envelope.mode}`);
251
+ console.log(`Task: ${envelope.subagent_adapter_dispatch.task_id}`);
252
+ console.log(`Status: ${envelope.subagent_adapter_dispatch.dispatch_status}`);
253
+ console.log(`Adapter consumable: ${envelope.subagent_adapter_dispatch.adapter_consumable ? 'yes' : 'no'}`);
254
+ if (file) console.log(`Adapter dispatch: ${path.relative(process.cwd(), file)}`);
255
+ console.log(`Action: ${envelope.action}`);
256
+ }
257
+
258
+ return {
259
+ subagentAdapterDispatchSnapshotPath,
260
+ listSubagentAdapterDispatchFiles,
261
+ subagentAdapterDispatchEnvelope,
262
+ validateSubagentAdapterDispatchArtifact,
263
+ writeSubagentAdapterDispatch,
264
+ printSubagentAdapterDispatch,
265
+ };
266
+ }