@aperant/framework 0.6.2

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 (3498) hide show
  1. package/CONTRIBUTING.md +128 -0
  2. package/LICENSE +661 -0
  3. package/README.md +254 -0
  4. package/agents/apt-docs-author.md +272 -0
  5. package/agents/apt-executor.md +126 -0
  6. package/agents/apt-planner.md +399 -0
  7. package/agents/apt-pr-review-codebase-fit.md +201 -0
  8. package/agents/apt-pr-review-fixer.md +164 -0
  9. package/agents/apt-pr-review-logic.md +201 -0
  10. package/agents/apt-pr-review-performance.md +201 -0
  11. package/agents/apt-pr-review-quality.md +198 -0
  12. package/agents/apt-pr-review-security.md +199 -0
  13. package/agents/apt-pr-review-self-reviewer.md +172 -0
  14. package/agents/apt-pr-review-test-integrity.md +194 -0
  15. package/agents/apt-pr-review-validator.md +155 -0
  16. package/agents/apt-researcher.md +55 -0
  17. package/agents/apt-reviewer.md +43 -0
  18. package/agents/apt-team-docs-narrator.md +140 -0
  19. package/agents/apt-verifier.md +117 -0
  20. package/bin/apt-proof-video.mjs +2078 -0
  21. package/bin/apt-tools.mjs +107 -0
  22. package/context/installed/verification.md +47 -0
  23. package/dist/__test-helpers/cmd-fixtures.d.mts +44 -0
  24. package/dist/__test-helpers/cmd-fixtures.d.mts.map +1 -0
  25. package/dist/__test-helpers/cmd-fixtures.mjs +113 -0
  26. package/dist/__test-helpers/cmd-fixtures.mjs.map +1 -0
  27. package/dist/__test-helpers/index.d.mts +3 -0
  28. package/dist/__test-helpers/index.d.mts.map +1 -0
  29. package/dist/__test-helpers/index.mjs +14 -0
  30. package/dist/__test-helpers/index.mjs.map +1 -0
  31. package/dist/__test-helpers/run-cmd.d.mts +15 -0
  32. package/dist/__test-helpers/run-cmd.d.mts.map +1 -0
  33. package/dist/__test-helpers/run-cmd.mjs +84 -0
  34. package/dist/__test-helpers/run-cmd.mjs.map +1 -0
  35. package/dist/__test-helpers/tmp-project.d.ts +31 -0
  36. package/dist/__test-helpers/tmp-project.d.ts.map +1 -0
  37. package/dist/__test-helpers/tmp-project.js +126 -0
  38. package/dist/__test-helpers/tmp-project.js.map +1 -0
  39. package/dist/__tests__/agent-runtime.test.d.ts +7 -0
  40. package/dist/__tests__/agent-runtime.test.d.ts.map +1 -0
  41. package/dist/__tests__/agent-runtime.test.js +28 -0
  42. package/dist/__tests__/agent-runtime.test.js.map +1 -0
  43. package/dist/__tests__/aperant-mapper.test.d.ts +2 -0
  44. package/dist/__tests__/aperant-mapper.test.d.ts.map +1 -0
  45. package/dist/__tests__/aperant-mapper.test.js +124 -0
  46. package/dist/__tests__/aperant-mapper.test.js.map +1 -0
  47. package/dist/__tests__/apt-author-skill-skill-structure.test.d.ts +12 -0
  48. package/dist/__tests__/apt-author-skill-skill-structure.test.d.ts.map +1 -0
  49. package/dist/__tests__/apt-author-skill-skill-structure.test.js +55 -0
  50. package/dist/__tests__/apt-author-skill-skill-structure.test.js.map +1 -0
  51. package/dist/__tests__/apt-close-task-skill-structure.test.d.ts +8 -0
  52. package/dist/__tests__/apt-close-task-skill-structure.test.d.ts.map +1 -0
  53. package/dist/__tests__/apt-close-task-skill-structure.test.js +47 -0
  54. package/dist/__tests__/apt-close-task-skill-structure.test.js.map +1 -0
  55. package/dist/__tests__/apt-design-skill-structure.test.d.ts +17 -0
  56. package/dist/__tests__/apt-design-skill-structure.test.d.ts.map +1 -0
  57. package/dist/__tests__/apt-design-skill-structure.test.js +120 -0
  58. package/dist/__tests__/apt-design-skill-structure.test.js.map +1 -0
  59. package/dist/__tests__/apt-mockup-skill-structure.test.d.ts +13 -0
  60. package/dist/__tests__/apt-mockup-skill-structure.test.d.ts.map +1 -0
  61. package/dist/__tests__/apt-mockup-skill-structure.test.js +86 -0
  62. package/dist/__tests__/apt-mockup-skill-structure.test.js.map +1 -0
  63. package/dist/__tests__/apt-review-pass6-structure.test.d.ts +6 -0
  64. package/dist/__tests__/apt-review-pass6-structure.test.d.ts.map +1 -0
  65. package/dist/__tests__/apt-review-pass6-structure.test.js +44 -0
  66. package/dist/__tests__/apt-review-pass6-structure.test.js.map +1 -0
  67. package/dist/__tests__/apt-setup-batch7-structure.test.d.ts +6 -0
  68. package/dist/__tests__/apt-setup-batch7-structure.test.d.ts.map +1 -0
  69. package/dist/__tests__/apt-setup-batch7-structure.test.js +38 -0
  70. package/dist/__tests__/apt-setup-batch7-structure.test.js.map +1 -0
  71. package/dist/__tests__/args.test.d.ts +2 -0
  72. package/dist/__tests__/args.test.d.ts.map +1 -0
  73. package/dist/__tests__/args.test.js +31 -0
  74. package/dist/__tests__/args.test.js.map +1 -0
  75. package/dist/__tests__/artifacts-classification.test.d.ts +18 -0
  76. package/dist/__tests__/artifacts-classification.test.d.ts.map +1 -0
  77. package/dist/__tests__/artifacts-classification.test.js +266 -0
  78. package/dist/__tests__/artifacts-classification.test.js.map +1 -0
  79. package/dist/__tests__/artifacts-self-stage.test.d.ts +15 -0
  80. package/dist/__tests__/artifacts-self-stage.test.d.ts.map +1 -0
  81. package/dist/__tests__/artifacts-self-stage.test.js +159 -0
  82. package/dist/__tests__/artifacts-self-stage.test.js.map +1 -0
  83. package/dist/__tests__/atomic-text.test.d.ts +14 -0
  84. package/dist/__tests__/atomic-text.test.d.ts.map +1 -0
  85. package/dist/__tests__/atomic-text.test.js +76 -0
  86. package/dist/__tests__/atomic-text.test.js.map +1 -0
  87. package/dist/__tests__/atomic-write.test.d.ts +14 -0
  88. package/dist/__tests__/atomic-write.test.d.ts.map +1 -0
  89. package/dist/__tests__/atomic-write.test.js +134 -0
  90. package/dist/__tests__/atomic-write.test.js.map +1 -0
  91. package/dist/__tests__/audit-pending-artifacts.test.d.ts +16 -0
  92. package/dist/__tests__/audit-pending-artifacts.test.d.ts.map +1 -0
  93. package/dist/__tests__/audit-pending-artifacts.test.js +153 -0
  94. package/dist/__tests__/audit-pending-artifacts.test.js.map +1 -0
  95. package/dist/__tests__/audit-privacy.test.d.ts +18 -0
  96. package/dist/__tests__/audit-privacy.test.d.ts.map +1 -0
  97. package/dist/__tests__/audit-privacy.test.js +152 -0
  98. package/dist/__tests__/audit-privacy.test.js.map +1 -0
  99. package/dist/__tests__/bin-path-resolve.test.d.ts +9 -0
  100. package/dist/__tests__/bin-path-resolve.test.d.ts.map +1 -0
  101. package/dist/__tests__/bin-path-resolve.test.js +76 -0
  102. package/dist/__tests__/bin-path-resolve.test.js.map +1 -0
  103. package/dist/__tests__/bootstrap-cli.test.d.ts +11 -0
  104. package/dist/__tests__/bootstrap-cli.test.d.ts.map +1 -0
  105. package/dist/__tests__/bootstrap-cli.test.js +181 -0
  106. package/dist/__tests__/bootstrap-cli.test.js.map +1 -0
  107. package/dist/__tests__/bootstrap-detect-mode.test.d.ts +9 -0
  108. package/dist/__tests__/bootstrap-detect-mode.test.d.ts.map +1 -0
  109. package/dist/__tests__/bootstrap-detect-mode.test.js +113 -0
  110. package/dist/__tests__/bootstrap-detect-mode.test.js.map +1 -0
  111. package/dist/__tests__/bootstrap-product-context-sidecar.test.d.ts +11 -0
  112. package/dist/__tests__/bootstrap-product-context-sidecar.test.d.ts.map +1 -0
  113. package/dist/__tests__/bootstrap-product-context-sidecar.test.js +145 -0
  114. package/dist/__tests__/bootstrap-product-context-sidecar.test.js.map +1 -0
  115. package/dist/__tests__/bootstrap-recon.test.d.ts +11 -0
  116. package/dist/__tests__/bootstrap-recon.test.d.ts.map +1 -0
  117. package/dist/__tests__/bootstrap-recon.test.js +136 -0
  118. package/dist/__tests__/bootstrap-recon.test.js.map +1 -0
  119. package/dist/__tests__/build-progress-sync.test.d.ts +11 -0
  120. package/dist/__tests__/build-progress-sync.test.d.ts.map +1 -0
  121. package/dist/__tests__/build-progress-sync.test.js +275 -0
  122. package/dist/__tests__/build-progress-sync.test.js.map +1 -0
  123. package/dist/__tests__/c28-cutover.test.d.ts +9 -0
  124. package/dist/__tests__/c28-cutover.test.d.ts.map +1 -0
  125. package/dist/__tests__/c28-cutover.test.js +98 -0
  126. package/dist/__tests__/c28-cutover.test.js.map +1 -0
  127. package/dist/__tests__/check-command.test.d.ts +8 -0
  128. package/dist/__tests__/check-command.test.d.ts.map +1 -0
  129. package/dist/__tests__/check-command.test.js +116 -0
  130. package/dist/__tests__/check-command.test.js.map +1 -0
  131. package/dist/__tests__/check-version-drift.test.d.ts +13 -0
  132. package/dist/__tests__/check-version-drift.test.d.ts.map +1 -0
  133. package/dist/__tests__/check-version-drift.test.js +82 -0
  134. package/dist/__tests__/check-version-drift.test.js.map +1 -0
  135. package/dist/__tests__/check-version-header.test.d.ts +13 -0
  136. package/dist/__tests__/check-version-header.test.d.ts.map +1 -0
  137. package/dist/__tests__/check-version-header.test.js +112 -0
  138. package/dist/__tests__/check-version-header.test.js.map +1 -0
  139. package/dist/__tests__/cli-contract-argv.test.d.ts +10 -0
  140. package/dist/__tests__/cli-contract-argv.test.d.ts.map +1 -0
  141. package/dist/__tests__/cli-contract-argv.test.js +25 -0
  142. package/dist/__tests__/cli-contract-argv.test.js.map +1 -0
  143. package/dist/__tests__/cli-contract-author-skill.test.d.ts +15 -0
  144. package/dist/__tests__/cli-contract-author-skill.test.d.ts.map +1 -0
  145. package/dist/__tests__/cli-contract-author-skill.test.js +86 -0
  146. package/dist/__tests__/cli-contract-author-skill.test.js.map +1 -0
  147. package/dist/__tests__/cli-contract-bootstrap.test.d.ts +12 -0
  148. package/dist/__tests__/cli-contract-bootstrap.test.d.ts.map +1 -0
  149. package/dist/__tests__/cli-contract-bootstrap.test.js +68 -0
  150. package/dist/__tests__/cli-contract-bootstrap.test.js.map +1 -0
  151. package/dist/__tests__/cli-contract-coverage-check.test.d.ts +10 -0
  152. package/dist/__tests__/cli-contract-coverage-check.test.d.ts.map +1 -0
  153. package/dist/__tests__/cli-contract-coverage-check.test.js +153 -0
  154. package/dist/__tests__/cli-contract-coverage-check.test.js.map +1 -0
  155. package/dist/__tests__/cli-contract-create-docs.test.d.ts +11 -0
  156. package/dist/__tests__/cli-contract-create-docs.test.d.ts.map +1 -0
  157. package/dist/__tests__/cli-contract-create-docs.test.js +75 -0
  158. package/dist/__tests__/cli-contract-create-docs.test.js.map +1 -0
  159. package/dist/__tests__/cli-contract-design-lint.test.d.ts +11 -0
  160. package/dist/__tests__/cli-contract-design-lint.test.d.ts.map +1 -0
  161. package/dist/__tests__/cli-contract-design-lint.test.js +48 -0
  162. package/dist/__tests__/cli-contract-design-lint.test.js.map +1 -0
  163. package/dist/__tests__/cli-contract-design-scan.test.d.ts +11 -0
  164. package/dist/__tests__/cli-contract-design-scan.test.d.ts.map +1 -0
  165. package/dist/__tests__/cli-contract-design-scan.test.js +41 -0
  166. package/dist/__tests__/cli-contract-design-scan.test.js.map +1 -0
  167. package/dist/__tests__/cli-contract-design-synthesize.test.d.ts +23 -0
  168. package/dist/__tests__/cli-contract-design-synthesize.test.d.ts.map +1 -0
  169. package/dist/__tests__/cli-contract-design-synthesize.test.js +234 -0
  170. package/dist/__tests__/cli-contract-design-synthesize.test.js.map +1 -0
  171. package/dist/__tests__/cli-contract-design-template.test.d.ts +23 -0
  172. package/dist/__tests__/cli-contract-design-template.test.d.ts.map +1 -0
  173. package/dist/__tests__/cli-contract-design-template.test.js +204 -0
  174. package/dist/__tests__/cli-contract-design-template.test.js.map +1 -0
  175. package/dist/__tests__/cli-contract-design-validate.test.d.ts +12 -0
  176. package/dist/__tests__/cli-contract-design-validate.test.d.ts.map +1 -0
  177. package/dist/__tests__/cli-contract-design-validate.test.js +98 -0
  178. package/dist/__tests__/cli-contract-design-validate.test.js.map +1 -0
  179. package/dist/__tests__/cli-contract-docs-audit.test.d.ts +11 -0
  180. package/dist/__tests__/cli-contract-docs-audit.test.d.ts.map +1 -0
  181. package/dist/__tests__/cli-contract-docs-audit.test.js +30 -0
  182. package/dist/__tests__/cli-contract-docs-audit.test.js.map +1 -0
  183. package/dist/__tests__/cli-contract-docs-coherence.test.d.ts +19 -0
  184. package/dist/__tests__/cli-contract-docs-coherence.test.d.ts.map +1 -0
  185. package/dist/__tests__/cli-contract-docs-coherence.test.js +174 -0
  186. package/dist/__tests__/cli-contract-docs-coherence.test.js.map +1 -0
  187. package/dist/__tests__/cli-contract-drift.test.d.ts +16 -0
  188. package/dist/__tests__/cli-contract-drift.test.d.ts.map +1 -0
  189. package/dist/__tests__/cli-contract-drift.test.js +41 -0
  190. package/dist/__tests__/cli-contract-drift.test.js.map +1 -0
  191. package/dist/__tests__/cli-contract-effects.test.d.ts +6 -0
  192. package/dist/__tests__/cli-contract-effects.test.d.ts.map +1 -0
  193. package/dist/__tests__/cli-contract-effects.test.js +92 -0
  194. package/dist/__tests__/cli-contract-effects.test.js.map +1 -0
  195. package/dist/__tests__/cli-contract-exit-codes.test.d.ts +21 -0
  196. package/dist/__tests__/cli-contract-exit-codes.test.d.ts.map +1 -0
  197. package/dist/__tests__/cli-contract-exit-codes.test.js +73 -0
  198. package/dist/__tests__/cli-contract-exit-codes.test.js.map +1 -0
  199. package/dist/__tests__/cli-contract-features-audit.test.d.ts +6 -0
  200. package/dist/__tests__/cli-contract-features-audit.test.d.ts.map +1 -0
  201. package/dist/__tests__/cli-contract-features-audit.test.js +77 -0
  202. package/dist/__tests__/cli-contract-features-audit.test.js.map +1 -0
  203. package/dist/__tests__/cli-contract-gate.test.d.ts +18 -0
  204. package/dist/__tests__/cli-contract-gate.test.d.ts.map +1 -0
  205. package/dist/__tests__/cli-contract-gate.test.js +36 -0
  206. package/dist/__tests__/cli-contract-gate.test.js.map +1 -0
  207. package/dist/__tests__/cli-contract-help.test.d.ts +10 -0
  208. package/dist/__tests__/cli-contract-help.test.d.ts.map +1 -0
  209. package/dist/__tests__/cli-contract-help.test.js +30 -0
  210. package/dist/__tests__/cli-contract-help.test.js.map +1 -0
  211. package/dist/__tests__/cli-contract-host.test.d.ts +19 -0
  212. package/dist/__tests__/cli-contract-host.test.d.ts.map +1 -0
  213. package/dist/__tests__/cli-contract-host.test.js +36 -0
  214. package/dist/__tests__/cli-contract-host.test.js.map +1 -0
  215. package/dist/__tests__/cli-contract-personas.test.d.ts +14 -0
  216. package/dist/__tests__/cli-contract-personas.test.d.ts.map +1 -0
  217. package/dist/__tests__/cli-contract-personas.test.js +87 -0
  218. package/dist/__tests__/cli-contract-personas.test.js.map +1 -0
  219. package/dist/__tests__/cli-contract-pr-review-audit-fixer.test.d.ts +12 -0
  220. package/dist/__tests__/cli-contract-pr-review-audit-fixer.test.d.ts.map +1 -0
  221. package/dist/__tests__/cli-contract-pr-review-audit-fixer.test.js +424 -0
  222. package/dist/__tests__/cli-contract-pr-review-audit-fixer.test.js.map +1 -0
  223. package/dist/__tests__/cli-contract-pr-review.test.d.ts +18 -0
  224. package/dist/__tests__/cli-contract-pr-review.test.d.ts.map +1 -0
  225. package/dist/__tests__/cli-contract-pr-review.test.js +69 -0
  226. package/dist/__tests__/cli-contract-pr-review.test.js.map +1 -0
  227. package/dist/__tests__/cli-contract-product-context.test.d.ts +11 -0
  228. package/dist/__tests__/cli-contract-product-context.test.d.ts.map +1 -0
  229. package/dist/__tests__/cli-contract-product-context.test.js +64 -0
  230. package/dist/__tests__/cli-contract-product-context.test.js.map +1 -0
  231. package/dist/__tests__/cli-contract-profile.test.d.ts +12 -0
  232. package/dist/__tests__/cli-contract-profile.test.d.ts.map +1 -0
  233. package/dist/__tests__/cli-contract-profile.test.js +51 -0
  234. package/dist/__tests__/cli-contract-profile.test.js.map +1 -0
  235. package/dist/__tests__/cli-contract-roadmap.test.d.ts +6 -0
  236. package/dist/__tests__/cli-contract-roadmap.test.d.ts.map +1 -0
  237. package/dist/__tests__/cli-contract-roadmap.test.js +89 -0
  238. package/dist/__tests__/cli-contract-roadmap.test.js.map +1 -0
  239. package/dist/__tests__/cli-contract-route.test.d.ts +11 -0
  240. package/dist/__tests__/cli-contract-route.test.d.ts.map +1 -0
  241. package/dist/__tests__/cli-contract-route.test.js +41 -0
  242. package/dist/__tests__/cli-contract-route.test.js.map +1 -0
  243. package/dist/__tests__/cli-contract-seed.test.d.ts +10 -0
  244. package/dist/__tests__/cli-contract-seed.test.d.ts.map +1 -0
  245. package/dist/__tests__/cli-contract-seed.test.js +50 -0
  246. package/dist/__tests__/cli-contract-seed.test.js.map +1 -0
  247. package/dist/__tests__/cli-contract-standards.test.d.ts +12 -0
  248. package/dist/__tests__/cli-contract-standards.test.d.ts.map +1 -0
  249. package/dist/__tests__/cli-contract-standards.test.js +95 -0
  250. package/dist/__tests__/cli-contract-standards.test.js.map +1 -0
  251. package/dist/__tests__/cli-contract-statusline.test.d.ts +13 -0
  252. package/dist/__tests__/cli-contract-statusline.test.d.ts.map +1 -0
  253. package/dist/__tests__/cli-contract-statusline.test.js +61 -0
  254. package/dist/__tests__/cli-contract-statusline.test.js.map +1 -0
  255. package/dist/__tests__/cli-contract-task.test.d.ts +19 -0
  256. package/dist/__tests__/cli-contract-task.test.d.ts.map +1 -0
  257. package/dist/__tests__/cli-contract-task.test.js +38 -0
  258. package/dist/__tests__/cli-contract-task.test.js.map +1 -0
  259. package/dist/__tests__/cli-contract-taste-infer.test.d.ts +13 -0
  260. package/dist/__tests__/cli-contract-taste-infer.test.d.ts.map +1 -0
  261. package/dist/__tests__/cli-contract-taste-infer.test.js +85 -0
  262. package/dist/__tests__/cli-contract-taste-infer.test.js.map +1 -0
  263. package/dist/__tests__/cli-contract-team.test.d.ts +6 -0
  264. package/dist/__tests__/cli-contract-team.test.d.ts.map +1 -0
  265. package/dist/__tests__/cli-contract-team.test.js +61 -0
  266. package/dist/__tests__/cli-contract-team.test.js.map +1 -0
  267. package/dist/__tests__/cli-contract-terminal.test.d.ts +15 -0
  268. package/dist/__tests__/cli-contract-terminal.test.d.ts.map +1 -0
  269. package/dist/__tests__/cli-contract-terminal.test.js +127 -0
  270. package/dist/__tests__/cli-contract-terminal.test.js.map +1 -0
  271. package/dist/__tests__/cli-contract-tokens.test.d.ts +6 -0
  272. package/dist/__tests__/cli-contract-tokens.test.d.ts.map +1 -0
  273. package/dist/__tests__/cli-contract-tokens.test.js +92 -0
  274. package/dist/__tests__/cli-contract-tokens.test.js.map +1 -0
  275. package/dist/__tests__/cli-contract-uninstall.test.d.ts +8 -0
  276. package/dist/__tests__/cli-contract-uninstall.test.d.ts.map +1 -0
  277. package/dist/__tests__/cli-contract-uninstall.test.js +58 -0
  278. package/dist/__tests__/cli-contract-uninstall.test.js.map +1 -0
  279. package/dist/__tests__/cli-contract-validate-evidence.test.d.ts +11 -0
  280. package/dist/__tests__/cli-contract-validate-evidence.test.d.ts.map +1 -0
  281. package/dist/__tests__/cli-contract-validate-evidence.test.js +75 -0
  282. package/dist/__tests__/cli-contract-validate-evidence.test.js.map +1 -0
  283. package/dist/__tests__/cli-contract-variant-gallery.test.d.ts +12 -0
  284. package/dist/__tests__/cli-contract-variant-gallery.test.d.ts.map +1 -0
  285. package/dist/__tests__/cli-contract-variant-gallery.test.js +60 -0
  286. package/dist/__tests__/cli-contract-variant-gallery.test.js.map +1 -0
  287. package/dist/__tests__/cli-contract-variant-pick.test.d.ts +12 -0
  288. package/dist/__tests__/cli-contract-variant-pick.test.d.ts.map +1 -0
  289. package/dist/__tests__/cli-contract-variant-pick.test.js +57 -0
  290. package/dist/__tests__/cli-contract-variant-pick.test.js.map +1 -0
  291. package/dist/__tests__/cli-contract-variant-pool.test.d.ts +10 -0
  292. package/dist/__tests__/cli-contract-variant-pool.test.d.ts.map +1 -0
  293. package/dist/__tests__/cli-contract-variant-pool.test.js +33 -0
  294. package/dist/__tests__/cli-contract-variant-pool.test.js.map +1 -0
  295. package/dist/__tests__/cli-contract-version.test.d.ts +9 -0
  296. package/dist/__tests__/cli-contract-version.test.d.ts.map +1 -0
  297. package/dist/__tests__/cli-contract-version.test.js +29 -0
  298. package/dist/__tests__/cli-contract-version.test.js.map +1 -0
  299. package/dist/__tests__/cli-contract-wfrun.test.d.ts +15 -0
  300. package/dist/__tests__/cli-contract-wfrun.test.d.ts.map +1 -0
  301. package/dist/__tests__/cli-contract-wfrun.test.js +54 -0
  302. package/dist/__tests__/cli-contract-wfrun.test.js.map +1 -0
  303. package/dist/__tests__/cli-contract-worktree-install.test.d.ts +7 -0
  304. package/dist/__tests__/cli-contract-worktree-install.test.d.ts.map +1 -0
  305. package/dist/__tests__/cli-contract-worktree-install.test.js +40 -0
  306. package/dist/__tests__/cli-contract-worktree-install.test.js.map +1 -0
  307. package/dist/__tests__/cli-contract-worktree.test.d.ts +6 -0
  308. package/dist/__tests__/cli-contract-worktree.test.d.ts.map +1 -0
  309. package/dist/__tests__/cli-contract-worktree.test.js +59 -0
  310. package/dist/__tests__/cli-contract-worktree.test.js.map +1 -0
  311. package/dist/__tests__/cli-fs-lock.test.d.ts +5 -0
  312. package/dist/__tests__/cli-fs-lock.test.d.ts.map +1 -0
  313. package/dist/__tests__/cli-fs-lock.test.js +51 -0
  314. package/dist/__tests__/cli-fs-lock.test.js.map +1 -0
  315. package/dist/__tests__/cli-graph-depends-on.test.d.ts +6 -0
  316. package/dist/__tests__/cli-graph-depends-on.test.d.ts.map +1 -0
  317. package/dist/__tests__/cli-graph-depends-on.test.js +119 -0
  318. package/dist/__tests__/cli-graph-depends-on.test.js.map +1 -0
  319. package/dist/__tests__/cli-graph-task-ref.test.d.ts +5 -0
  320. package/dist/__tests__/cli-graph-task-ref.test.d.ts.map +1 -0
  321. package/dist/__tests__/cli-graph-task-ref.test.js +65 -0
  322. package/dist/__tests__/cli-graph-task-ref.test.js.map +1 -0
  323. package/dist/__tests__/cli-risk-globs.test.d.ts +5 -0
  324. package/dist/__tests__/cli-risk-globs.test.d.ts.map +1 -0
  325. package/dist/__tests__/cli-risk-globs.test.js +96 -0
  326. package/dist/__tests__/cli-risk-globs.test.js.map +1 -0
  327. package/dist/__tests__/cmd-pure/audit.test.d.ts +5 -0
  328. package/dist/__tests__/cmd-pure/audit.test.d.ts.map +1 -0
  329. package/dist/__tests__/cmd-pure/audit.test.js +47 -0
  330. package/dist/__tests__/cmd-pure/audit.test.js.map +1 -0
  331. package/dist/__tests__/cmd-pure/author-skill.test.d.ts +5 -0
  332. package/dist/__tests__/cmd-pure/author-skill.test.d.ts.map +1 -0
  333. package/dist/__tests__/cmd-pure/author-skill.test.js +38 -0
  334. package/dist/__tests__/cmd-pure/author-skill.test.js.map +1 -0
  335. package/dist/__tests__/cmd-pure/bootstrap.test.d.ts +5 -0
  336. package/dist/__tests__/cmd-pure/bootstrap.test.d.ts.map +1 -0
  337. package/dist/__tests__/cmd-pure/bootstrap.test.js +66 -0
  338. package/dist/__tests__/cmd-pure/bootstrap.test.js.map +1 -0
  339. package/dist/__tests__/cmd-pure/check-version.test.d.ts +6 -0
  340. package/dist/__tests__/cmd-pure/check-version.test.d.ts.map +1 -0
  341. package/dist/__tests__/cmd-pure/check-version.test.js +29 -0
  342. package/dist/__tests__/cmd-pure/check-version.test.js.map +1 -0
  343. package/dist/__tests__/cmd-pure/check.test.d.ts +5 -0
  344. package/dist/__tests__/cmd-pure/check.test.d.ts.map +1 -0
  345. package/dist/__tests__/cmd-pure/check.test.js +25 -0
  346. package/dist/__tests__/cmd-pure/check.test.js.map +1 -0
  347. package/dist/__tests__/cmd-pure/config.test.d.ts +5 -0
  348. package/dist/__tests__/cmd-pure/config.test.d.ts.map +1 -0
  349. package/dist/__tests__/cmd-pure/config.test.js +37 -0
  350. package/dist/__tests__/cmd-pure/config.test.js.map +1 -0
  351. package/dist/__tests__/cmd-pure/consistency.test.d.ts +9 -0
  352. package/dist/__tests__/cmd-pure/consistency.test.d.ts.map +1 -0
  353. package/dist/__tests__/cmd-pure/consistency.test.js +100 -0
  354. package/dist/__tests__/cmd-pure/consistency.test.js.map +1 -0
  355. package/dist/__tests__/cmd-pure/constitution.test.d.ts +6 -0
  356. package/dist/__tests__/cmd-pure/constitution.test.d.ts.map +1 -0
  357. package/dist/__tests__/cmd-pure/constitution.test.js +94 -0
  358. package/dist/__tests__/cmd-pure/constitution.test.js.map +1 -0
  359. package/dist/__tests__/cmd-pure/coverage-check.test.d.ts +6 -0
  360. package/dist/__tests__/cmd-pure/coverage-check.test.d.ts.map +1 -0
  361. package/dist/__tests__/cmd-pure/coverage-check.test.js +49 -0
  362. package/dist/__tests__/cmd-pure/coverage-check.test.js.map +1 -0
  363. package/dist/__tests__/cmd-pure/create-docs.test.d.ts +6 -0
  364. package/dist/__tests__/cmd-pure/create-docs.test.d.ts.map +1 -0
  365. package/dist/__tests__/cmd-pure/create-docs.test.js +92 -0
  366. package/dist/__tests__/cmd-pure/create-docs.test.js.map +1 -0
  367. package/dist/__tests__/cmd-pure/design-lint.test.d.ts +6 -0
  368. package/dist/__tests__/cmd-pure/design-lint.test.d.ts.map +1 -0
  369. package/dist/__tests__/cmd-pure/design-lint.test.js +45 -0
  370. package/dist/__tests__/cmd-pure/design-lint.test.js.map +1 -0
  371. package/dist/__tests__/cmd-pure/design-scan.test.d.ts +6 -0
  372. package/dist/__tests__/cmd-pure/design-scan.test.d.ts.map +1 -0
  373. package/dist/__tests__/cmd-pure/design-scan.test.js +32 -0
  374. package/dist/__tests__/cmd-pure/design-scan.test.js.map +1 -0
  375. package/dist/__tests__/cmd-pure/design-template.test.d.ts +6 -0
  376. package/dist/__tests__/cmd-pure/design-template.test.d.ts.map +1 -0
  377. package/dist/__tests__/cmd-pure/design-template.test.js +56 -0
  378. package/dist/__tests__/cmd-pure/design-template.test.js.map +1 -0
  379. package/dist/__tests__/cmd-pure/design-validate.test.d.ts +6 -0
  380. package/dist/__tests__/cmd-pure/design-validate.test.d.ts.map +1 -0
  381. package/dist/__tests__/cmd-pure/design-validate.test.js +44 -0
  382. package/dist/__tests__/cmd-pure/design-validate.test.js.map +1 -0
  383. package/dist/__tests__/cmd-pure/detect-project.test.d.ts +6 -0
  384. package/dist/__tests__/cmd-pure/detect-project.test.d.ts.map +1 -0
  385. package/dist/__tests__/cmd-pure/detect-project.test.js +38 -0
  386. package/dist/__tests__/cmd-pure/detect-project.test.js.map +1 -0
  387. package/dist/__tests__/cmd-pure/docs-audit.test.d.ts +10 -0
  388. package/dist/__tests__/cmd-pure/docs-audit.test.d.ts.map +1 -0
  389. package/dist/__tests__/cmd-pure/docs-audit.test.js +63 -0
  390. package/dist/__tests__/cmd-pure/docs-audit.test.js.map +1 -0
  391. package/dist/__tests__/cmd-pure/effects.test.d.ts +5 -0
  392. package/dist/__tests__/cmd-pure/effects.test.d.ts.map +1 -0
  393. package/dist/__tests__/cmd-pure/effects.test.js +44 -0
  394. package/dist/__tests__/cmd-pure/effects.test.js.map +1 -0
  395. package/dist/__tests__/cmd-pure/event.test.d.ts +5 -0
  396. package/dist/__tests__/cmd-pure/event.test.d.ts.map +1 -0
  397. package/dist/__tests__/cmd-pure/event.test.js +44 -0
  398. package/dist/__tests__/cmd-pure/event.test.js.map +1 -0
  399. package/dist/__tests__/cmd-pure/features-audit.test.d.ts +5 -0
  400. package/dist/__tests__/cmd-pure/features-audit.test.d.ts.map +1 -0
  401. package/dist/__tests__/cmd-pure/features-audit.test.js +37 -0
  402. package/dist/__tests__/cmd-pure/features-audit.test.js.map +1 -0
  403. package/dist/__tests__/cmd-pure/gate.test.d.ts +9 -0
  404. package/dist/__tests__/cmd-pure/gate.test.d.ts.map +1 -0
  405. package/dist/__tests__/cmd-pure/gate.test.js +106 -0
  406. package/dist/__tests__/cmd-pure/gate.test.js.map +1 -0
  407. package/dist/__tests__/cmd-pure/health-check.test.d.ts +10 -0
  408. package/dist/__tests__/cmd-pure/health-check.test.d.ts.map +1 -0
  409. package/dist/__tests__/cmd-pure/health-check.test.js +44 -0
  410. package/dist/__tests__/cmd-pure/health-check.test.js.map +1 -0
  411. package/dist/__tests__/cmd-pure/host-detect.test.d.ts +10 -0
  412. package/dist/__tests__/cmd-pure/host-detect.test.d.ts.map +1 -0
  413. package/dist/__tests__/cmd-pure/host-detect.test.js +106 -0
  414. package/dist/__tests__/cmd-pure/host-detect.test.js.map +1 -0
  415. package/dist/__tests__/cmd-pure/init.test.d.ts +9 -0
  416. package/dist/__tests__/cmd-pure/init.test.d.ts.map +1 -0
  417. package/dist/__tests__/cmd-pure/init.test.js +34 -0
  418. package/dist/__tests__/cmd-pure/init.test.js.map +1 -0
  419. package/dist/__tests__/cmd-pure/lock.test.d.ts +5 -0
  420. package/dist/__tests__/cmd-pure/lock.test.d.ts.map +1 -0
  421. package/dist/__tests__/cmd-pure/lock.test.js +46 -0
  422. package/dist/__tests__/cmd-pure/lock.test.js.map +1 -0
  423. package/dist/__tests__/cmd-pure/personas.test.d.ts +5 -0
  424. package/dist/__tests__/cmd-pure/personas.test.d.ts.map +1 -0
  425. package/dist/__tests__/cmd-pure/personas.test.js +60 -0
  426. package/dist/__tests__/cmd-pure/personas.test.js.map +1 -0
  427. package/dist/__tests__/cmd-pure/plan-approval.test.d.ts +5 -0
  428. package/dist/__tests__/cmd-pure/plan-approval.test.d.ts.map +1 -0
  429. package/dist/__tests__/cmd-pure/plan-approval.test.js +82 -0
  430. package/dist/__tests__/cmd-pure/plan-approval.test.js.map +1 -0
  431. package/dist/__tests__/cmd-pure/pr-review-audit-fixer.test.d.ts +6 -0
  432. package/dist/__tests__/cmd-pure/pr-review-audit-fixer.test.d.ts.map +1 -0
  433. package/dist/__tests__/cmd-pure/pr-review-audit-fixer.test.js +49 -0
  434. package/dist/__tests__/cmd-pure/pr-review-audit-fixer.test.js.map +1 -0
  435. package/dist/__tests__/cmd-pure/pr-review.test.d.ts +11 -0
  436. package/dist/__tests__/cmd-pure/pr-review.test.d.ts.map +1 -0
  437. package/dist/__tests__/cmd-pure/pr-review.test.js +156 -0
  438. package/dist/__tests__/cmd-pure/pr-review.test.js.map +1 -0
  439. package/dist/__tests__/cmd-pure/product-context.test.d.ts +5 -0
  440. package/dist/__tests__/cmd-pure/product-context.test.d.ts.map +1 -0
  441. package/dist/__tests__/cmd-pure/product-context.test.js +33 -0
  442. package/dist/__tests__/cmd-pure/product-context.test.js.map +1 -0
  443. package/dist/__tests__/cmd-pure/profile.test.d.ts +6 -0
  444. package/dist/__tests__/cmd-pure/profile.test.d.ts.map +1 -0
  445. package/dist/__tests__/cmd-pure/profile.test.js +83 -0
  446. package/dist/__tests__/cmd-pure/profile.test.js.map +1 -0
  447. package/dist/__tests__/cmd-pure/risk-check.test.d.ts +5 -0
  448. package/dist/__tests__/cmd-pure/risk-check.test.d.ts.map +1 -0
  449. package/dist/__tests__/cmd-pure/risk-check.test.js +38 -0
  450. package/dist/__tests__/cmd-pure/risk-check.test.js.map +1 -0
  451. package/dist/__tests__/cmd-pure/roadmap.test.d.ts +9 -0
  452. package/dist/__tests__/cmd-pure/roadmap.test.d.ts.map +1 -0
  453. package/dist/__tests__/cmd-pure/roadmap.test.js +82 -0
  454. package/dist/__tests__/cmd-pure/roadmap.test.js.map +1 -0
  455. package/dist/__tests__/cmd-pure/route.test.d.ts +10 -0
  456. package/dist/__tests__/cmd-pure/route.test.d.ts.map +1 -0
  457. package/dist/__tests__/cmd-pure/route.test.js +106 -0
  458. package/dist/__tests__/cmd-pure/route.test.js.map +1 -0
  459. package/dist/__tests__/cmd-pure/seed.test.d.ts +5 -0
  460. package/dist/__tests__/cmd-pure/seed.test.d.ts.map +1 -0
  461. package/dist/__tests__/cmd-pure/seed.test.js +59 -0
  462. package/dist/__tests__/cmd-pure/seed.test.js.map +1 -0
  463. package/dist/__tests__/cmd-pure/standards.test.d.ts +5 -0
  464. package/dist/__tests__/cmd-pure/standards.test.d.ts.map +1 -0
  465. package/dist/__tests__/cmd-pure/standards.test.js +45 -0
  466. package/dist/__tests__/cmd-pure/standards.test.js.map +1 -0
  467. package/dist/__tests__/cmd-pure/state-artifacts.test.d.ts +5 -0
  468. package/dist/__tests__/cmd-pure/state-artifacts.test.d.ts.map +1 -0
  469. package/dist/__tests__/cmd-pure/state-artifacts.test.js +47 -0
  470. package/dist/__tests__/cmd-pure/state-artifacts.test.js.map +1 -0
  471. package/dist/__tests__/cmd-pure/state-update.test.d.ts +5 -0
  472. package/dist/__tests__/cmd-pure/state-update.test.d.ts.map +1 -0
  473. package/dist/__tests__/cmd-pure/state-update.test.js +55 -0
  474. package/dist/__tests__/cmd-pure/state-update.test.js.map +1 -0
  475. package/dist/__tests__/cmd-pure/state.test.d.ts +7 -0
  476. package/dist/__tests__/cmd-pure/state.test.d.ts.map +1 -0
  477. package/dist/__tests__/cmd-pure/state.test.js +48 -0
  478. package/dist/__tests__/cmd-pure/state.test.js.map +1 -0
  479. package/dist/__tests__/cmd-pure/statusline.test.d.ts +5 -0
  480. package/dist/__tests__/cmd-pure/statusline.test.d.ts.map +1 -0
  481. package/dist/__tests__/cmd-pure/statusline.test.js +47 -0
  482. package/dist/__tests__/cmd-pure/statusline.test.js.map +1 -0
  483. package/dist/__tests__/cmd-pure/task.test.d.ts +10 -0
  484. package/dist/__tests__/cmd-pure/task.test.d.ts.map +1 -0
  485. package/dist/__tests__/cmd-pure/task.test.js +246 -0
  486. package/dist/__tests__/cmd-pure/task.test.js.map +1 -0
  487. package/dist/__tests__/cmd-pure/taste-infer.test.d.ts +9 -0
  488. package/dist/__tests__/cmd-pure/taste-infer.test.d.ts.map +1 -0
  489. package/dist/__tests__/cmd-pure/taste-infer.test.js +50 -0
  490. package/dist/__tests__/cmd-pure/taste-infer.test.js.map +1 -0
  491. package/dist/__tests__/cmd-pure/team.test.d.ts +5 -0
  492. package/dist/__tests__/cmd-pure/team.test.d.ts.map +1 -0
  493. package/dist/__tests__/cmd-pure/team.test.js +43 -0
  494. package/dist/__tests__/cmd-pure/team.test.js.map +1 -0
  495. package/dist/__tests__/cmd-pure/terminal.test.d.ts +9 -0
  496. package/dist/__tests__/cmd-pure/terminal.test.d.ts.map +1 -0
  497. package/dist/__tests__/cmd-pure/terminal.test.js +44 -0
  498. package/dist/__tests__/cmd-pure/terminal.test.js.map +1 -0
  499. package/dist/__tests__/cmd-pure/tokens.test.d.ts +5 -0
  500. package/dist/__tests__/cmd-pure/tokens.test.d.ts.map +1 -0
  501. package/dist/__tests__/cmd-pure/tokens.test.js +64 -0
  502. package/dist/__tests__/cmd-pure/tokens.test.js.map +1 -0
  503. package/dist/__tests__/cmd-pure/uninstall.test.d.ts +6 -0
  504. package/dist/__tests__/cmd-pure/uninstall.test.d.ts.map +1 -0
  505. package/dist/__tests__/cmd-pure/uninstall.test.js +38 -0
  506. package/dist/__tests__/cmd-pure/uninstall.test.js.map +1 -0
  507. package/dist/__tests__/cmd-pure/validate-evidence.test.d.ts +12 -0
  508. package/dist/__tests__/cmd-pure/validate-evidence.test.d.ts.map +1 -0
  509. package/dist/__tests__/cmd-pure/validate-evidence.test.js +120 -0
  510. package/dist/__tests__/cmd-pure/validate-evidence.test.js.map +1 -0
  511. package/dist/__tests__/cmd-pure/variant-gallery.test.d.ts +6 -0
  512. package/dist/__tests__/cmd-pure/variant-gallery.test.d.ts.map +1 -0
  513. package/dist/__tests__/cmd-pure/variant-gallery.test.js +20 -0
  514. package/dist/__tests__/cmd-pure/variant-gallery.test.js.map +1 -0
  515. package/dist/__tests__/cmd-pure/variant-pick.test.d.ts +5 -0
  516. package/dist/__tests__/cmd-pure/variant-pick.test.d.ts.map +1 -0
  517. package/dist/__tests__/cmd-pure/variant-pick.test.js +24 -0
  518. package/dist/__tests__/cmd-pure/variant-pick.test.js.map +1 -0
  519. package/dist/__tests__/cmd-pure/variant-pool.test.d.ts +5 -0
  520. package/dist/__tests__/cmd-pure/variant-pool.test.d.ts.map +1 -0
  521. package/dist/__tests__/cmd-pure/variant-pool.test.js +19 -0
  522. package/dist/__tests__/cmd-pure/variant-pool.test.js.map +1 -0
  523. package/dist/__tests__/cmd-pure/wave.test.d.ts +5 -0
  524. package/dist/__tests__/cmd-pure/wave.test.d.ts.map +1 -0
  525. package/dist/__tests__/cmd-pure/wave.test.js +46 -0
  526. package/dist/__tests__/cmd-pure/wave.test.js.map +1 -0
  527. package/dist/__tests__/cmd-pure/wfrun.test.d.ts +6 -0
  528. package/dist/__tests__/cmd-pure/wfrun.test.d.ts.map +1 -0
  529. package/dist/__tests__/cmd-pure/wfrun.test.js +33 -0
  530. package/dist/__tests__/cmd-pure/wfrun.test.js.map +1 -0
  531. package/dist/__tests__/cmd-pure/workflow.test.d.ts +6 -0
  532. package/dist/__tests__/cmd-pure/workflow.test.d.ts.map +1 -0
  533. package/dist/__tests__/cmd-pure/workflow.test.js +105 -0
  534. package/dist/__tests__/cmd-pure/workflow.test.js.map +1 -0
  535. package/dist/__tests__/cmd-pure/worktree-install.test.d.ts +10 -0
  536. package/dist/__tests__/cmd-pure/worktree-install.test.d.ts.map +1 -0
  537. package/dist/__tests__/cmd-pure/worktree-install.test.js +58 -0
  538. package/dist/__tests__/cmd-pure/worktree-install.test.js.map +1 -0
  539. package/dist/__tests__/cmd-pure/worktree.test.d.ts +10 -0
  540. package/dist/__tests__/cmd-pure/worktree.test.d.ts.map +1 -0
  541. package/dist/__tests__/cmd-pure/worktree.test.js +77 -0
  542. package/dist/__tests__/cmd-pure/worktree.test.js.map +1 -0
  543. package/dist/__tests__/command-coverage.test.d.ts +15 -0
  544. package/dist/__tests__/command-coverage.test.d.ts.map +1 -0
  545. package/dist/__tests__/command-coverage.test.js +138 -0
  546. package/dist/__tests__/command-coverage.test.js.map +1 -0
  547. package/dist/__tests__/config-guard.test.d.ts +12 -0
  548. package/dist/__tests__/config-guard.test.d.ts.map +1 -0
  549. package/dist/__tests__/config-guard.test.js +55 -0
  550. package/dist/__tests__/config-guard.test.js.map +1 -0
  551. package/dist/__tests__/config-tdd-shape.test.d.ts +10 -0
  552. package/dist/__tests__/config-tdd-shape.test.d.ts.map +1 -0
  553. package/dist/__tests__/config-tdd-shape.test.js +69 -0
  554. package/dist/__tests__/config-tdd-shape.test.js.map +1 -0
  555. package/dist/__tests__/consistency-check.test.d.ts +5 -0
  556. package/dist/__tests__/consistency-check.test.d.ts.map +1 -0
  557. package/dist/__tests__/consistency-check.test.js +72 -0
  558. package/dist/__tests__/consistency-check.test.js.map +1 -0
  559. package/dist/__tests__/consistency-cli.test.d.ts +5 -0
  560. package/dist/__tests__/consistency-cli.test.d.ts.map +1 -0
  561. package/dist/__tests__/consistency-cli.test.js +116 -0
  562. package/dist/__tests__/consistency-cli.test.js.map +1 -0
  563. package/dist/__tests__/consistency-gate.test.d.ts +5 -0
  564. package/dist/__tests__/consistency-gate.test.d.ts.map +1 -0
  565. package/dist/__tests__/consistency-gate.test.js +57 -0
  566. package/dist/__tests__/consistency-gate.test.js.map +1 -0
  567. package/dist/__tests__/consistency-parse-plan.test.d.ts +5 -0
  568. package/dist/__tests__/consistency-parse-plan.test.d.ts.map +1 -0
  569. package/dist/__tests__/consistency-parse-plan.test.js +66 -0
  570. package/dist/__tests__/consistency-parse-plan.test.js.map +1 -0
  571. package/dist/__tests__/consistency-parse-qa.test.d.ts +5 -0
  572. package/dist/__tests__/consistency-parse-qa.test.d.ts.map +1 -0
  573. package/dist/__tests__/consistency-parse-qa.test.js +50 -0
  574. package/dist/__tests__/consistency-parse-qa.test.js.map +1 -0
  575. package/dist/__tests__/consistency-parse-review.test.d.ts +5 -0
  576. package/dist/__tests__/consistency-parse-review.test.d.ts.map +1 -0
  577. package/dist/__tests__/consistency-parse-review.test.js +61 -0
  578. package/dist/__tests__/consistency-parse-review.test.js.map +1 -0
  579. package/dist/__tests__/consistency-parse-spec.test.d.ts +5 -0
  580. package/dist/__tests__/consistency-parse-spec.test.d.ts.map +1 -0
  581. package/dist/__tests__/consistency-parse-spec.test.js +83 -0
  582. package/dist/__tests__/consistency-parse-spec.test.js.map +1 -0
  583. package/dist/__tests__/consistency-persona-alignment-rule.test.d.ts +13 -0
  584. package/dist/__tests__/consistency-persona-alignment-rule.test.d.ts.map +1 -0
  585. package/dist/__tests__/consistency-persona-alignment-rule.test.js +158 -0
  586. package/dist/__tests__/consistency-persona-alignment-rule.test.js.map +1 -0
  587. package/dist/__tests__/consistency-r6.test.d.ts +15 -0
  588. package/dist/__tests__/consistency-r6.test.d.ts.map +1 -0
  589. package/dist/__tests__/consistency-r6.test.js +126 -0
  590. package/dist/__tests__/consistency-r6.test.js.map +1 -0
  591. package/dist/__tests__/consistency-rules.test.d.ts +6 -0
  592. package/dist/__tests__/consistency-rules.test.d.ts.map +1 -0
  593. package/dist/__tests__/consistency-rules.test.js +420 -0
  594. package/dist/__tests__/consistency-rules.test.js.map +1 -0
  595. package/dist/__tests__/constitution-cli.test.d.ts +5 -0
  596. package/dist/__tests__/constitution-cli.test.d.ts.map +1 -0
  597. package/dist/__tests__/constitution-cli.test.js +102 -0
  598. package/dist/__tests__/constitution-cli.test.js.map +1 -0
  599. package/dist/__tests__/constitution-coverage-force.test.d.ts +11 -0
  600. package/dist/__tests__/constitution-coverage-force.test.d.ts.map +1 -0
  601. package/dist/__tests__/constitution-coverage-force.test.js +101 -0
  602. package/dist/__tests__/constitution-coverage-force.test.js.map +1 -0
  603. package/dist/__tests__/constitution-coverage-gate.test.d.ts +11 -0
  604. package/dist/__tests__/constitution-coverage-gate.test.d.ts.map +1 -0
  605. package/dist/__tests__/constitution-coverage-gate.test.js +94 -0
  606. package/dist/__tests__/constitution-coverage-gate.test.js.map +1 -0
  607. package/dist/__tests__/constitution-match.test.d.ts +5 -0
  608. package/dist/__tests__/constitution-match.test.d.ts.map +1 -0
  609. package/dist/__tests__/constitution-match.test.js +95 -0
  610. package/dist/__tests__/constitution-match.test.js.map +1 -0
  611. package/dist/__tests__/constitution-parse.test.d.ts +5 -0
  612. package/dist/__tests__/constitution-parse.test.d.ts.map +1 -0
  613. package/dist/__tests__/constitution-parse.test.js +134 -0
  614. package/dist/__tests__/constitution-parse.test.js.map +1 -0
  615. package/dist/__tests__/constitution-profile.test.d.ts +9 -0
  616. package/dist/__tests__/constitution-profile.test.d.ts.map +1 -0
  617. package/dist/__tests__/constitution-profile.test.js +105 -0
  618. package/dist/__tests__/constitution-profile.test.js.map +1 -0
  619. package/dist/__tests__/constitution.test.d.ts +2 -0
  620. package/dist/__tests__/constitution.test.d.ts.map +1 -0
  621. package/dist/__tests__/constitution.test.js +86 -0
  622. package/dist/__tests__/constitution.test.js.map +1 -0
  623. package/dist/__tests__/coordination-store.test.d.ts +12 -0
  624. package/dist/__tests__/coordination-store.test.d.ts.map +1 -0
  625. package/dist/__tests__/coordination-store.test.js +119 -0
  626. package/dist/__tests__/coordination-store.test.js.map +1 -0
  627. package/dist/__tests__/cost-tracker.test.d.ts +2 -0
  628. package/dist/__tests__/cost-tracker.test.d.ts.map +1 -0
  629. package/dist/__tests__/cost-tracker.test.js +142 -0
  630. package/dist/__tests__/cost-tracker.test.js.map +1 -0
  631. package/dist/__tests__/create-docs-cli.test.d.ts +15 -0
  632. package/dist/__tests__/create-docs-cli.test.d.ts.map +1 -0
  633. package/dist/__tests__/create-docs-cli.test.js +259 -0
  634. package/dist/__tests__/create-docs-cli.test.js.map +1 -0
  635. package/dist/__tests__/create-docs-frontmatter.test.d.ts +18 -0
  636. package/dist/__tests__/create-docs-frontmatter.test.d.ts.map +1 -0
  637. package/dist/__tests__/create-docs-frontmatter.test.js +106 -0
  638. package/dist/__tests__/create-docs-frontmatter.test.js.map +1 -0
  639. package/dist/__tests__/cycle.test.d.ts +2 -0
  640. package/dist/__tests__/cycle.test.d.ts.map +1 -0
  641. package/dist/__tests__/cycle.test.js +64 -0
  642. package/dist/__tests__/cycle.test.js.map +1 -0
  643. package/dist/__tests__/design-extract.test.d.ts +19 -0
  644. package/dist/__tests__/design-extract.test.d.ts.map +1 -0
  645. package/dist/__tests__/design-extract.test.js +119 -0
  646. package/dist/__tests__/design-extract.test.js.map +1 -0
  647. package/dist/__tests__/design-lint.test.d.ts +16 -0
  648. package/dist/__tests__/design-lint.test.d.ts.map +1 -0
  649. package/dist/__tests__/design-lint.test.js +224 -0
  650. package/dist/__tests__/design-lint.test.js.map +1 -0
  651. package/dist/__tests__/design-scan.test.d.ts +18 -0
  652. package/dist/__tests__/design-scan.test.d.ts.map +1 -0
  653. package/dist/__tests__/design-scan.test.js +165 -0
  654. package/dist/__tests__/design-scan.test.js.map +1 -0
  655. package/dist/__tests__/design-synthesize-prompt.test.d.ts +10 -0
  656. package/dist/__tests__/design-synthesize-prompt.test.d.ts.map +1 -0
  657. package/dist/__tests__/design-synthesize-prompt.test.js +104 -0
  658. package/dist/__tests__/design-synthesize-prompt.test.js.map +1 -0
  659. package/dist/__tests__/design-template.test.d.ts +16 -0
  660. package/dist/__tests__/design-template.test.d.ts.map +1 -0
  661. package/dist/__tests__/design-template.test.js +428 -0
  662. package/dist/__tests__/design-template.test.js.map +1 -0
  663. package/dist/__tests__/design-validate.test.d.ts +14 -0
  664. package/dist/__tests__/design-validate.test.d.ts.map +1 -0
  665. package/dist/__tests__/design-validate.test.js +231 -0
  666. package/dist/__tests__/design-validate.test.js.map +1 -0
  667. package/dist/__tests__/detached-spawn-wrapper.test.d.ts +17 -0
  668. package/dist/__tests__/detached-spawn-wrapper.test.d.ts.map +1 -0
  669. package/dist/__tests__/detached-spawn-wrapper.test.js +160 -0
  670. package/dist/__tests__/detached-spawn-wrapper.test.js.map +1 -0
  671. package/dist/__tests__/dispatch-table.test.d.ts +10 -0
  672. package/dist/__tests__/dispatch-table.test.d.ts.map +1 -0
  673. package/dist/__tests__/dispatch-table.test.js +57 -0
  674. package/dist/__tests__/dispatch-table.test.js.map +1 -0
  675. package/dist/__tests__/dispatch-wrap.test.d.ts +21 -0
  676. package/dist/__tests__/dispatch-wrap.test.d.ts.map +1 -0
  677. package/dist/__tests__/dispatch-wrap.test.js +133 -0
  678. package/dist/__tests__/dispatch-wrap.test.js.map +1 -0
  679. package/dist/__tests__/docs-audit-drift-detection.test.d.ts +10 -0
  680. package/dist/__tests__/docs-audit-drift-detection.test.d.ts.map +1 -0
  681. package/dist/__tests__/docs-audit-drift-detection.test.js +185 -0
  682. package/dist/__tests__/docs-audit-drift-detection.test.js.map +1 -0
  683. package/dist/__tests__/docs-audit-policy.test.d.ts +9 -0
  684. package/dist/__tests__/docs-audit-policy.test.d.ts.map +1 -0
  685. package/dist/__tests__/docs-audit-policy.test.js +121 -0
  686. package/dist/__tests__/docs-audit-policy.test.js.map +1 -0
  687. package/dist/__tests__/docs-features-reader.test.d.ts +10 -0
  688. package/dist/__tests__/docs-features-reader.test.d.ts.map +1 -0
  689. package/dist/__tests__/docs-features-reader.test.js +193 -0
  690. package/dist/__tests__/docs-features-reader.test.js.map +1 -0
  691. package/dist/__tests__/docs-nav-renderer.test.d.ts +11 -0
  692. package/dist/__tests__/docs-nav-renderer.test.d.ts.map +1 -0
  693. package/dist/__tests__/docs-nav-renderer.test.js +119 -0
  694. package/dist/__tests__/docs-nav-renderer.test.js.map +1 -0
  695. package/dist/__tests__/docs-structure-planner.test.d.ts +14 -0
  696. package/dist/__tests__/docs-structure-planner.test.d.ts.map +1 -0
  697. package/dist/__tests__/docs-structure-planner.test.js +234 -0
  698. package/dist/__tests__/docs-structure-planner.test.js.map +1 -0
  699. package/dist/__tests__/duration.test.d.ts +5 -0
  700. package/dist/__tests__/duration.test.d.ts.map +1 -0
  701. package/dist/__tests__/duration.test.js +64 -0
  702. package/dist/__tests__/duration.test.js.map +1 -0
  703. package/dist/__tests__/e2e-pipeline/pr-review-lifecycle.test.d.ts +19 -0
  704. package/dist/__tests__/e2e-pipeline/pr-review-lifecycle.test.d.ts.map +1 -0
  705. package/dist/__tests__/e2e-pipeline/pr-review-lifecycle.test.js +74 -0
  706. package/dist/__tests__/e2e-pipeline/pr-review-lifecycle.test.js.map +1 -0
  707. package/dist/__tests__/e2e-pipeline/roadmap-lifecycle.test.d.ts +18 -0
  708. package/dist/__tests__/e2e-pipeline/roadmap-lifecycle.test.d.ts.map +1 -0
  709. package/dist/__tests__/e2e-pipeline/roadmap-lifecycle.test.js +80 -0
  710. package/dist/__tests__/e2e-pipeline/roadmap-lifecycle.test.js.map +1 -0
  711. package/dist/__tests__/e2e-pipeline/task-lifecycle.test.d.ts +19 -0
  712. package/dist/__tests__/e2e-pipeline/task-lifecycle.test.d.ts.map +1 -0
  713. package/dist/__tests__/e2e-pipeline/task-lifecycle.test.js +86 -0
  714. package/dist/__tests__/e2e-pipeline/task-lifecycle.test.js.map +1 -0
  715. package/dist/__tests__/event-log.test.d.ts +15 -0
  716. package/dist/__tests__/event-log.test.d.ts.map +1 -0
  717. package/dist/__tests__/event-log.test.js +139 -0
  718. package/dist/__tests__/event-log.test.js.map +1 -0
  719. package/dist/__tests__/features-registry-audit.test.d.ts +6 -0
  720. package/dist/__tests__/features-registry-audit.test.d.ts.map +1 -0
  721. package/dist/__tests__/features-registry-audit.test.js +186 -0
  722. package/dist/__tests__/features-registry-audit.test.js.map +1 -0
  723. package/dist/__tests__/file-backend.test.d.ts +2 -0
  724. package/dist/__tests__/file-backend.test.d.ts.map +1 -0
  725. package/dist/__tests__/file-backend.test.js +222 -0
  726. package/dist/__tests__/file-backend.test.js.map +1 -0
  727. package/dist/__tests__/fixtures/pr-review-audit-fixer/verified-clean/target.d.ts +2 -0
  728. package/dist/__tests__/fixtures/pr-review-audit-fixer/verified-clean/target.d.ts.map +1 -0
  729. package/dist/__tests__/fixtures/pr-review-audit-fixer/verified-clean/target.js +6 -0
  730. package/dist/__tests__/fixtures/pr-review-audit-fixer/verified-clean/target.js.map +1 -0
  731. package/dist/__tests__/fixtures/validate-evidence/other-file.d.ts +4 -0
  732. package/dist/__tests__/fixtures/validate-evidence/other-file.d.ts.map +1 -0
  733. package/dist/__tests__/fixtures/validate-evidence/other-file.js +8 -0
  734. package/dist/__tests__/fixtures/validate-evidence/other-file.js.map +1 -0
  735. package/dist/__tests__/fixtures/validate-evidence/target-file.d.ts +4 -0
  736. package/dist/__tests__/fixtures/validate-evidence/target-file.d.ts.map +1 -0
  737. package/dist/__tests__/fixtures/validate-evidence/target-file.js +23 -0
  738. package/dist/__tests__/fixtures/validate-evidence/target-file.js.map +1 -0
  739. package/dist/__tests__/gate-cache.test.d.ts +14 -0
  740. package/dist/__tests__/gate-cache.test.d.ts.map +1 -0
  741. package/dist/__tests__/gate-cache.test.js +148 -0
  742. package/dist/__tests__/gate-cache.test.js.map +1 -0
  743. package/dist/__tests__/gate-check-cli.test.d.ts +11 -0
  744. package/dist/__tests__/gate-check-cli.test.d.ts.map +1 -0
  745. package/dist/__tests__/gate-check-cli.test.js +199 -0
  746. package/dist/__tests__/gate-check-cli.test.js.map +1 -0
  747. package/dist/__tests__/gate-e2e.test.d.ts +17 -0
  748. package/dist/__tests__/gate-e2e.test.d.ts.map +1 -0
  749. package/dist/__tests__/gate-e2e.test.js +110 -0
  750. package/dist/__tests__/gate-e2e.test.js.map +1 -0
  751. package/dist/__tests__/gate-force-override.test.d.ts +16 -0
  752. package/dist/__tests__/gate-force-override.test.d.ts.map +1 -0
  753. package/dist/__tests__/gate-force-override.test.js +139 -0
  754. package/dist/__tests__/gate-force-override.test.js.map +1 -0
  755. package/dist/__tests__/gate-gates.test.d.ts +5 -0
  756. package/dist/__tests__/gate-gates.test.d.ts.map +1 -0
  757. package/dist/__tests__/gate-gates.test.js +222 -0
  758. package/dist/__tests__/gate-gates.test.js.map +1 -0
  759. package/dist/__tests__/gate-perf.test.d.ts +15 -0
  760. package/dist/__tests__/gate-perf.test.d.ts.map +1 -0
  761. package/dist/__tests__/gate-perf.test.js +75 -0
  762. package/dist/__tests__/gate-perf.test.js.map +1 -0
  763. package/dist/__tests__/gate-persona-alignment.test.d.ts +16 -0
  764. package/dist/__tests__/gate-persona-alignment.test.d.ts.map +1 -0
  765. package/dist/__tests__/gate-persona-alignment.test.js +241 -0
  766. package/dist/__tests__/gate-persona-alignment.test.js.map +1 -0
  767. package/dist/__tests__/gate-registry.test.d.ts +8 -0
  768. package/dist/__tests__/gate-registry.test.d.ts.map +1 -0
  769. package/dist/__tests__/gate-registry.test.js +176 -0
  770. package/dist/__tests__/gate-registry.test.js.map +1 -0
  771. package/dist/__tests__/gate-route-preview.test.d.ts +13 -0
  772. package/dist/__tests__/gate-route-preview.test.d.ts.map +1 -0
  773. package/dist/__tests__/gate-route-preview.test.js +169 -0
  774. package/dist/__tests__/gate-route-preview.test.js.map +1 -0
  775. package/dist/__tests__/gitignore-drift.test.d.ts +14 -0
  776. package/dist/__tests__/gitignore-drift.test.d.ts.map +1 -0
  777. package/dist/__tests__/gitignore-drift.test.js +138 -0
  778. package/dist/__tests__/gitignore-drift.test.js.map +1 -0
  779. package/dist/__tests__/gitignore-upgrade.test.d.ts +15 -0
  780. package/dist/__tests__/gitignore-upgrade.test.d.ts.map +1 -0
  781. package/dist/__tests__/gitignore-upgrade.test.js +208 -0
  782. package/dist/__tests__/gitignore-upgrade.test.js.map +1 -0
  783. package/dist/__tests__/host-detect-all-runtimes.test.d.ts +14 -0
  784. package/dist/__tests__/host-detect-all-runtimes.test.d.ts.map +1 -0
  785. package/dist/__tests__/host-detect-all-runtimes.test.js +220 -0
  786. package/dist/__tests__/host-detect-all-runtimes.test.js.map +1 -0
  787. package/dist/__tests__/host-detect.test.d.ts +2 -0
  788. package/dist/__tests__/host-detect.test.d.ts.map +1 -0
  789. package/dist/__tests__/host-detect.test.js +554 -0
  790. package/dist/__tests__/host-detect.test.js.map +1 -0
  791. package/dist/__tests__/init-bootstrap-chain.test.d.ts +12 -0
  792. package/dist/__tests__/init-bootstrap-chain.test.d.ts.map +1 -0
  793. package/dist/__tests__/init-bootstrap-chain.test.js +101 -0
  794. package/dist/__tests__/init-bootstrap-chain.test.js.map +1 -0
  795. package/dist/__tests__/init-flag-parser.test.d.ts +15 -0
  796. package/dist/__tests__/init-flag-parser.test.d.ts.map +1 -0
  797. package/dist/__tests__/init-flag-parser.test.js +152 -0
  798. package/dist/__tests__/init-flag-parser.test.js.map +1 -0
  799. package/dist/__tests__/init-hints.test.d.ts +20 -0
  800. package/dist/__tests__/init-hints.test.d.ts.map +1 -0
  801. package/dist/__tests__/init-hints.test.js +147 -0
  802. package/dist/__tests__/init-hints.test.js.map +1 -0
  803. package/dist/__tests__/init-non-tty-class-a.test.d.ts +14 -0
  804. package/dist/__tests__/init-non-tty-class-a.test.d.ts.map +1 -0
  805. package/dist/__tests__/init-non-tty-class-a.test.js +141 -0
  806. package/dist/__tests__/init-non-tty-class-a.test.js.map +1 -0
  807. package/dist/__tests__/init-seeds-stub.test.d.ts +11 -0
  808. package/dist/__tests__/init-seeds-stub.test.d.ts.map +1 -0
  809. package/dist/__tests__/init-seeds-stub.test.js +89 -0
  810. package/dist/__tests__/init-seeds-stub.test.js.map +1 -0
  811. package/dist/__tests__/init-upgrade-drift.test.d.ts +16 -0
  812. package/dist/__tests__/init-upgrade-drift.test.d.ts.map +1 -0
  813. package/dist/__tests__/init-upgrade-drift.test.js +136 -0
  814. package/dist/__tests__/init-upgrade-drift.test.js.map +1 -0
  815. package/dist/__tests__/install-no-yaml-warnings.test.d.ts +25 -0
  816. package/dist/__tests__/install-no-yaml-warnings.test.d.ts.map +1 -0
  817. package/dist/__tests__/install-no-yaml-warnings.test.js +89 -0
  818. package/dist/__tests__/install-no-yaml-warnings.test.js.map +1 -0
  819. package/dist/__tests__/install-pipeline-traversal.test.d.ts +7 -0
  820. package/dist/__tests__/install-pipeline-traversal.test.d.ts.map +1 -0
  821. package/dist/__tests__/install-pipeline-traversal.test.js +62 -0
  822. package/dist/__tests__/install-pipeline-traversal.test.js.map +1 -0
  823. package/dist/__tests__/install-pipeline.test.d.ts +11 -0
  824. package/dist/__tests__/install-pipeline.test.d.ts.map +1 -0
  825. package/dist/__tests__/install-pipeline.test.js +131 -0
  826. package/dist/__tests__/install-pipeline.test.js.map +1 -0
  827. package/dist/__tests__/integration/helpers/make-fixture-project.d.ts +59 -0
  828. package/dist/__tests__/integration/helpers/make-fixture-project.d.ts.map +1 -0
  829. package/dist/__tests__/integration/helpers/make-fixture-project.js +130 -0
  830. package/dist/__tests__/integration/helpers/make-fixture-project.js.map +1 -0
  831. package/dist/__tests__/integration/helpers/run-cli.d.ts +40 -0
  832. package/dist/__tests__/integration/helpers/run-cli.d.ts.map +1 -0
  833. package/dist/__tests__/integration/helpers/run-cli.js +61 -0
  834. package/dist/__tests__/integration/helpers/run-cli.js.map +1 -0
  835. package/dist/__tests__/integration/smoke-author-skill.test.d.ts +15 -0
  836. package/dist/__tests__/integration/smoke-author-skill.test.d.ts.map +1 -0
  837. package/dist/__tests__/integration/smoke-author-skill.test.js +86 -0
  838. package/dist/__tests__/integration/smoke-author-skill.test.js.map +1 -0
  839. package/dist/__tests__/integration/smoke-bootstrap.test.d.ts +12 -0
  840. package/dist/__tests__/integration/smoke-bootstrap.test.d.ts.map +1 -0
  841. package/dist/__tests__/integration/smoke-bootstrap.test.js +68 -0
  842. package/dist/__tests__/integration/smoke-bootstrap.test.js.map +1 -0
  843. package/dist/__tests__/integration/smoke-coverage-check.test.d.ts +9 -0
  844. package/dist/__tests__/integration/smoke-coverage-check.test.d.ts.map +1 -0
  845. package/dist/__tests__/integration/smoke-coverage-check.test.js +152 -0
  846. package/dist/__tests__/integration/smoke-coverage-check.test.js.map +1 -0
  847. package/dist/__tests__/integration/smoke-create-docs.test.d.ts +14 -0
  848. package/dist/__tests__/integration/smoke-create-docs.test.d.ts.map +1 -0
  849. package/dist/__tests__/integration/smoke-create-docs.test.js +142 -0
  850. package/dist/__tests__/integration/smoke-create-docs.test.js.map +1 -0
  851. package/dist/__tests__/integration/smoke-design-lint.test.d.ts +11 -0
  852. package/dist/__tests__/integration/smoke-design-lint.test.d.ts.map +1 -0
  853. package/dist/__tests__/integration/smoke-design-lint.test.js +46 -0
  854. package/dist/__tests__/integration/smoke-design-lint.test.js.map +1 -0
  855. package/dist/__tests__/integration/smoke-design-scan.test.d.ts +11 -0
  856. package/dist/__tests__/integration/smoke-design-scan.test.d.ts.map +1 -0
  857. package/dist/__tests__/integration/smoke-design-scan.test.js +41 -0
  858. package/dist/__tests__/integration/smoke-design-scan.test.js.map +1 -0
  859. package/dist/__tests__/integration/smoke-design-synthesize.test.d.ts +23 -0
  860. package/dist/__tests__/integration/smoke-design-synthesize.test.d.ts.map +1 -0
  861. package/dist/__tests__/integration/smoke-design-synthesize.test.js +232 -0
  862. package/dist/__tests__/integration/smoke-design-synthesize.test.js.map +1 -0
  863. package/dist/__tests__/integration/smoke-design-template.test.d.ts +23 -0
  864. package/dist/__tests__/integration/smoke-design-template.test.d.ts.map +1 -0
  865. package/dist/__tests__/integration/smoke-design-template.test.js +203 -0
  866. package/dist/__tests__/integration/smoke-design-template.test.js.map +1 -0
  867. package/dist/__tests__/integration/smoke-design-validate.test.d.ts +12 -0
  868. package/dist/__tests__/integration/smoke-design-validate.test.d.ts.map +1 -0
  869. package/dist/__tests__/integration/smoke-design-validate.test.js +98 -0
  870. package/dist/__tests__/integration/smoke-design-validate.test.js.map +1 -0
  871. package/dist/__tests__/integration/smoke-docs-audit.test.d.ts +5 -0
  872. package/dist/__tests__/integration/smoke-docs-audit.test.d.ts.map +1 -0
  873. package/dist/__tests__/integration/smoke-docs-audit.test.js +28 -0
  874. package/dist/__tests__/integration/smoke-docs-audit.test.js.map +1 -0
  875. package/dist/__tests__/integration/smoke-docs-coherence.test.d.ts +12 -0
  876. package/dist/__tests__/integration/smoke-docs-coherence.test.d.ts.map +1 -0
  877. package/dist/__tests__/integration/smoke-docs-coherence.test.js +176 -0
  878. package/dist/__tests__/integration/smoke-docs-coherence.test.js.map +1 -0
  879. package/dist/__tests__/integration/smoke-effects.test.d.ts +6 -0
  880. package/dist/__tests__/integration/smoke-effects.test.d.ts.map +1 -0
  881. package/dist/__tests__/integration/smoke-effects.test.js +92 -0
  882. package/dist/__tests__/integration/smoke-effects.test.js.map +1 -0
  883. package/dist/__tests__/integration/smoke-features-audit.test.d.ts +6 -0
  884. package/dist/__tests__/integration/smoke-features-audit.test.d.ts.map +1 -0
  885. package/dist/__tests__/integration/smoke-features-audit.test.js +77 -0
  886. package/dist/__tests__/integration/smoke-features-audit.test.js.map +1 -0
  887. package/dist/__tests__/integration/smoke-gate.test.d.ts +6 -0
  888. package/dist/__tests__/integration/smoke-gate.test.d.ts.map +1 -0
  889. package/dist/__tests__/integration/smoke-gate.test.js +120 -0
  890. package/dist/__tests__/integration/smoke-gate.test.js.map +1 -0
  891. package/dist/__tests__/integration/smoke-host.test.d.ts +7 -0
  892. package/dist/__tests__/integration/smoke-host.test.d.ts.map +1 -0
  893. package/dist/__tests__/integration/smoke-host.test.js +230 -0
  894. package/dist/__tests__/integration/smoke-host.test.js.map +1 -0
  895. package/dist/__tests__/integration/smoke-personas.test.d.ts +14 -0
  896. package/dist/__tests__/integration/smoke-personas.test.d.ts.map +1 -0
  897. package/dist/__tests__/integration/smoke-personas.test.js +87 -0
  898. package/dist/__tests__/integration/smoke-personas.test.js.map +1 -0
  899. package/dist/__tests__/integration/smoke-pr-review-audit-fixer.test.d.ts +12 -0
  900. package/dist/__tests__/integration/smoke-pr-review-audit-fixer.test.d.ts.map +1 -0
  901. package/dist/__tests__/integration/smoke-pr-review-audit-fixer.test.js +422 -0
  902. package/dist/__tests__/integration/smoke-pr-review-audit-fixer.test.js.map +1 -0
  903. package/dist/__tests__/integration/smoke-pr-review.test.d.ts +11 -0
  904. package/dist/__tests__/integration/smoke-pr-review.test.d.ts.map +1 -0
  905. package/dist/__tests__/integration/smoke-pr-review.test.js +105 -0
  906. package/dist/__tests__/integration/smoke-pr-review.test.js.map +1 -0
  907. package/dist/__tests__/integration/smoke-product-context.test.d.ts +11 -0
  908. package/dist/__tests__/integration/smoke-product-context.test.d.ts.map +1 -0
  909. package/dist/__tests__/integration/smoke-product-context.test.js +64 -0
  910. package/dist/__tests__/integration/smoke-product-context.test.js.map +1 -0
  911. package/dist/__tests__/integration/smoke-profile.test.d.ts +6 -0
  912. package/dist/__tests__/integration/smoke-profile.test.d.ts.map +1 -0
  913. package/dist/__tests__/integration/smoke-profile.test.js +74 -0
  914. package/dist/__tests__/integration/smoke-profile.test.js.map +1 -0
  915. package/dist/__tests__/integration/smoke-roadmap.test.d.ts +6 -0
  916. package/dist/__tests__/integration/smoke-roadmap.test.d.ts.map +1 -0
  917. package/dist/__tests__/integration/smoke-roadmap.test.js +89 -0
  918. package/dist/__tests__/integration/smoke-roadmap.test.js.map +1 -0
  919. package/dist/__tests__/integration/smoke-route.test.d.ts +8 -0
  920. package/dist/__tests__/integration/smoke-route.test.d.ts.map +1 -0
  921. package/dist/__tests__/integration/smoke-route.test.js +97 -0
  922. package/dist/__tests__/integration/smoke-route.test.js.map +1 -0
  923. package/dist/__tests__/integration/smoke-seed.test.d.ts +10 -0
  924. package/dist/__tests__/integration/smoke-seed.test.d.ts.map +1 -0
  925. package/dist/__tests__/integration/smoke-seed.test.js +50 -0
  926. package/dist/__tests__/integration/smoke-seed.test.js.map +1 -0
  927. package/dist/__tests__/integration/smoke-standards.test.d.ts +12 -0
  928. package/dist/__tests__/integration/smoke-standards.test.d.ts.map +1 -0
  929. package/dist/__tests__/integration/smoke-standards.test.js +95 -0
  930. package/dist/__tests__/integration/smoke-standards.test.js.map +1 -0
  931. package/dist/__tests__/integration/smoke-statusline.test.d.ts +13 -0
  932. package/dist/__tests__/integration/smoke-statusline.test.d.ts.map +1 -0
  933. package/dist/__tests__/integration/smoke-statusline.test.js +61 -0
  934. package/dist/__tests__/integration/smoke-statusline.test.js.map +1 -0
  935. package/dist/__tests__/integration/smoke-task.test.d.ts +11 -0
  936. package/dist/__tests__/integration/smoke-task.test.d.ts.map +1 -0
  937. package/dist/__tests__/integration/smoke-task.test.js +228 -0
  938. package/dist/__tests__/integration/smoke-task.test.js.map +1 -0
  939. package/dist/__tests__/integration/smoke-taste-infer.test.d.ts +17 -0
  940. package/dist/__tests__/integration/smoke-taste-infer.test.d.ts.map +1 -0
  941. package/dist/__tests__/integration/smoke-taste-infer.test.js +98 -0
  942. package/dist/__tests__/integration/smoke-taste-infer.test.js.map +1 -0
  943. package/dist/__tests__/integration/smoke-team.test.d.ts +6 -0
  944. package/dist/__tests__/integration/smoke-team.test.d.ts.map +1 -0
  945. package/dist/__tests__/integration/smoke-team.test.js +61 -0
  946. package/dist/__tests__/integration/smoke-team.test.js.map +1 -0
  947. package/dist/__tests__/integration/smoke-terminal.test.d.ts +15 -0
  948. package/dist/__tests__/integration/smoke-terminal.test.d.ts.map +1 -0
  949. package/dist/__tests__/integration/smoke-terminal.test.js +127 -0
  950. package/dist/__tests__/integration/smoke-terminal.test.js.map +1 -0
  951. package/dist/__tests__/integration/smoke-tokens.test.d.ts +6 -0
  952. package/dist/__tests__/integration/smoke-tokens.test.d.ts.map +1 -0
  953. package/dist/__tests__/integration/smoke-tokens.test.js +92 -0
  954. package/dist/__tests__/integration/smoke-tokens.test.js.map +1 -0
  955. package/dist/__tests__/integration/smoke-uninstall.test.d.ts +8 -0
  956. package/dist/__tests__/integration/smoke-uninstall.test.d.ts.map +1 -0
  957. package/dist/__tests__/integration/smoke-uninstall.test.js +58 -0
  958. package/dist/__tests__/integration/smoke-uninstall.test.js.map +1 -0
  959. package/dist/__tests__/integration/smoke-validate-evidence.test.d.ts +8 -0
  960. package/dist/__tests__/integration/smoke-validate-evidence.test.d.ts.map +1 -0
  961. package/dist/__tests__/integration/smoke-validate-evidence.test.js +72 -0
  962. package/dist/__tests__/integration/smoke-validate-evidence.test.js.map +1 -0
  963. package/dist/__tests__/integration/smoke-variant-gallery.test.d.ts +12 -0
  964. package/dist/__tests__/integration/smoke-variant-gallery.test.d.ts.map +1 -0
  965. package/dist/__tests__/integration/smoke-variant-gallery.test.js +60 -0
  966. package/dist/__tests__/integration/smoke-variant-gallery.test.js.map +1 -0
  967. package/dist/__tests__/integration/smoke-variant-pick.test.d.ts +12 -0
  968. package/dist/__tests__/integration/smoke-variant-pick.test.d.ts.map +1 -0
  969. package/dist/__tests__/integration/smoke-variant-pick.test.js +57 -0
  970. package/dist/__tests__/integration/smoke-variant-pick.test.js.map +1 -0
  971. package/dist/__tests__/integration/smoke-variant-pool.test.d.ts +10 -0
  972. package/dist/__tests__/integration/smoke-variant-pool.test.d.ts.map +1 -0
  973. package/dist/__tests__/integration/smoke-variant-pool.test.js +33 -0
  974. package/dist/__tests__/integration/smoke-variant-pool.test.js.map +1 -0
  975. package/dist/__tests__/integration/smoke-wfrun.test.d.ts +9 -0
  976. package/dist/__tests__/integration/smoke-wfrun.test.d.ts.map +1 -0
  977. package/dist/__tests__/integration/smoke-wfrun.test.js +111 -0
  978. package/dist/__tests__/integration/smoke-wfrun.test.js.map +1 -0
  979. package/dist/__tests__/integration/smoke-worktree-install.test.d.ts +7 -0
  980. package/dist/__tests__/integration/smoke-worktree-install.test.d.ts.map +1 -0
  981. package/dist/__tests__/integration/smoke-worktree-install.test.js +40 -0
  982. package/dist/__tests__/integration/smoke-worktree-install.test.js.map +1 -0
  983. package/dist/__tests__/integration/smoke-worktree.test.d.ts +6 -0
  984. package/dist/__tests__/integration/smoke-worktree.test.d.ts.map +1 -0
  985. package/dist/__tests__/integration/smoke-worktree.test.js +59 -0
  986. package/dist/__tests__/integration/smoke-worktree.test.js.map +1 -0
  987. package/dist/__tests__/lifecycle-shipped-pending-merge.test.d.ts +15 -0
  988. package/dist/__tests__/lifecycle-shipped-pending-merge.test.d.ts.map +1 -0
  989. package/dist/__tests__/lifecycle-shipped-pending-merge.test.js +150 -0
  990. package/dist/__tests__/lifecycle-shipped-pending-merge.test.js.map +1 -0
  991. package/dist/__tests__/lock-proper-lockfile.test.d.ts +9 -0
  992. package/dist/__tests__/lock-proper-lockfile.test.d.ts.map +1 -0
  993. package/dist/__tests__/lock-proper-lockfile.test.js +121 -0
  994. package/dist/__tests__/lock-proper-lockfile.test.js.map +1 -0
  995. package/dist/__tests__/manifest.test.d.ts +2 -0
  996. package/dist/__tests__/manifest.test.d.ts.map +1 -0
  997. package/dist/__tests__/manifest.test.js +32 -0
  998. package/dist/__tests__/manifest.test.js.map +1 -0
  999. package/dist/__tests__/milestone-rollup.test.d.ts +7 -0
  1000. package/dist/__tests__/milestone-rollup.test.d.ts.map +1 -0
  1001. package/dist/__tests__/milestone-rollup.test.js +175 -0
  1002. package/dist/__tests__/milestone-rollup.test.js.map +1 -0
  1003. package/dist/__tests__/milestone-schema-focus-fields.test.d.ts +14 -0
  1004. package/dist/__tests__/milestone-schema-focus-fields.test.d.ts.map +1 -0
  1005. package/dist/__tests__/milestone-schema-focus-fields.test.js +159 -0
  1006. package/dist/__tests__/milestone-schema-focus-fields.test.js.map +1 -0
  1007. package/dist/__tests__/null-backend.test.d.ts +2 -0
  1008. package/dist/__tests__/null-backend.test.d.ts.map +1 -0
  1009. package/dist/__tests__/null-backend.test.js +54 -0
  1010. package/dist/__tests__/null-backend.test.js.map +1 -0
  1011. package/dist/__tests__/output-style-helpers.test.d.ts +11 -0
  1012. package/dist/__tests__/output-style-helpers.test.d.ts.map +1 -0
  1013. package/dist/__tests__/output-style-helpers.test.js +173 -0
  1014. package/dist/__tests__/output-style-helpers.test.js.map +1 -0
  1015. package/dist/__tests__/outputs-guard.test.d.ts +16 -0
  1016. package/dist/__tests__/outputs-guard.test.d.ts.map +1 -0
  1017. package/dist/__tests__/outputs-guard.test.js +143 -0
  1018. package/dist/__tests__/outputs-guard.test.js.map +1 -0
  1019. package/dist/__tests__/parse-acceptance-criteria.test.d.ts +7 -0
  1020. package/dist/__tests__/parse-acceptance-criteria.test.d.ts.map +1 -0
  1021. package/dist/__tests__/parse-acceptance-criteria.test.js +135 -0
  1022. package/dist/__tests__/parse-acceptance-criteria.test.js.map +1 -0
  1023. package/dist/__tests__/personas-cli.test.d.ts +12 -0
  1024. package/dist/__tests__/personas-cli.test.d.ts.map +1 -0
  1025. package/dist/__tests__/personas-cli.test.js +235 -0
  1026. package/dist/__tests__/personas-cli.test.js.map +1 -0
  1027. package/dist/__tests__/personas-frontmatter.test.d.ts +24 -0
  1028. package/dist/__tests__/personas-frontmatter.test.d.ts.map +1 -0
  1029. package/dist/__tests__/personas-frontmatter.test.js +108 -0
  1030. package/dist/__tests__/personas-frontmatter.test.js.map +1 -0
  1031. package/dist/__tests__/personas-role-scan.test.d.ts +14 -0
  1032. package/dist/__tests__/personas-role-scan.test.d.ts.map +1 -0
  1033. package/dist/__tests__/personas-role-scan.test.js +134 -0
  1034. package/dist/__tests__/personas-role-scan.test.js.map +1 -0
  1035. package/dist/__tests__/personas-schema-roundtrip.test.d.ts +31 -0
  1036. package/dist/__tests__/personas-schema-roundtrip.test.d.ts.map +1 -0
  1037. package/dist/__tests__/personas-schema-roundtrip.test.js +235 -0
  1038. package/dist/__tests__/personas-schema-roundtrip.test.js.map +1 -0
  1039. package/dist/__tests__/personas-sidecar.test.d.ts +19 -0
  1040. package/dist/__tests__/personas-sidecar.test.d.ts.map +1 -0
  1041. package/dist/__tests__/personas-sidecar.test.js +285 -0
  1042. package/dist/__tests__/personas-sidecar.test.js.map +1 -0
  1043. package/dist/__tests__/plan-approval.test.d.ts +10 -0
  1044. package/dist/__tests__/plan-approval.test.d.ts.map +1 -0
  1045. package/dist/__tests__/plan-approval.test.js +161 -0
  1046. package/dist/__tests__/plan-approval.test.js.map +1 -0
  1047. package/dist/__tests__/plan-mode-e2e.test.d.ts +20 -0
  1048. package/dist/__tests__/plan-mode-e2e.test.d.ts.map +1 -0
  1049. package/dist/__tests__/plan-mode-e2e.test.js +118 -0
  1050. package/dist/__tests__/plan-mode-e2e.test.js.map +1 -0
  1051. package/dist/__tests__/planner-docs-impact.test.d.ts +6 -0
  1052. package/dist/__tests__/planner-docs-impact.test.d.ts.map +1 -0
  1053. package/dist/__tests__/planner-docs-impact.test.js +44 -0
  1054. package/dist/__tests__/planner-docs-impact.test.js.map +1 -0
  1055. package/dist/__tests__/planner-persona-tier-declaration.test.d.ts +15 -0
  1056. package/dist/__tests__/planner-persona-tier-declaration.test.d.ts.map +1 -0
  1057. package/dist/__tests__/planner-persona-tier-declaration.test.js +60 -0
  1058. package/dist/__tests__/planner-persona-tier-declaration.test.js.map +1 -0
  1059. package/dist/__tests__/plugin-build.test.d.ts +16 -0
  1060. package/dist/__tests__/plugin-build.test.d.ts.map +1 -0
  1061. package/dist/__tests__/plugin-build.test.js +119 -0
  1062. package/dist/__tests__/plugin-build.test.js.map +1 -0
  1063. package/dist/__tests__/plugin-manifest-schema.test.d.ts +18 -0
  1064. package/dist/__tests__/plugin-manifest-schema.test.d.ts.map +1 -0
  1065. package/dist/__tests__/plugin-manifest-schema.test.js +123 -0
  1066. package/dist/__tests__/plugin-manifest-schema.test.js.map +1 -0
  1067. package/dist/__tests__/post-merge-sweep.test.d.ts +23 -0
  1068. package/dist/__tests__/post-merge-sweep.test.d.ts.map +1 -0
  1069. package/dist/__tests__/post-merge-sweep.test.js +342 -0
  1070. package/dist/__tests__/post-merge-sweep.test.js.map +1 -0
  1071. package/dist/__tests__/pr-review-audit-fixer.test.d.ts +11 -0
  1072. package/dist/__tests__/pr-review-audit-fixer.test.d.ts.map +1 -0
  1073. package/dist/__tests__/pr-review-audit-fixer.test.js +354 -0
  1074. package/dist/__tests__/pr-review-audit-fixer.test.js.map +1 -0
  1075. package/dist/__tests__/pr-review-authorship-migration.test.d.ts +13 -0
  1076. package/dist/__tests__/pr-review-authorship-migration.test.d.ts.map +1 -0
  1077. package/dist/__tests__/pr-review-authorship-migration.test.js +237 -0
  1078. package/dist/__tests__/pr-review-authorship-migration.test.js.map +1 -0
  1079. package/dist/__tests__/pr-review-close-round-cleanup.test.d.ts +15 -0
  1080. package/dist/__tests__/pr-review-close-round-cleanup.test.d.ts.map +1 -0
  1081. package/dist/__tests__/pr-review-close-round-cleanup.test.js +191 -0
  1082. package/dist/__tests__/pr-review-close-round-cleanup.test.js.map +1 -0
  1083. package/dist/__tests__/pr-review-detect-authorship.test.d.ts +21 -0
  1084. package/dist/__tests__/pr-review-detect-authorship.test.d.ts.map +1 -0
  1085. package/dist/__tests__/pr-review-detect-authorship.test.js +270 -0
  1086. package/dist/__tests__/pr-review-detect-authorship.test.js.map +1 -0
  1087. package/dist/__tests__/product-context.test.d.ts +14 -0
  1088. package/dist/__tests__/product-context.test.d.ts.map +1 -0
  1089. package/dist/__tests__/product-context.test.js +117 -0
  1090. package/dist/__tests__/product-context.test.js.map +1 -0
  1091. package/dist/__tests__/profile-cli.test.d.ts +5 -0
  1092. package/dist/__tests__/profile-cli.test.d.ts.map +1 -0
  1093. package/dist/__tests__/profile-cli.test.js +134 -0
  1094. package/dist/__tests__/profile-cli.test.js.map +1 -0
  1095. package/dist/__tests__/profile-parse.test.d.ts +5 -0
  1096. package/dist/__tests__/profile-parse.test.d.ts.map +1 -0
  1097. package/dist/__tests__/profile-parse.test.js +151 -0
  1098. package/dist/__tests__/profile-parse.test.js.map +1 -0
  1099. package/dist/__tests__/profile-resolve.test.d.ts +5 -0
  1100. package/dist/__tests__/profile-resolve.test.d.ts.map +1 -0
  1101. package/dist/__tests__/profile-resolve.test.js +181 -0
  1102. package/dist/__tests__/profile-resolve.test.js.map +1 -0
  1103. package/dist/__tests__/remote-detection.test.d.ts +9 -0
  1104. package/dist/__tests__/remote-detection.test.d.ts.map +1 -0
  1105. package/dist/__tests__/remote-detection.test.js +86 -0
  1106. package/dist/__tests__/remote-detection.test.js.map +1 -0
  1107. package/dist/__tests__/risk-check.test.d.ts +2 -0
  1108. package/dist/__tests__/risk-check.test.d.ts.map +1 -0
  1109. package/dist/__tests__/risk-check.test.js +85 -0
  1110. package/dist/__tests__/risk-check.test.js.map +1 -0
  1111. package/dist/__tests__/roadmap-delete-phase-files.test.d.ts +18 -0
  1112. package/dist/__tests__/roadmap-delete-phase-files.test.d.ts.map +1 -0
  1113. package/dist/__tests__/roadmap-delete-phase-files.test.js +122 -0
  1114. package/dist/__tests__/roadmap-delete-phase-files.test.js.map +1 -0
  1115. package/dist/__tests__/roadmap-empty-milestone-lookup.test.d.ts +29 -0
  1116. package/dist/__tests__/roadmap-empty-milestone-lookup.test.d.ts.map +1 -0
  1117. package/dist/__tests__/roadmap-empty-milestone-lookup.test.js +186 -0
  1118. package/dist/__tests__/roadmap-empty-milestone-lookup.test.js.map +1 -0
  1119. package/dist/__tests__/roadmap-orphan-block.test.d.ts +8 -0
  1120. package/dist/__tests__/roadmap-orphan-block.test.d.ts.map +1 -0
  1121. package/dist/__tests__/roadmap-orphan-block.test.js +114 -0
  1122. package/dist/__tests__/roadmap-orphan-block.test.js.map +1 -0
  1123. package/dist/__tests__/roadmap-phases-io.test.d.ts +15 -0
  1124. package/dist/__tests__/roadmap-phases-io.test.d.ts.map +1 -0
  1125. package/dist/__tests__/roadmap-phases-io.test.js +235 -0
  1126. package/dist/__tests__/roadmap-phases-io.test.js.map +1 -0
  1127. package/dist/__tests__/roadmap-validate-refs.test.d.ts +9 -0
  1128. package/dist/__tests__/roadmap-validate-refs.test.d.ts.map +1 -0
  1129. package/dist/__tests__/roadmap-validate-refs.test.js +90 -0
  1130. package/dist/__tests__/roadmap-validate-refs.test.js.map +1 -0
  1131. package/dist/__tests__/route-design-skill.test.d.ts +10 -0
  1132. package/dist/__tests__/route-design-skill.test.d.ts.map +1 -0
  1133. package/dist/__tests__/route-design-skill.test.js +61 -0
  1134. package/dist/__tests__/route-design-skill.test.js.map +1 -0
  1135. package/dist/__tests__/route-envelope-builder.test.d.ts +12 -0
  1136. package/dist/__tests__/route-envelope-builder.test.d.ts.map +1 -0
  1137. package/dist/__tests__/route-envelope-builder.test.js +369 -0
  1138. package/dist/__tests__/route-envelope-builder.test.js.map +1 -0
  1139. package/dist/__tests__/route-mockup-skill.test.d.ts +10 -0
  1140. package/dist/__tests__/route-mockup-skill.test.d.ts.map +1 -0
  1141. package/dist/__tests__/route-mockup-skill.test.js +61 -0
  1142. package/dist/__tests__/route-mockup-skill.test.js.map +1 -0
  1143. package/dist/__tests__/route-plan-mode.test.d.ts +9 -0
  1144. package/dist/__tests__/route-plan-mode.test.d.ts.map +1 -0
  1145. package/dist/__tests__/route-plan-mode.test.js +126 -0
  1146. package/dist/__tests__/route-plan-mode.test.js.map +1 -0
  1147. package/dist/__tests__/route-pr-review-skill.test.d.ts +15 -0
  1148. package/dist/__tests__/route-pr-review-skill.test.d.ts.map +1 -0
  1149. package/dist/__tests__/route-pr-review-skill.test.js +132 -0
  1150. package/dist/__tests__/route-pr-review-skill.test.js.map +1 -0
  1151. package/dist/__tests__/route-runtime-override.test.d.ts +18 -0
  1152. package/dist/__tests__/route-runtime-override.test.d.ts.map +1 -0
  1153. package/dist/__tests__/route-runtime-override.test.js +164 -0
  1154. package/dist/__tests__/route-runtime-override.test.js.map +1 -0
  1155. package/dist/__tests__/route-skill-discover.test.d.ts +9 -0
  1156. package/dist/__tests__/route-skill-discover.test.d.ts.map +1 -0
  1157. package/dist/__tests__/route-skill-discover.test.js +163 -0
  1158. package/dist/__tests__/route-skill-discover.test.js.map +1 -0
  1159. package/dist/__tests__/route-trust-boundary.test.d.ts +10 -0
  1160. package/dist/__tests__/route-trust-boundary.test.d.ts.map +1 -0
  1161. package/dist/__tests__/route-trust-boundary.test.js +206 -0
  1162. package/dist/__tests__/route-trust-boundary.test.js.map +1 -0
  1163. package/dist/__tests__/router-cross-runtime-parity.test.d.ts +23 -0
  1164. package/dist/__tests__/router-cross-runtime-parity.test.d.ts.map +1 -0
  1165. package/dist/__tests__/router-cross-runtime-parity.test.js +227 -0
  1166. package/dist/__tests__/router-cross-runtime-parity.test.js.map +1 -0
  1167. package/dist/__tests__/run-cmd-harness.test.d.ts +14 -0
  1168. package/dist/__tests__/run-cmd-harness.test.d.ts.map +1 -0
  1169. package/dist/__tests__/run-cmd-harness.test.js +132 -0
  1170. package/dist/__tests__/run-cmd-harness.test.js.map +1 -0
  1171. package/dist/__tests__/schema-migrate.test.d.ts +8 -0
  1172. package/dist/__tests__/schema-migrate.test.d.ts.map +1 -0
  1173. package/dist/__tests__/schema-migrate.test.js +107 -0
  1174. package/dist/__tests__/schema-migrate.test.js.map +1 -0
  1175. package/dist/__tests__/seed-assign-unassign.test.d.ts +14 -0
  1176. package/dist/__tests__/seed-assign-unassign.test.d.ts.map +1 -0
  1177. package/dist/__tests__/seed-assign-unassign.test.js +188 -0
  1178. package/dist/__tests__/seed-assign-unassign.test.js.map +1 -0
  1179. package/dist/__tests__/seed-cli-lifecycle.test.d.ts +9 -0
  1180. package/dist/__tests__/seed-cli-lifecycle.test.d.ts.map +1 -0
  1181. package/dist/__tests__/seed-cli-lifecycle.test.js +204 -0
  1182. package/dist/__tests__/seed-cli-lifecycle.test.js.map +1 -0
  1183. package/dist/__tests__/seed-validate-cli.test.d.ts +11 -0
  1184. package/dist/__tests__/seed-validate-cli.test.d.ts.map +1 -0
  1185. package/dist/__tests__/seed-validate-cli.test.js +149 -0
  1186. package/dist/__tests__/seed-validate-cli.test.js.map +1 -0
  1187. package/dist/__tests__/seeds-io.test.d.ts +11 -0
  1188. package/dist/__tests__/seeds-io.test.d.ts.map +1 -0
  1189. package/dist/__tests__/seeds-io.test.js +145 -0
  1190. package/dist/__tests__/seeds-io.test.js.map +1 -0
  1191. package/dist/__tests__/seeds-render.test.d.ts +20 -0
  1192. package/dist/__tests__/seeds-render.test.d.ts.map +1 -0
  1193. package/dist/__tests__/seeds-render.test.js +145 -0
  1194. package/dist/__tests__/seeds-render.test.js.map +1 -0
  1195. package/dist/__tests__/seeds-validate.test.d.ts +7 -0
  1196. package/dist/__tests__/seeds-validate.test.d.ts.map +1 -0
  1197. package/dist/__tests__/seeds-validate.test.js +154 -0
  1198. package/dist/__tests__/seeds-validate.test.js.map +1 -0
  1199. package/dist/__tests__/self-stage-wiring.test.d.ts +9 -0
  1200. package/dist/__tests__/self-stage-wiring.test.d.ts.map +1 -0
  1201. package/dist/__tests__/self-stage-wiring.test.js +210 -0
  1202. package/dist/__tests__/self-stage-wiring.test.js.map +1 -0
  1203. package/dist/__tests__/setting-class.test.d.ts +7 -0
  1204. package/dist/__tests__/setting-class.test.d.ts.map +1 -0
  1205. package/dist/__tests__/setting-class.test.js +117 -0
  1206. package/dist/__tests__/setting-class.test.js.map +1 -0
  1207. package/dist/__tests__/share-policy.test.d.ts +15 -0
  1208. package/dist/__tests__/share-policy.test.d.ts.map +1 -0
  1209. package/dist/__tests__/share-policy.test.js +207 -0
  1210. package/dist/__tests__/share-policy.test.js.map +1 -0
  1211. package/dist/__tests__/ship-execute-skill-structure.test.d.ts +15 -0
  1212. package/dist/__tests__/ship-execute-skill-structure.test.d.ts.map +1 -0
  1213. package/dist/__tests__/ship-execute-skill-structure.test.js +92 -0
  1214. package/dist/__tests__/ship-execute-skill-structure.test.js.map +1 -0
  1215. package/dist/__tests__/skill-author-contract.test.d.ts +8 -0
  1216. package/dist/__tests__/skill-author-contract.test.d.ts.map +1 -0
  1217. package/dist/__tests__/skill-author-contract.test.js +86 -0
  1218. package/dist/__tests__/skill-author-contract.test.js.map +1 -0
  1219. package/dist/__tests__/skill-author-scaffold.test.d.ts +12 -0
  1220. package/dist/__tests__/skill-author-scaffold.test.d.ts.map +1 -0
  1221. package/dist/__tests__/skill-author-scaffold.test.js +82 -0
  1222. package/dist/__tests__/skill-author-scaffold.test.js.map +1 -0
  1223. package/dist/__tests__/skill-author-validate.test.d.ts +12 -0
  1224. package/dist/__tests__/skill-author-validate.test.d.ts.map +1 -0
  1225. package/dist/__tests__/skill-author-validate.test.js +156 -0
  1226. package/dist/__tests__/skill-author-validate.test.js.map +1 -0
  1227. package/dist/__tests__/skill-frontmatter-schema.test.d.ts +2 -0
  1228. package/dist/__tests__/skill-frontmatter-schema.test.d.ts.map +1 -0
  1229. package/dist/__tests__/skill-frontmatter-schema.test.js +265 -0
  1230. package/dist/__tests__/skill-frontmatter-schema.test.js.map +1 -0
  1231. package/dist/__tests__/smoke-design-subpaths.test.d.ts +24 -0
  1232. package/dist/__tests__/smoke-design-subpaths.test.d.ts.map +1 -0
  1233. package/dist/__tests__/smoke-design-subpaths.test.js +59 -0
  1234. package/dist/__tests__/smoke-design-subpaths.test.js.map +1 -0
  1235. package/dist/__tests__/standalone-discover-standards.test.d.ts +9 -0
  1236. package/dist/__tests__/standalone-discover-standards.test.d.ts.map +1 -0
  1237. package/dist/__tests__/standalone-discover-standards.test.js +198 -0
  1238. package/dist/__tests__/standalone-discover-standards.test.js.map +1 -0
  1239. package/dist/__tests__/statusline-chips.test.d.ts +10 -0
  1240. package/dist/__tests__/statusline-chips.test.d.ts.map +1 -0
  1241. package/dist/__tests__/statusline-chips.test.js +147 -0
  1242. package/dist/__tests__/statusline-chips.test.js.map +1 -0
  1243. package/dist/__tests__/statusline-install-chip.test.d.ts +12 -0
  1244. package/dist/__tests__/statusline-install-chip.test.d.ts.map +1 -0
  1245. package/dist/__tests__/statusline-install-chip.test.js +122 -0
  1246. package/dist/__tests__/statusline-install-chip.test.js.map +1 -0
  1247. package/dist/__tests__/synthesize-unit.test.d.ts +15 -0
  1248. package/dist/__tests__/synthesize-unit.test.d.ts.map +1 -0
  1249. package/dist/__tests__/synthesize-unit.test.js +138 -0
  1250. package/dist/__tests__/synthesize-unit.test.js.map +1 -0
  1251. package/dist/__tests__/task-close-auto-phase.test.d.ts +13 -0
  1252. package/dist/__tests__/task-close-auto-phase.test.d.ts.map +1 -0
  1253. package/dist/__tests__/task-close-auto-phase.test.js +197 -0
  1254. package/dist/__tests__/task-close-auto-phase.test.js.map +1 -0
  1255. package/dist/__tests__/task-close-merged-closed-not-merged.test.d.ts +19 -0
  1256. package/dist/__tests__/task-close-merged-closed-not-merged.test.d.ts.map +1 -0
  1257. package/dist/__tests__/task-close-merged-closed-not-merged.test.js +177 -0
  1258. package/dist/__tests__/task-close-merged-closed-not-merged.test.js.map +1 -0
  1259. package/dist/__tests__/task-close-merged-pr-mutated.test.d.ts +15 -0
  1260. package/dist/__tests__/task-close-merged-pr-mutated.test.d.ts.map +1 -0
  1261. package/dist/__tests__/task-close-merged-pr-mutated.test.js +210 -0
  1262. package/dist/__tests__/task-close-merged-pr-mutated.test.js.map +1 -0
  1263. package/dist/__tests__/task-close-merged.test.d.ts +17 -0
  1264. package/dist/__tests__/task-close-merged.test.d.ts.map +1 -0
  1265. package/dist/__tests__/task-close-merged.test.js +242 -0
  1266. package/dist/__tests__/task-close-merged.test.js.map +1 -0
  1267. package/dist/__tests__/task-depends-on-cycle.test.d.ts +8 -0
  1268. package/dist/__tests__/task-depends-on-cycle.test.d.ts.map +1 -0
  1269. package/dist/__tests__/task-depends-on-cycle.test.js +62 -0
  1270. package/dist/__tests__/task-depends-on-cycle.test.js.map +1 -0
  1271. package/dist/__tests__/task-execution-mode.test.d.ts +7 -0
  1272. package/dist/__tests__/task-execution-mode.test.d.ts.map +1 -0
  1273. package/dist/__tests__/task-execution-mode.test.js +73 -0
  1274. package/dist/__tests__/task-execution-mode.test.js.map +1 -0
  1275. package/dist/__tests__/task-move.test.d.ts +8 -0
  1276. package/dist/__tests__/task-move.test.d.ts.map +1 -0
  1277. package/dist/__tests__/task-move.test.js +134 -0
  1278. package/dist/__tests__/task-move.test.js.map +1 -0
  1279. package/dist/__tests__/task-prune.test.d.ts +15 -0
  1280. package/dist/__tests__/task-prune.test.d.ts.map +1 -0
  1281. package/dist/__tests__/task-prune.test.js +171 -0
  1282. package/dist/__tests__/task-prune.test.js.map +1 -0
  1283. package/dist/__tests__/task-ref.test.d.ts +2 -0
  1284. package/dist/__tests__/task-ref.test.d.ts.map +1 -0
  1285. package/dist/__tests__/task-ref.test.js +37 -0
  1286. package/dist/__tests__/task-ref.test.js.map +1 -0
  1287. package/dist/__tests__/task-scope-propagation.test.d.ts +8 -0
  1288. package/dist/__tests__/task-scope-propagation.test.d.ts.map +1 -0
  1289. package/dist/__tests__/task-scope-propagation.test.js +174 -0
  1290. package/dist/__tests__/task-scope-propagation.test.js.map +1 -0
  1291. package/dist/__tests__/taste-infer.test.d.ts +13 -0
  1292. package/dist/__tests__/taste-infer.test.d.ts.map +1 -0
  1293. package/dist/__tests__/taste-infer.test.js +640 -0
  1294. package/dist/__tests__/taste-infer.test.js.map +1 -0
  1295. package/dist/__tests__/tdd-iron-law-gate.test.d.ts +10 -0
  1296. package/dist/__tests__/tdd-iron-law-gate.test.d.ts.map +1 -0
  1297. package/dist/__tests__/tdd-iron-law-gate.test.js +207 -0
  1298. package/dist/__tests__/tdd-iron-law-gate.test.js.map +1 -0
  1299. package/dist/__tests__/team-status-liveness.test.d.ts +17 -0
  1300. package/dist/__tests__/team-status-liveness.test.d.ts.map +1 -0
  1301. package/dist/__tests__/team-status-liveness.test.js +127 -0
  1302. package/dist/__tests__/team-status-liveness.test.js.map +1 -0
  1303. package/dist/__tests__/team-status.test.d.ts +13 -0
  1304. package/dist/__tests__/team-status.test.d.ts.map +1 -0
  1305. package/dist/__tests__/team-status.test.js +133 -0
  1306. package/dist/__tests__/team-status.test.js.map +1 -0
  1307. package/dist/__tests__/team-sync.test.d.ts +2 -0
  1308. package/dist/__tests__/team-sync.test.d.ts.map +1 -0
  1309. package/dist/__tests__/team-sync.test.js +292 -0
  1310. package/dist/__tests__/team-sync.test.js.map +1 -0
  1311. package/dist/__tests__/terminal-cli.test.d.ts +9 -0
  1312. package/dist/__tests__/terminal-cli.test.d.ts.map +1 -0
  1313. package/dist/__tests__/terminal-cli.test.js +64 -0
  1314. package/dist/__tests__/terminal-cli.test.js.map +1 -0
  1315. package/dist/__tests__/terminal-socket-client.test.d.ts +8 -0
  1316. package/dist/__tests__/terminal-socket-client.test.d.ts.map +1 -0
  1317. package/dist/__tests__/terminal-socket-client.test.js +130 -0
  1318. package/dist/__tests__/terminal-socket-client.test.js.map +1 -0
  1319. package/dist/__tests__/tokens-record.test.d.ts +12 -0
  1320. package/dist/__tests__/tokens-record.test.d.ts.map +1 -0
  1321. package/dist/__tests__/tokens-record.test.js +136 -0
  1322. package/dist/__tests__/tokens-record.test.js.map +1 -0
  1323. package/dist/__tests__/tokens-state-mirror.test.d.ts +15 -0
  1324. package/dist/__tests__/tokens-state-mirror.test.d.ts.map +1 -0
  1325. package/dist/__tests__/tokens-state-mirror.test.js +190 -0
  1326. package/dist/__tests__/tokens-state-mirror.test.js.map +1 -0
  1327. package/dist/__tests__/tokens-tally.test.d.ts +8 -0
  1328. package/dist/__tests__/tokens-tally.test.d.ts.map +1 -0
  1329. package/dist/__tests__/tokens-tally.test.js +175 -0
  1330. package/dist/__tests__/tokens-tally.test.js.map +1 -0
  1331. package/dist/__tests__/toolchain-detect-path-scoped.test.d.ts +13 -0
  1332. package/dist/__tests__/toolchain-detect-path-scoped.test.d.ts.map +1 -0
  1333. package/dist/__tests__/toolchain-detect-path-scoped.test.js +136 -0
  1334. package/dist/__tests__/toolchain-detect-path-scoped.test.js.map +1 -0
  1335. package/dist/__tests__/transcript.test.d.ts +12 -0
  1336. package/dist/__tests__/transcript.test.d.ts.map +1 -0
  1337. package/dist/__tests__/transcript.test.js +110 -0
  1338. package/dist/__tests__/transcript.test.js.map +1 -0
  1339. package/dist/__tests__/transform-antigravity.test.d.ts +5 -0
  1340. package/dist/__tests__/transform-antigravity.test.d.ts.map +1 -0
  1341. package/dist/__tests__/transform-antigravity.test.js +40 -0
  1342. package/dist/__tests__/transform-antigravity.test.js.map +1 -0
  1343. package/dist/__tests__/transform-augment.test.d.ts +5 -0
  1344. package/dist/__tests__/transform-augment.test.d.ts.map +1 -0
  1345. package/dist/__tests__/transform-augment.test.js +42 -0
  1346. package/dist/__tests__/transform-augment.test.js.map +1 -0
  1347. package/dist/__tests__/transform-claude.test.d.ts +8 -0
  1348. package/dist/__tests__/transform-claude.test.d.ts.map +1 -0
  1349. package/dist/__tests__/transform-claude.test.js +72 -0
  1350. package/dist/__tests__/transform-claude.test.js.map +1 -0
  1351. package/dist/__tests__/transform-cline.test.d.ts +5 -0
  1352. package/dist/__tests__/transform-cline.test.d.ts.map +1 -0
  1353. package/dist/__tests__/transform-cline.test.js +40 -0
  1354. package/dist/__tests__/transform-cline.test.js.map +1 -0
  1355. package/dist/__tests__/transform-codebuddy.test.d.ts +5 -0
  1356. package/dist/__tests__/transform-codebuddy.test.d.ts.map +1 -0
  1357. package/dist/__tests__/transform-codebuddy.test.js +52 -0
  1358. package/dist/__tests__/transform-codebuddy.test.js.map +1 -0
  1359. package/dist/__tests__/transform-codex.test.d.ts +5 -0
  1360. package/dist/__tests__/transform-codex.test.d.ts.map +1 -0
  1361. package/dist/__tests__/transform-codex.test.js +76 -0
  1362. package/dist/__tests__/transform-codex.test.js.map +1 -0
  1363. package/dist/__tests__/transform-copilot.test.d.ts +5 -0
  1364. package/dist/__tests__/transform-copilot.test.d.ts.map +1 -0
  1365. package/dist/__tests__/transform-copilot.test.js +41 -0
  1366. package/dist/__tests__/transform-copilot.test.js.map +1 -0
  1367. package/dist/__tests__/transform-cursor.test.d.ts +5 -0
  1368. package/dist/__tests__/transform-cursor.test.d.ts.map +1 -0
  1369. package/dist/__tests__/transform-cursor.test.js +53 -0
  1370. package/dist/__tests__/transform-cursor.test.js.map +1 -0
  1371. package/dist/__tests__/transform-gemini.test.d.ts +5 -0
  1372. package/dist/__tests__/transform-gemini.test.d.ts.map +1 -0
  1373. package/dist/__tests__/transform-gemini.test.js +50 -0
  1374. package/dist/__tests__/transform-gemini.test.js.map +1 -0
  1375. package/dist/__tests__/transform-kilo.test.d.ts +8 -0
  1376. package/dist/__tests__/transform-kilo.test.d.ts.map +1 -0
  1377. package/dist/__tests__/transform-kilo.test.js +45 -0
  1378. package/dist/__tests__/transform-kilo.test.js.map +1 -0
  1379. package/dist/__tests__/transform-opencode.test.d.ts +5 -0
  1380. package/dist/__tests__/transform-opencode.test.d.ts.map +1 -0
  1381. package/dist/__tests__/transform-opencode.test.js +75 -0
  1382. package/dist/__tests__/transform-opencode.test.js.map +1 -0
  1383. package/dist/__tests__/transform-qwen.test.d.ts +5 -0
  1384. package/dist/__tests__/transform-qwen.test.d.ts.map +1 -0
  1385. package/dist/__tests__/transform-qwen.test.js +43 -0
  1386. package/dist/__tests__/transform-qwen.test.js.map +1 -0
  1387. package/dist/__tests__/transform-trae.test.d.ts +5 -0
  1388. package/dist/__tests__/transform-trae.test.d.ts.map +1 -0
  1389. package/dist/__tests__/transform-trae.test.js +43 -0
  1390. package/dist/__tests__/transform-trae.test.js.map +1 -0
  1391. package/dist/__tests__/transform-windsurf.test.d.ts +5 -0
  1392. package/dist/__tests__/transform-windsurf.test.d.ts.map +1 -0
  1393. package/dist/__tests__/transform-windsurf.test.js +50 -0
  1394. package/dist/__tests__/transform-windsurf.test.js.map +1 -0
  1395. package/dist/__tests__/update-worker.test.d.ts +9 -0
  1396. package/dist/__tests__/update-worker.test.d.ts.map +1 -0
  1397. package/dist/__tests__/update-worker.test.js +84 -0
  1398. package/dist/__tests__/update-worker.test.js.map +1 -0
  1399. package/dist/__tests__/upgrade-layout.test.d.ts +14 -0
  1400. package/dist/__tests__/upgrade-layout.test.d.ts.map +1 -0
  1401. package/dist/__tests__/upgrade-layout.test.js +154 -0
  1402. package/dist/__tests__/upgrade-layout.test.js.map +1 -0
  1403. package/dist/__tests__/validate-evidence.test.d.ts +9 -0
  1404. package/dist/__tests__/validate-evidence.test.d.ts.map +1 -0
  1405. package/dist/__tests__/validate-evidence.test.js +291 -0
  1406. package/dist/__tests__/validate-evidence.test.js.map +1 -0
  1407. package/dist/__tests__/variant-gallery.test.d.ts +13 -0
  1408. package/dist/__tests__/variant-gallery.test.d.ts.map +1 -0
  1409. package/dist/__tests__/variant-gallery.test.js +135 -0
  1410. package/dist/__tests__/variant-gallery.test.js.map +1 -0
  1411. package/dist/__tests__/variant-pick.test.d.ts +11 -0
  1412. package/dist/__tests__/variant-pick.test.d.ts.map +1 -0
  1413. package/dist/__tests__/variant-pick.test.js +89 -0
  1414. package/dist/__tests__/variant-pick.test.js.map +1 -0
  1415. package/dist/__tests__/variant-pool.test.d.ts +18 -0
  1416. package/dist/__tests__/variant-pool.test.d.ts.map +1 -0
  1417. package/dist/__tests__/variant-pool.test.js +143 -0
  1418. package/dist/__tests__/variant-pool.test.js.map +1 -0
  1419. package/dist/__tests__/wfrun-dag.test.d.ts +5 -0
  1420. package/dist/__tests__/wfrun-dag.test.d.ts.map +1 -0
  1421. package/dist/__tests__/wfrun-dag.test.js +64 -0
  1422. package/dist/__tests__/wfrun-dag.test.js.map +1 -0
  1423. package/dist/__tests__/wfrun-input-flags.test.d.ts +7 -0
  1424. package/dist/__tests__/wfrun-input-flags.test.d.ts.map +1 -0
  1425. package/dist/__tests__/wfrun-input-flags.test.js +41 -0
  1426. package/dist/__tests__/wfrun-input-flags.test.js.map +1 -0
  1427. package/dist/__tests__/wfrun-interpolate.test.d.ts +5 -0
  1428. package/dist/__tests__/wfrun-interpolate.test.d.ts.map +1 -0
  1429. package/dist/__tests__/wfrun-interpolate.test.js +62 -0
  1430. package/dist/__tests__/wfrun-interpolate.test.js.map +1 -0
  1431. package/dist/__tests__/wfrun-parse.test.d.ts +7 -0
  1432. package/dist/__tests__/wfrun-parse.test.d.ts.map +1 -0
  1433. package/dist/__tests__/wfrun-parse.test.js +144 -0
  1434. package/dist/__tests__/wfrun-parse.test.js.map +1 -0
  1435. package/dist/__tests__/workflow-destroy-archive.test.d.ts +15 -0
  1436. package/dist/__tests__/workflow-destroy-archive.test.d.ts.map +1 -0
  1437. package/dist/__tests__/workflow-destroy-archive.test.js +134 -0
  1438. package/dist/__tests__/workflow-destroy-archive.test.js.map +1 -0
  1439. package/dist/__tests__/workflow.test.d.ts +2 -0
  1440. package/dist/__tests__/workflow.test.d.ts.map +1 -0
  1441. package/dist/__tests__/workflow.test.js +184 -0
  1442. package/dist/__tests__/workflow.test.js.map +1 -0
  1443. package/dist/__tests__/worktree-install-bootstrap-hook.test.d.ts +14 -0
  1444. package/dist/__tests__/worktree-install-bootstrap-hook.test.d.ts.map +1 -0
  1445. package/dist/__tests__/worktree-install-bootstrap-hook.test.js +111 -0
  1446. package/dist/__tests__/worktree-install-bootstrap-hook.test.js.map +1 -0
  1447. package/dist/__tests__/worktree-install-dead-pid.test.d.ts +10 -0
  1448. package/dist/__tests__/worktree-install-dead-pid.test.d.ts.map +1 -0
  1449. package/dist/__tests__/worktree-install-dead-pid.test.js +105 -0
  1450. package/dist/__tests__/worktree-install-dead-pid.test.js.map +1 -0
  1451. package/dist/__tests__/worktree-install-dispatch.test.d.ts +15 -0
  1452. package/dist/__tests__/worktree-install-dispatch.test.d.ts.map +1 -0
  1453. package/dist/__tests__/worktree-install-dispatch.test.js +131 -0
  1454. package/dist/__tests__/worktree-install-dispatch.test.js.map +1 -0
  1455. package/dist/__tests__/worktree-install-escape-hatches.test.d.ts +12 -0
  1456. package/dist/__tests__/worktree-install-escape-hatches.test.d.ts.map +1 -0
  1457. package/dist/__tests__/worktree-install-escape-hatches.test.js +97 -0
  1458. package/dist/__tests__/worktree-install-escape-hatches.test.js.map +1 -0
  1459. package/dist/__tests__/worktree-install-manifest-scanner.test.d.ts +9 -0
  1460. package/dist/__tests__/worktree-install-manifest-scanner.test.d.ts.map +1 -0
  1461. package/dist/__tests__/worktree-install-manifest-scanner.test.js +175 -0
  1462. package/dist/__tests__/worktree-install-manifest-scanner.test.js.map +1 -0
  1463. package/dist/__tests__/worktree-install-multi-lockfile.test.d.ts +11 -0
  1464. package/dist/__tests__/worktree-install-multi-lockfile.test.d.ts.map +1 -0
  1465. package/dist/__tests__/worktree-install-multi-lockfile.test.js +70 -0
  1466. package/dist/__tests__/worktree-install-multi-lockfile.test.js.map +1 -0
  1467. package/dist/capture/cdp-adapter.d.ts +44 -0
  1468. package/dist/capture/cdp-adapter.d.ts.map +1 -0
  1469. package/dist/capture/cdp-adapter.js +280 -0
  1470. package/dist/capture/cdp-adapter.js.map +1 -0
  1471. package/dist/capture/index.d.ts +3 -0
  1472. package/dist/capture/index.d.ts.map +1 -0
  1473. package/dist/capture/index.js +2 -0
  1474. package/dist/capture/index.js.map +1 -0
  1475. package/dist/capture/types.d.ts +86 -0
  1476. package/dist/capture/types.d.ts.map +1 -0
  1477. package/dist/capture/types.js +13 -0
  1478. package/dist/capture/types.js.map +1 -0
  1479. package/dist/cli/artifacts/classification.d.mts +72 -0
  1480. package/dist/cli/artifacts/classification.d.mts.map +1 -0
  1481. package/dist/cli/artifacts/classification.mjs +385 -0
  1482. package/dist/cli/artifacts/classification.mjs.map +1 -0
  1483. package/dist/cli/artifacts/self-stage.d.mts +21 -0
  1484. package/dist/cli/artifacts/self-stage.d.mts.map +1 -0
  1485. package/dist/cli/artifacts/self-stage.mjs +167 -0
  1486. package/dist/cli/artifacts/self-stage.mjs.map +1 -0
  1487. package/dist/cli/bootstrap/detect-mode.d.mts +45 -0
  1488. package/dist/cli/bootstrap/detect-mode.d.mts.map +1 -0
  1489. package/dist/cli/bootstrap/detect-mode.mjs +185 -0
  1490. package/dist/cli/bootstrap/detect-mode.mjs.map +1 -0
  1491. package/dist/cli/bootstrap/product-context-sidecar.d.mts +94 -0
  1492. package/dist/cli/bootstrap/product-context-sidecar.d.mts.map +1 -0
  1493. package/dist/cli/bootstrap/product-context-sidecar.mjs +367 -0
  1494. package/dist/cli/bootstrap/product-context-sidecar.mjs.map +1 -0
  1495. package/dist/cli/bootstrap/recon.d.mts +52 -0
  1496. package/dist/cli/bootstrap/recon.d.mts.map +1 -0
  1497. package/dist/cli/bootstrap/recon.mjs +248 -0
  1498. package/dist/cli/bootstrap/recon.mjs.map +1 -0
  1499. package/dist/cli/budget/budget.d.mts +8 -0
  1500. package/dist/cli/budget/budget.d.mts.map +1 -0
  1501. package/dist/cli/budget/budget.mjs +36 -0
  1502. package/dist/cli/budget/budget.mjs.map +1 -0
  1503. package/dist/cli/cli-wrappers/active.d.mts +2 -0
  1504. package/dist/cli/cli-wrappers/active.d.mts.map +1 -0
  1505. package/dist/cli/cli-wrappers/active.mjs +8 -0
  1506. package/dist/cli/cli-wrappers/active.mjs.map +1 -0
  1507. package/dist/cli/cli-wrappers/audit.d.mts +2 -0
  1508. package/dist/cli/cli-wrappers/audit.d.mts.map +1 -0
  1509. package/dist/cli/cli-wrappers/audit.mjs +8 -0
  1510. package/dist/cli/cli-wrappers/audit.mjs.map +1 -0
  1511. package/dist/cli/cli-wrappers/author-skill.d.mts +2 -0
  1512. package/dist/cli/cli-wrappers/author-skill.d.mts.map +1 -0
  1513. package/dist/cli/cli-wrappers/author-skill.mjs +8 -0
  1514. package/dist/cli/cli-wrappers/author-skill.mjs.map +1 -0
  1515. package/dist/cli/cli-wrappers/bootstrap.d.mts +2 -0
  1516. package/dist/cli/cli-wrappers/bootstrap.d.mts.map +1 -0
  1517. package/dist/cli/cli-wrappers/bootstrap.mjs +8 -0
  1518. package/dist/cli/cli-wrappers/bootstrap.mjs.map +1 -0
  1519. package/dist/cli/cli-wrappers/check-version.d.mts +2 -0
  1520. package/dist/cli/cli-wrappers/check-version.d.mts.map +1 -0
  1521. package/dist/cli/cli-wrappers/check-version.mjs +8 -0
  1522. package/dist/cli/cli-wrappers/check-version.mjs.map +1 -0
  1523. package/dist/cli/cli-wrappers/check.d.mts +2 -0
  1524. package/dist/cli/cli-wrappers/check.d.mts.map +1 -0
  1525. package/dist/cli/cli-wrappers/check.mjs +8 -0
  1526. package/dist/cli/cli-wrappers/check.mjs.map +1 -0
  1527. package/dist/cli/cli-wrappers/commit.d.mts +2 -0
  1528. package/dist/cli/cli-wrappers/commit.d.mts.map +1 -0
  1529. package/dist/cli/cli-wrappers/commit.mjs +8 -0
  1530. package/dist/cli/cli-wrappers/commit.mjs.map +1 -0
  1531. package/dist/cli/cli-wrappers/config.d.mts +2 -0
  1532. package/dist/cli/cli-wrappers/config.d.mts.map +1 -0
  1533. package/dist/cli/cli-wrappers/config.mjs +8 -0
  1534. package/dist/cli/cli-wrappers/config.mjs.map +1 -0
  1535. package/dist/cli/cli-wrappers/consistency.d.mts +2 -0
  1536. package/dist/cli/cli-wrappers/consistency.d.mts.map +1 -0
  1537. package/dist/cli/cli-wrappers/consistency.mjs +8 -0
  1538. package/dist/cli/cli-wrappers/consistency.mjs.map +1 -0
  1539. package/dist/cli/cli-wrappers/constitution.d.mts +2 -0
  1540. package/dist/cli/cli-wrappers/constitution.d.mts.map +1 -0
  1541. package/dist/cli/cli-wrappers/constitution.mjs +8 -0
  1542. package/dist/cli/cli-wrappers/constitution.mjs.map +1 -0
  1543. package/dist/cli/cli-wrappers/coverage-check.d.mts +2 -0
  1544. package/dist/cli/cli-wrappers/coverage-check.d.mts.map +1 -0
  1545. package/dist/cli/cli-wrappers/coverage-check.mjs +8 -0
  1546. package/dist/cli/cli-wrappers/coverage-check.mjs.map +1 -0
  1547. package/dist/cli/cli-wrappers/create-docs.d.mts +2 -0
  1548. package/dist/cli/cli-wrappers/create-docs.d.mts.map +1 -0
  1549. package/dist/cli/cli-wrappers/create-docs.mjs +8 -0
  1550. package/dist/cli/cli-wrappers/create-docs.mjs.map +1 -0
  1551. package/dist/cli/cli-wrappers/design-lint.d.mts +2 -0
  1552. package/dist/cli/cli-wrappers/design-lint.d.mts.map +1 -0
  1553. package/dist/cli/cli-wrappers/design-lint.mjs +8 -0
  1554. package/dist/cli/cli-wrappers/design-lint.mjs.map +1 -0
  1555. package/dist/cli/cli-wrappers/design-scan.d.mts +2 -0
  1556. package/dist/cli/cli-wrappers/design-scan.d.mts.map +1 -0
  1557. package/dist/cli/cli-wrappers/design-scan.mjs +8 -0
  1558. package/dist/cli/cli-wrappers/design-scan.mjs.map +1 -0
  1559. package/dist/cli/cli-wrappers/design-template.d.mts +2 -0
  1560. package/dist/cli/cli-wrappers/design-template.d.mts.map +1 -0
  1561. package/dist/cli/cli-wrappers/design-template.mjs +8 -0
  1562. package/dist/cli/cli-wrappers/design-template.mjs.map +1 -0
  1563. package/dist/cli/cli-wrappers/design-validate.d.mts +2 -0
  1564. package/dist/cli/cli-wrappers/design-validate.d.mts.map +1 -0
  1565. package/dist/cli/cli-wrappers/design-validate.mjs +8 -0
  1566. package/dist/cli/cli-wrappers/design-validate.mjs.map +1 -0
  1567. package/dist/cli/cli-wrappers/detect-project.d.mts +2 -0
  1568. package/dist/cli/cli-wrappers/detect-project.d.mts.map +1 -0
  1569. package/dist/cli/cli-wrappers/detect-project.mjs +8 -0
  1570. package/dist/cli/cli-wrappers/detect-project.mjs.map +1 -0
  1571. package/dist/cli/cli-wrappers/docs-audit.d.mts +2 -0
  1572. package/dist/cli/cli-wrappers/docs-audit.d.mts.map +1 -0
  1573. package/dist/cli/cli-wrappers/docs-audit.mjs +8 -0
  1574. package/dist/cli/cli-wrappers/docs-audit.mjs.map +1 -0
  1575. package/dist/cli/cli-wrappers/edit-check.d.mts +2 -0
  1576. package/dist/cli/cli-wrappers/edit-check.d.mts.map +1 -0
  1577. package/dist/cli/cli-wrappers/edit-check.mjs +8 -0
  1578. package/dist/cli/cli-wrappers/edit-check.mjs.map +1 -0
  1579. package/dist/cli/cli-wrappers/effects.d.mts +2 -0
  1580. package/dist/cli/cli-wrappers/effects.d.mts.map +1 -0
  1581. package/dist/cli/cli-wrappers/effects.mjs +8 -0
  1582. package/dist/cli/cli-wrappers/effects.mjs.map +1 -0
  1583. package/dist/cli/cli-wrappers/event.d.mts +2 -0
  1584. package/dist/cli/cli-wrappers/event.d.mts.map +1 -0
  1585. package/dist/cli/cli-wrappers/event.mjs +8 -0
  1586. package/dist/cli/cli-wrappers/event.mjs.map +1 -0
  1587. package/dist/cli/cli-wrappers/features-audit.d.mts +2 -0
  1588. package/dist/cli/cli-wrappers/features-audit.d.mts.map +1 -0
  1589. package/dist/cli/cli-wrappers/features-audit.mjs +8 -0
  1590. package/dist/cli/cli-wrappers/features-audit.mjs.map +1 -0
  1591. package/dist/cli/cli-wrappers/gate.d.mts +2 -0
  1592. package/dist/cli/cli-wrappers/gate.d.mts.map +1 -0
  1593. package/dist/cli/cli-wrappers/gate.mjs +8 -0
  1594. package/dist/cli/cli-wrappers/gate.mjs.map +1 -0
  1595. package/dist/cli/cli-wrappers/health-check.d.mts +2 -0
  1596. package/dist/cli/cli-wrappers/health-check.d.mts.map +1 -0
  1597. package/dist/cli/cli-wrappers/health-check.mjs +8 -0
  1598. package/dist/cli/cli-wrappers/health-check.mjs.map +1 -0
  1599. package/dist/cli/cli-wrappers/host-detect.d.mts +2 -0
  1600. package/dist/cli/cli-wrappers/host-detect.d.mts.map +1 -0
  1601. package/dist/cli/cli-wrappers/host-detect.mjs +14 -0
  1602. package/dist/cli/cli-wrappers/host-detect.mjs.map +1 -0
  1603. package/dist/cli/cli-wrappers/init-state.d.mts +2 -0
  1604. package/dist/cli/cli-wrappers/init-state.d.mts.map +1 -0
  1605. package/dist/cli/cli-wrappers/init-state.mjs +8 -0
  1606. package/dist/cli/cli-wrappers/init-state.mjs.map +1 -0
  1607. package/dist/cli/cli-wrappers/init.d.mts +2 -0
  1608. package/dist/cli/cli-wrappers/init.d.mts.map +1 -0
  1609. package/dist/cli/cli-wrappers/init.mjs +8 -0
  1610. package/dist/cli/cli-wrappers/init.mjs.map +1 -0
  1611. package/dist/cli/cli-wrappers/lock.d.mts +2 -0
  1612. package/dist/cli/cli-wrappers/lock.d.mts.map +1 -0
  1613. package/dist/cli/cli-wrappers/lock.mjs +8 -0
  1614. package/dist/cli/cli-wrappers/lock.mjs.map +1 -0
  1615. package/dist/cli/cli-wrappers/migrate-pr-reviews.d.mts +2 -0
  1616. package/dist/cli/cli-wrappers/migrate-pr-reviews.d.mts.map +1 -0
  1617. package/dist/cli/cli-wrappers/migrate-pr-reviews.mjs +8 -0
  1618. package/dist/cli/cli-wrappers/migrate-pr-reviews.mjs.map +1 -0
  1619. package/dist/cli/cli-wrappers/personas.d.mts +2 -0
  1620. package/dist/cli/cli-wrappers/personas.d.mts.map +1 -0
  1621. package/dist/cli/cli-wrappers/personas.mjs +8 -0
  1622. package/dist/cli/cli-wrappers/personas.mjs.map +1 -0
  1623. package/dist/cli/cli-wrappers/plan-approval.d.mts +2 -0
  1624. package/dist/cli/cli-wrappers/plan-approval.d.mts.map +1 -0
  1625. package/dist/cli/cli-wrappers/plan-approval.mjs +8 -0
  1626. package/dist/cli/cli-wrappers/plan-approval.mjs.map +1 -0
  1627. package/dist/cli/cli-wrappers/pr-review-audit-fixer.d.mts +2 -0
  1628. package/dist/cli/cli-wrappers/pr-review-audit-fixer.d.mts.map +1 -0
  1629. package/dist/cli/cli-wrappers/pr-review-audit-fixer.mjs +8 -0
  1630. package/dist/cli/cli-wrappers/pr-review-audit-fixer.mjs.map +1 -0
  1631. package/dist/cli/cli-wrappers/pr-review.d.mts +2 -0
  1632. package/dist/cli/cli-wrappers/pr-review.d.mts.map +1 -0
  1633. package/dist/cli/cli-wrappers/pr-review.mjs +8 -0
  1634. package/dist/cli/cli-wrappers/pr-review.mjs.map +1 -0
  1635. package/dist/cli/cli-wrappers/precompact-hook.d.mts +2 -0
  1636. package/dist/cli/cli-wrappers/precompact-hook.d.mts.map +1 -0
  1637. package/dist/cli/cli-wrappers/precompact-hook.mjs +8 -0
  1638. package/dist/cli/cli-wrappers/precompact-hook.mjs.map +1 -0
  1639. package/dist/cli/cli-wrappers/product-context.d.mts +2 -0
  1640. package/dist/cli/cli-wrappers/product-context.d.mts.map +1 -0
  1641. package/dist/cli/cli-wrappers/product-context.mjs +8 -0
  1642. package/dist/cli/cli-wrappers/product-context.mjs.map +1 -0
  1643. package/dist/cli/cli-wrappers/profile.d.mts +2 -0
  1644. package/dist/cli/cli-wrappers/profile.d.mts.map +1 -0
  1645. package/dist/cli/cli-wrappers/profile.mjs +8 -0
  1646. package/dist/cli/cli-wrappers/profile.mjs.map +1 -0
  1647. package/dist/cli/cli-wrappers/risk-check.d.mts +2 -0
  1648. package/dist/cli/cli-wrappers/risk-check.d.mts.map +1 -0
  1649. package/dist/cli/cli-wrappers/risk-check.mjs +8 -0
  1650. package/dist/cli/cli-wrappers/risk-check.mjs.map +1 -0
  1651. package/dist/cli/cli-wrappers/roadmap.d.mts +2 -0
  1652. package/dist/cli/cli-wrappers/roadmap.d.mts.map +1 -0
  1653. package/dist/cli/cli-wrappers/roadmap.mjs +8 -0
  1654. package/dist/cli/cli-wrappers/roadmap.mjs.map +1 -0
  1655. package/dist/cli/cli-wrappers/route.d.mts +2 -0
  1656. package/dist/cli/cli-wrappers/route.d.mts.map +1 -0
  1657. package/dist/cli/cli-wrappers/route.mjs +8 -0
  1658. package/dist/cli/cli-wrappers/route.mjs.map +1 -0
  1659. package/dist/cli/cli-wrappers/seed.d.mts +2 -0
  1660. package/dist/cli/cli-wrappers/seed.d.mts.map +1 -0
  1661. package/dist/cli/cli-wrappers/seed.mjs +8 -0
  1662. package/dist/cli/cli-wrappers/seed.mjs.map +1 -0
  1663. package/dist/cli/cli-wrappers/standards.d.mts +2 -0
  1664. package/dist/cli/cli-wrappers/standards.d.mts.map +1 -0
  1665. package/dist/cli/cli-wrappers/standards.mjs +8 -0
  1666. package/dist/cli/cli-wrappers/standards.mjs.map +1 -0
  1667. package/dist/cli/cli-wrappers/state-artifacts.d.mts +2 -0
  1668. package/dist/cli/cli-wrappers/state-artifacts.d.mts.map +1 -0
  1669. package/dist/cli/cli-wrappers/state-artifacts.mjs +8 -0
  1670. package/dist/cli/cli-wrappers/state-artifacts.mjs.map +1 -0
  1671. package/dist/cli/cli-wrappers/state-update.d.mts +2 -0
  1672. package/dist/cli/cli-wrappers/state-update.d.mts.map +1 -0
  1673. package/dist/cli/cli-wrappers/state-update.mjs +8 -0
  1674. package/dist/cli/cli-wrappers/state-update.mjs.map +1 -0
  1675. package/dist/cli/cli-wrappers/state.d.mts +2 -0
  1676. package/dist/cli/cli-wrappers/state.d.mts.map +1 -0
  1677. package/dist/cli/cli-wrappers/state.mjs +8 -0
  1678. package/dist/cli/cli-wrappers/state.mjs.map +1 -0
  1679. package/dist/cli/cli-wrappers/statusline.d.mts +2 -0
  1680. package/dist/cli/cli-wrappers/statusline.d.mts.map +1 -0
  1681. package/dist/cli/cli-wrappers/statusline.mjs +8 -0
  1682. package/dist/cli/cli-wrappers/statusline.mjs.map +1 -0
  1683. package/dist/cli/cli-wrappers/task.d.mts +2 -0
  1684. package/dist/cli/cli-wrappers/task.d.mts.map +1 -0
  1685. package/dist/cli/cli-wrappers/task.mjs +8 -0
  1686. package/dist/cli/cli-wrappers/task.mjs.map +1 -0
  1687. package/dist/cli/cli-wrappers/taste-infer.d.mts +2 -0
  1688. package/dist/cli/cli-wrappers/taste-infer.d.mts.map +1 -0
  1689. package/dist/cli/cli-wrappers/taste-infer.mjs +8 -0
  1690. package/dist/cli/cli-wrappers/taste-infer.mjs.map +1 -0
  1691. package/dist/cli/cli-wrappers/team.d.mts +2 -0
  1692. package/dist/cli/cli-wrappers/team.d.mts.map +1 -0
  1693. package/dist/cli/cli-wrappers/team.mjs +8 -0
  1694. package/dist/cli/cli-wrappers/team.mjs.map +1 -0
  1695. package/dist/cli/cli-wrappers/template.d.mts +2 -0
  1696. package/dist/cli/cli-wrappers/template.d.mts.map +1 -0
  1697. package/dist/cli/cli-wrappers/template.mjs +8 -0
  1698. package/dist/cli/cli-wrappers/template.mjs.map +1 -0
  1699. package/dist/cli/cli-wrappers/terminal.d.mts +2 -0
  1700. package/dist/cli/cli-wrappers/terminal.d.mts.map +1 -0
  1701. package/dist/cli/cli-wrappers/terminal.mjs +8 -0
  1702. package/dist/cli/cli-wrappers/terminal.mjs.map +1 -0
  1703. package/dist/cli/cli-wrappers/token-budget.d.mts +2 -0
  1704. package/dist/cli/cli-wrappers/token-budget.d.mts.map +1 -0
  1705. package/dist/cli/cli-wrappers/token-budget.mjs +8 -0
  1706. package/dist/cli/cli-wrappers/token-budget.mjs.map +1 -0
  1707. package/dist/cli/cli-wrappers/tokens.d.mts +2 -0
  1708. package/dist/cli/cli-wrappers/tokens.d.mts.map +1 -0
  1709. package/dist/cli/cli-wrappers/tokens.mjs +8 -0
  1710. package/dist/cli/cli-wrappers/tokens.mjs.map +1 -0
  1711. package/dist/cli/cli-wrappers/toolchain-detect.d.mts +2 -0
  1712. package/dist/cli/cli-wrappers/toolchain-detect.d.mts.map +1 -0
  1713. package/dist/cli/cli-wrappers/toolchain-detect.mjs +8 -0
  1714. package/dist/cli/cli-wrappers/toolchain-detect.mjs.map +1 -0
  1715. package/dist/cli/cli-wrappers/uninstall.d.mts +2 -0
  1716. package/dist/cli/cli-wrappers/uninstall.d.mts.map +1 -0
  1717. package/dist/cli/cli-wrappers/uninstall.mjs +8 -0
  1718. package/dist/cli/cli-wrappers/uninstall.mjs.map +1 -0
  1719. package/dist/cli/cli-wrappers/validate-evidence.d.mts +2 -0
  1720. package/dist/cli/cli-wrappers/validate-evidence.d.mts.map +1 -0
  1721. package/dist/cli/cli-wrappers/validate-evidence.mjs +10 -0
  1722. package/dist/cli/cli-wrappers/validate-evidence.mjs.map +1 -0
  1723. package/dist/cli/cli-wrappers/variant-gallery.d.mts +2 -0
  1724. package/dist/cli/cli-wrappers/variant-gallery.d.mts.map +1 -0
  1725. package/dist/cli/cli-wrappers/variant-gallery.mjs +8 -0
  1726. package/dist/cli/cli-wrappers/variant-gallery.mjs.map +1 -0
  1727. package/dist/cli/cli-wrappers/variant-pick.d.mts +2 -0
  1728. package/dist/cli/cli-wrappers/variant-pick.d.mts.map +1 -0
  1729. package/dist/cli/cli-wrappers/variant-pick.mjs +8 -0
  1730. package/dist/cli/cli-wrappers/variant-pick.mjs.map +1 -0
  1731. package/dist/cli/cli-wrappers/variant-pool.d.mts +2 -0
  1732. package/dist/cli/cli-wrappers/variant-pool.d.mts.map +1 -0
  1733. package/dist/cli/cli-wrappers/variant-pool.mjs +8 -0
  1734. package/dist/cli/cli-wrappers/variant-pool.mjs.map +1 -0
  1735. package/dist/cli/cli-wrappers/wave.d.mts +2 -0
  1736. package/dist/cli/cli-wrappers/wave.d.mts.map +1 -0
  1737. package/dist/cli/cli-wrappers/wave.mjs +8 -0
  1738. package/dist/cli/cli-wrappers/wave.mjs.map +1 -0
  1739. package/dist/cli/cli-wrappers/wfrun.d.mts +2 -0
  1740. package/dist/cli/cli-wrappers/wfrun.d.mts.map +1 -0
  1741. package/dist/cli/cli-wrappers/wfrun.mjs +8 -0
  1742. package/dist/cli/cli-wrappers/wfrun.mjs.map +1 -0
  1743. package/dist/cli/cli-wrappers/workflow.d.mts +2 -0
  1744. package/dist/cli/cli-wrappers/workflow.d.mts.map +1 -0
  1745. package/dist/cli/cli-wrappers/workflow.mjs +8 -0
  1746. package/dist/cli/cli-wrappers/workflow.mjs.map +1 -0
  1747. package/dist/cli/cli-wrappers/worktree-install.d.mts +2 -0
  1748. package/dist/cli/cli-wrappers/worktree-install.d.mts.map +1 -0
  1749. package/dist/cli/cli-wrappers/worktree-install.mjs +8 -0
  1750. package/dist/cli/cli-wrappers/worktree-install.mjs.map +1 -0
  1751. package/dist/cli/cli-wrappers/worktree.d.mts +2 -0
  1752. package/dist/cli/cli-wrappers/worktree.d.mts.map +1 -0
  1753. package/dist/cli/cli-wrappers/worktree.mjs +13 -0
  1754. package/dist/cli/cli-wrappers/worktree.mjs.map +1 -0
  1755. package/dist/cli/commands/active.d.mts +2 -0
  1756. package/dist/cli/commands/active.d.mts.map +1 -0
  1757. package/dist/cli/commands/active.mjs +84 -0
  1758. package/dist/cli/commands/active.mjs.map +1 -0
  1759. package/dist/cli/commands/audit.d.mts +11 -0
  1760. package/dist/cli/commands/audit.d.mts.map +1 -0
  1761. package/dist/cli/commands/audit.mjs +398 -0
  1762. package/dist/cli/commands/audit.mjs.map +1 -0
  1763. package/dist/cli/commands/author-skill.d.mts +2 -0
  1764. package/dist/cli/commands/author-skill.d.mts.map +1 -0
  1765. package/dist/cli/commands/author-skill.mjs +66 -0
  1766. package/dist/cli/commands/author-skill.mjs.map +1 -0
  1767. package/dist/cli/commands/bootstrap.d.mts +6 -0
  1768. package/dist/cli/commands/bootstrap.d.mts.map +1 -0
  1769. package/dist/cli/commands/bootstrap.mjs +298 -0
  1770. package/dist/cli/commands/bootstrap.mjs.map +1 -0
  1771. package/dist/cli/commands/check-version.d.mts +5 -0
  1772. package/dist/cli/commands/check-version.d.mts.map +1 -0
  1773. package/dist/cli/commands/check-version.mjs +110 -0
  1774. package/dist/cli/commands/check-version.mjs.map +1 -0
  1775. package/dist/cli/commands/check.d.mts +34 -0
  1776. package/dist/cli/commands/check.d.mts.map +1 -0
  1777. package/dist/cli/commands/check.mjs +227 -0
  1778. package/dist/cli/commands/check.mjs.map +1 -0
  1779. package/dist/cli/commands/commit.d.mts +2 -0
  1780. package/dist/cli/commands/commit.d.mts.map +1 -0
  1781. package/dist/cli/commands/commit.mjs +79 -0
  1782. package/dist/cli/commands/commit.mjs.map +1 -0
  1783. package/dist/cli/commands/consistency.d.mts +2 -0
  1784. package/dist/cli/commands/consistency.d.mts.map +1 -0
  1785. package/dist/cli/commands/consistency.mjs +143 -0
  1786. package/dist/cli/commands/consistency.mjs.map +1 -0
  1787. package/dist/cli/commands/constitution.d.mts +2 -0
  1788. package/dist/cli/commands/constitution.d.mts.map +1 -0
  1789. package/dist/cli/commands/constitution.mjs +155 -0
  1790. package/dist/cli/commands/constitution.mjs.map +1 -0
  1791. package/dist/cli/commands/coverage-check.d.mts +2 -0
  1792. package/dist/cli/commands/coverage-check.d.mts.map +1 -0
  1793. package/dist/cli/commands/coverage-check.mjs +238 -0
  1794. package/dist/cli/commands/coverage-check.mjs.map +1 -0
  1795. package/dist/cli/commands/create-docs.d.mts +6 -0
  1796. package/dist/cli/commands/create-docs.d.mts.map +1 -0
  1797. package/dist/cli/commands/create-docs.mjs +401 -0
  1798. package/dist/cli/commands/create-docs.mjs.map +1 -0
  1799. package/dist/cli/commands/design-lint.d.mts +2 -0
  1800. package/dist/cli/commands/design-lint.d.mts.map +1 -0
  1801. package/dist/cli/commands/design-lint.mjs +202 -0
  1802. package/dist/cli/commands/design-lint.mjs.map +1 -0
  1803. package/dist/cli/commands/design-scan.d.mts +2 -0
  1804. package/dist/cli/commands/design-scan.d.mts.map +1 -0
  1805. package/dist/cli/commands/design-scan.mjs +105 -0
  1806. package/dist/cli/commands/design-scan.mjs.map +1 -0
  1807. package/dist/cli/commands/design-template.d.mts +10 -0
  1808. package/dist/cli/commands/design-template.d.mts.map +1 -0
  1809. package/dist/cli/commands/design-template.mjs +173 -0
  1810. package/dist/cli/commands/design-template.mjs.map +1 -0
  1811. package/dist/cli/commands/design-validate.d.mts +6 -0
  1812. package/dist/cli/commands/design-validate.d.mts.map +1 -0
  1813. package/dist/cli/commands/design-validate.mjs +69 -0
  1814. package/dist/cli/commands/design-validate.mjs.map +1 -0
  1815. package/dist/cli/commands/detect-project.d.mts +2 -0
  1816. package/dist/cli/commands/detect-project.d.mts.map +1 -0
  1817. package/dist/cli/commands/detect-project.mjs +233 -0
  1818. package/dist/cli/commands/detect-project.mjs.map +1 -0
  1819. package/dist/cli/commands/docs-audit.d.mts +2 -0
  1820. package/dist/cli/commands/docs-audit.d.mts.map +1 -0
  1821. package/dist/cli/commands/docs-audit.mjs +153 -0
  1822. package/dist/cli/commands/docs-audit.mjs.map +1 -0
  1823. package/dist/cli/commands/edit-check.d.mts +2 -0
  1824. package/dist/cli/commands/edit-check.d.mts.map +1 -0
  1825. package/dist/cli/commands/edit-check.mjs +111 -0
  1826. package/dist/cli/commands/edit-check.mjs.map +1 -0
  1827. package/dist/cli/commands/effects.d.mts +2 -0
  1828. package/dist/cli/commands/effects.d.mts.map +1 -0
  1829. package/dist/cli/commands/effects.mjs +385 -0
  1830. package/dist/cli/commands/effects.mjs.map +1 -0
  1831. package/dist/cli/commands/event.d.mts +2 -0
  1832. package/dist/cli/commands/event.d.mts.map +1 -0
  1833. package/dist/cli/commands/event.mjs +235 -0
  1834. package/dist/cli/commands/event.mjs.map +1 -0
  1835. package/dist/cli/commands/features-audit.d.mts +2 -0
  1836. package/dist/cli/commands/features-audit.d.mts.map +1 -0
  1837. package/dist/cli/commands/features-audit.mjs +134 -0
  1838. package/dist/cli/commands/features-audit.mjs.map +1 -0
  1839. package/dist/cli/commands/gate.d.mts +2 -0
  1840. package/dist/cli/commands/gate.d.mts.map +1 -0
  1841. package/dist/cli/commands/gate.mjs +255 -0
  1842. package/dist/cli/commands/gate.mjs.map +1 -0
  1843. package/dist/cli/commands/health-check.d.mts +2 -0
  1844. package/dist/cli/commands/health-check.d.mts.map +1 -0
  1845. package/dist/cli/commands/health-check.mjs +161 -0
  1846. package/dist/cli/commands/health-check.mjs.map +1 -0
  1847. package/dist/cli/commands/host-detect.d.mts +3 -0
  1848. package/dist/cli/commands/host-detect.d.mts.map +1 -0
  1849. package/dist/cli/commands/host-detect.mjs +74 -0
  1850. package/dist/cli/commands/host-detect.mjs.map +1 -0
  1851. package/dist/cli/commands/init-state.d.mts +2 -0
  1852. package/dist/cli/commands/init-state.d.mts.map +1 -0
  1853. package/dist/cli/commands/init-state.mjs +91 -0
  1854. package/dist/cli/commands/init-state.mjs.map +1 -0
  1855. package/dist/cli/commands/init.d.mts +100 -0
  1856. package/dist/cli/commands/init.d.mts.map +1 -0
  1857. package/dist/cli/commands/init.mjs +1417 -0
  1858. package/dist/cli/commands/init.mjs.map +1 -0
  1859. package/dist/cli/commands/lock.d.mts +2 -0
  1860. package/dist/cli/commands/lock.d.mts.map +1 -0
  1861. package/dist/cli/commands/lock.mjs +148 -0
  1862. package/dist/cli/commands/lock.mjs.map +1 -0
  1863. package/dist/cli/commands/migrate-pr-reviews.d.mts +22 -0
  1864. package/dist/cli/commands/migrate-pr-reviews.d.mts.map +1 -0
  1865. package/dist/cli/commands/migrate-pr-reviews.mjs +191 -0
  1866. package/dist/cli/commands/migrate-pr-reviews.mjs.map +1 -0
  1867. package/dist/cli/commands/personas.d.mts +6 -0
  1868. package/dist/cli/commands/personas.d.mts.map +1 -0
  1869. package/dist/cli/commands/personas.mjs +306 -0
  1870. package/dist/cli/commands/personas.mjs.map +1 -0
  1871. package/dist/cli/commands/plan-approval.d.mts +2 -0
  1872. package/dist/cli/commands/plan-approval.d.mts.map +1 -0
  1873. package/dist/cli/commands/plan-approval.mjs +228 -0
  1874. package/dist/cli/commands/plan-approval.mjs.map +1 -0
  1875. package/dist/cli/commands/pr-review-audit-fixer.d.mts +96 -0
  1876. package/dist/cli/commands/pr-review-audit-fixer.d.mts.map +1 -0
  1877. package/dist/cli/commands/pr-review-audit-fixer.mjs +847 -0
  1878. package/dist/cli/commands/pr-review-audit-fixer.mjs.map +1 -0
  1879. package/dist/cli/commands/pr-review.d.mts +65 -0
  1880. package/dist/cli/commands/pr-review.d.mts.map +1 -0
  1881. package/dist/cli/commands/pr-review.mjs +1035 -0
  1882. package/dist/cli/commands/pr-review.mjs.map +1 -0
  1883. package/dist/cli/commands/precompact-hook.d.mts +56 -0
  1884. package/dist/cli/commands/precompact-hook.d.mts.map +1 -0
  1885. package/dist/cli/commands/precompact-hook.mjs +168 -0
  1886. package/dist/cli/commands/precompact-hook.mjs.map +1 -0
  1887. package/dist/cli/commands/product-context.d.mts +6 -0
  1888. package/dist/cli/commands/product-context.d.mts.map +1 -0
  1889. package/dist/cli/commands/product-context.mjs +65 -0
  1890. package/dist/cli/commands/product-context.mjs.map +1 -0
  1891. package/dist/cli/commands/profile.d.mts +2 -0
  1892. package/dist/cli/commands/profile.d.mts.map +1 -0
  1893. package/dist/cli/commands/profile.mjs +118 -0
  1894. package/dist/cli/commands/profile.mjs.map +1 -0
  1895. package/dist/cli/commands/risk-check.d.mts +2 -0
  1896. package/dist/cli/commands/risk-check.d.mts.map +1 -0
  1897. package/dist/cli/commands/risk-check.mjs +75 -0
  1898. package/dist/cli/commands/risk-check.mjs.map +1 -0
  1899. package/dist/cli/commands/roadmap.d.mts +2 -0
  1900. package/dist/cli/commands/roadmap.d.mts.map +1 -0
  1901. package/dist/cli/commands/roadmap.mjs +814 -0
  1902. package/dist/cli/commands/roadmap.mjs.map +1 -0
  1903. package/dist/cli/commands/route.d.mts +12 -0
  1904. package/dist/cli/commands/route.d.mts.map +1 -0
  1905. package/dist/cli/commands/route.mjs +523 -0
  1906. package/dist/cli/commands/route.mjs.map +1 -0
  1907. package/dist/cli/commands/seed.d.mts +2 -0
  1908. package/dist/cli/commands/seed.d.mts.map +1 -0
  1909. package/dist/cli/commands/seed.mjs +469 -0
  1910. package/dist/cli/commands/seed.mjs.map +1 -0
  1911. package/dist/cli/commands/standards.d.mts +5 -0
  1912. package/dist/cli/commands/standards.d.mts.map +1 -0
  1913. package/dist/cli/commands/standards.mjs +262 -0
  1914. package/dist/cli/commands/standards.mjs.map +1 -0
  1915. package/dist/cli/commands/state.d.mts +6 -0
  1916. package/dist/cli/commands/state.d.mts.map +1 -0
  1917. package/dist/cli/commands/state.mjs +231 -0
  1918. package/dist/cli/commands/state.mjs.map +1 -0
  1919. package/dist/cli/commands/statusline.d.mts +2 -0
  1920. package/dist/cli/commands/statusline.d.mts.map +1 -0
  1921. package/dist/cli/commands/statusline.mjs +224 -0
  1922. package/dist/cli/commands/statusline.mjs.map +1 -0
  1923. package/dist/cli/commands/task.d.mts +2 -0
  1924. package/dist/cli/commands/task.d.mts.map +1 -0
  1925. package/dist/cli/commands/task.mjs +1322 -0
  1926. package/dist/cli/commands/task.mjs.map +1 -0
  1927. package/dist/cli/commands/taste-infer.d.mts +49 -0
  1928. package/dist/cli/commands/taste-infer.d.mts.map +1 -0
  1929. package/dist/cli/commands/taste-infer.mjs +466 -0
  1930. package/dist/cli/commands/taste-infer.mjs.map +1 -0
  1931. package/dist/cli/commands/team.d.mts +5 -0
  1932. package/dist/cli/commands/team.d.mts.map +1 -0
  1933. package/dist/cli/commands/team.mjs +113 -0
  1934. package/dist/cli/commands/team.mjs.map +1 -0
  1935. package/dist/cli/commands/template.d.mts +2 -0
  1936. package/dist/cli/commands/template.d.mts.map +1 -0
  1937. package/dist/cli/commands/template.mjs +41 -0
  1938. package/dist/cli/commands/template.mjs.map +1 -0
  1939. package/dist/cli/commands/terminal.d.mts +8 -0
  1940. package/dist/cli/commands/terminal.d.mts.map +1 -0
  1941. package/dist/cli/commands/terminal.mjs +128 -0
  1942. package/dist/cli/commands/terminal.mjs.map +1 -0
  1943. package/dist/cli/commands/token-budget.d.mts +2 -0
  1944. package/dist/cli/commands/token-budget.d.mts.map +1 -0
  1945. package/dist/cli/commands/token-budget.mjs +122 -0
  1946. package/dist/cli/commands/token-budget.mjs.map +1 -0
  1947. package/dist/cli/commands/tokens.d.mts +5 -0
  1948. package/dist/cli/commands/tokens.d.mts.map +1 -0
  1949. package/dist/cli/commands/tokens.mjs +444 -0
  1950. package/dist/cli/commands/tokens.mjs.map +1 -0
  1951. package/dist/cli/commands/toolchain-detect.d.mts +19 -0
  1952. package/dist/cli/commands/toolchain-detect.d.mts.map +1 -0
  1953. package/dist/cli/commands/toolchain-detect.mjs +394 -0
  1954. package/dist/cli/commands/toolchain-detect.mjs.map +1 -0
  1955. package/dist/cli/commands/uninstall.d.mts +14 -0
  1956. package/dist/cli/commands/uninstall.d.mts.map +1 -0
  1957. package/dist/cli/commands/uninstall.mjs +445 -0
  1958. package/dist/cli/commands/uninstall.mjs.map +1 -0
  1959. package/dist/cli/commands/validate-evidence.d.mts +105 -0
  1960. package/dist/cli/commands/validate-evidence.d.mts.map +1 -0
  1961. package/dist/cli/commands/validate-evidence.mjs +515 -0
  1962. package/dist/cli/commands/validate-evidence.mjs.map +1 -0
  1963. package/dist/cli/commands/variant-gallery.d.mts +2 -0
  1964. package/dist/cli/commands/variant-gallery.d.mts.map +1 -0
  1965. package/dist/cli/commands/variant-gallery.mjs +152 -0
  1966. package/dist/cli/commands/variant-gallery.mjs.map +1 -0
  1967. package/dist/cli/commands/variant-pick.d.mts +2 -0
  1968. package/dist/cli/commands/variant-pick.d.mts.map +1 -0
  1969. package/dist/cli/commands/variant-pick.mjs +95 -0
  1970. package/dist/cli/commands/variant-pick.mjs.map +1 -0
  1971. package/dist/cli/commands/variant-pool.d.mts +2 -0
  1972. package/dist/cli/commands/variant-pool.d.mts.map +1 -0
  1973. package/dist/cli/commands/variant-pool.mjs +81 -0
  1974. package/dist/cli/commands/variant-pool.mjs.map +1 -0
  1975. package/dist/cli/commands/wave.d.mts +2 -0
  1976. package/dist/cli/commands/wave.d.mts.map +1 -0
  1977. package/dist/cli/commands/wave.mjs +185 -0
  1978. package/dist/cli/commands/wave.mjs.map +1 -0
  1979. package/dist/cli/commands/wfrun.d.mts +2 -0
  1980. package/dist/cli/commands/wfrun.d.mts.map +1 -0
  1981. package/dist/cli/commands/wfrun.mjs +58 -0
  1982. package/dist/cli/commands/wfrun.mjs.map +1 -0
  1983. package/dist/cli/commands/workflow.d.mts +2 -0
  1984. package/dist/cli/commands/workflow.d.mts.map +1 -0
  1985. package/dist/cli/commands/workflow.mjs +270 -0
  1986. package/dist/cli/commands/workflow.mjs.map +1 -0
  1987. package/dist/cli/commands/worktree-install.d.mts +10 -0
  1988. package/dist/cli/commands/worktree-install.d.mts.map +1 -0
  1989. package/dist/cli/commands/worktree-install.mjs +552 -0
  1990. package/dist/cli/commands/worktree-install.mjs.map +1 -0
  1991. package/dist/cli/commands/worktree.d.mts +3 -0
  1992. package/dist/cli/commands/worktree.d.mts.map +1 -0
  1993. package/dist/cli/commands/worktree.mjs +481 -0
  1994. package/dist/cli/commands/worktree.mjs.map +1 -0
  1995. package/dist/cli/config/coverage-ac.d.mts +38 -0
  1996. package/dist/cli/config/coverage-ac.d.mts.map +1 -0
  1997. package/dist/cli/config/coverage-ac.mjs +181 -0
  1998. package/dist/cli/config/coverage-ac.mjs.map +1 -0
  1999. package/dist/cli/config/gitignore-drift.d.mts +26 -0
  2000. package/dist/cli/config/gitignore-drift.d.mts.map +1 -0
  2001. package/dist/cli/config/gitignore-drift.mjs +95 -0
  2002. package/dist/cli/config/gitignore-drift.mjs.map +1 -0
  2003. package/dist/cli/config/guard.d.mts +26 -0
  2004. package/dist/cli/config/guard.d.mts.map +1 -0
  2005. package/dist/cli/config/guard.mjs +38 -0
  2006. package/dist/cli/config/guard.mjs.map +1 -0
  2007. package/dist/cli/config/load.d.mts +31 -0
  2008. package/dist/cli/config/load.d.mts.map +1 -0
  2009. package/dist/cli/config/load.mjs +140 -0
  2010. package/dist/cli/config/load.mjs.map +1 -0
  2011. package/dist/cli/config/post-merge-sweep.d.mts +85 -0
  2012. package/dist/cli/config/post-merge-sweep.d.mts.map +1 -0
  2013. package/dist/cli/config/post-merge-sweep.mjs +276 -0
  2014. package/dist/cli/config/post-merge-sweep.mjs.map +1 -0
  2015. package/dist/cli/config/schema-migrate.d.mts +49 -0
  2016. package/dist/cli/config/schema-migrate.d.mts.map +1 -0
  2017. package/dist/cli/config/schema-migrate.mjs +199 -0
  2018. package/dist/cli/config/schema-migrate.mjs.map +1 -0
  2019. package/dist/cli/config/share-policy.d.mts +162 -0
  2020. package/dist/cli/config/share-policy.d.mts.map +1 -0
  2021. package/dist/cli/config/share-policy.mjs +297 -0
  2022. package/dist/cli/config/share-policy.mjs.map +1 -0
  2023. package/dist/cli/config/upgrade-gitignore.d.mts +53 -0
  2024. package/dist/cli/config/upgrade-gitignore.d.mts.map +1 -0
  2025. package/dist/cli/config/upgrade-gitignore.mjs +320 -0
  2026. package/dist/cli/config/upgrade-gitignore.mjs.map +1 -0
  2027. package/dist/cli/config/upgrade-layout.d.mts +75 -0
  2028. package/dist/cli/config/upgrade-layout.d.mts.map +1 -0
  2029. package/dist/cli/config/upgrade-layout.mjs +324 -0
  2030. package/dist/cli/config/upgrade-layout.mjs.map +1 -0
  2031. package/dist/cli/consistency/check.d.mts +21 -0
  2032. package/dist/cli/consistency/check.d.mts.map +1 -0
  2033. package/dist/cli/consistency/check.mjs +185 -0
  2034. package/dist/cli/consistency/check.mjs.map +1 -0
  2035. package/dist/cli/consistency/parse-plan-approval.d.mts +13 -0
  2036. package/dist/cli/consistency/parse-plan-approval.d.mts.map +1 -0
  2037. package/dist/cli/consistency/parse-plan-approval.mjs +49 -0
  2038. package/dist/cli/consistency/parse-plan-approval.mjs.map +1 -0
  2039. package/dist/cli/consistency/parse-plan.d.mts +34 -0
  2040. package/dist/cli/consistency/parse-plan.d.mts.map +1 -0
  2041. package/dist/cli/consistency/parse-plan.mjs +60 -0
  2042. package/dist/cli/consistency/parse-plan.mjs.map +1 -0
  2043. package/dist/cli/consistency/parse-progress.d.mts +25 -0
  2044. package/dist/cli/consistency/parse-progress.d.mts.map +1 -0
  2045. package/dist/cli/consistency/parse-progress.mjs +97 -0
  2046. package/dist/cli/consistency/parse-progress.mjs.map +1 -0
  2047. package/dist/cli/consistency/parse-qa.d.mts +13 -0
  2048. package/dist/cli/consistency/parse-qa.d.mts.map +1 -0
  2049. package/dist/cli/consistency/parse-qa.mjs +90 -0
  2050. package/dist/cli/consistency/parse-qa.mjs.map +1 -0
  2051. package/dist/cli/consistency/parse-review.d.mts +13 -0
  2052. package/dist/cli/consistency/parse-review.d.mts.map +1 -0
  2053. package/dist/cli/consistency/parse-review.mjs +102 -0
  2054. package/dist/cli/consistency/parse-review.mjs.map +1 -0
  2055. package/dist/cli/consistency/parse-spec.d.mts +15 -0
  2056. package/dist/cli/consistency/parse-spec.d.mts.map +1 -0
  2057. package/dist/cli/consistency/parse-spec.mjs +96 -0
  2058. package/dist/cli/consistency/parse-spec.mjs.map +1 -0
  2059. package/dist/cli/consistency/registry.d.mts +27 -0
  2060. package/dist/cli/consistency/registry.d.mts.map +1 -0
  2061. package/dist/cli/consistency/registry.mjs +79 -0
  2062. package/dist/cli/consistency/registry.mjs.map +1 -0
  2063. package/dist/cli/consistency/rules/index.d.mts +2 -0
  2064. package/dist/cli/consistency/rules/index.d.mts.map +1 -0
  2065. package/dist/cli/consistency/rules/index.mjs +18 -0
  2066. package/dist/cli/consistency/rules/index.mjs.map +1 -0
  2067. package/dist/cli/consistency/rules/r1-ac-coverage.d.mts +19 -0
  2068. package/dist/cli/consistency/rules/r1-ac-coverage.d.mts.map +1 -0
  2069. package/dist/cli/consistency/rules/r1-ac-coverage.mjs +66 -0
  2070. package/dist/cli/consistency/rules/r1-ac-coverage.mjs.map +1 -0
  2071. package/dist/cli/consistency/rules/r2-subtask-progress.d.mts +19 -0
  2072. package/dist/cli/consistency/rules/r2-subtask-progress.d.mts.map +1 -0
  2073. package/dist/cli/consistency/rules/r2-subtask-progress.mjs +52 -0
  2074. package/dist/cli/consistency/rules/r2-subtask-progress.mjs.map +1 -0
  2075. package/dist/cli/consistency/rules/r3-dimension-claims.d.mts +19 -0
  2076. package/dist/cli/consistency/rules/r3-dimension-claims.d.mts.map +1 -0
  2077. package/dist/cli/consistency/rules/r3-dimension-claims.mjs +79 -0
  2078. package/dist/cli/consistency/rules/r3-dimension-claims.mjs.map +1 -0
  2079. package/dist/cli/consistency/rules/r4-finding-propagation.d.mts +20 -0
  2080. package/dist/cli/consistency/rules/r4-finding-propagation.d.mts.map +1 -0
  2081. package/dist/cli/consistency/rules/r4-finding-propagation.mjs +66 -0
  2082. package/dist/cli/consistency/rules/r4-finding-propagation.mjs.map +1 -0
  2083. package/dist/cli/consistency/rules/r5-verdict-consistency.d.mts +19 -0
  2084. package/dist/cli/consistency/rules/r5-verdict-consistency.d.mts.map +1 -0
  2085. package/dist/cli/consistency/rules/r5-verdict-consistency.mjs +70 -0
  2086. package/dist/cli/consistency/rules/r5-verdict-consistency.mjs.map +1 -0
  2087. package/dist/cli/consistency/rules/r6-plan-approval.d.mts +33 -0
  2088. package/dist/cli/consistency/rules/r6-plan-approval.d.mts.map +1 -0
  2089. package/dist/cli/consistency/rules/r6-plan-approval.mjs +107 -0
  2090. package/dist/cli/consistency/rules/r6-plan-approval.mjs.map +1 -0
  2091. package/dist/cli/consistency/rules/r7-persona-alignment.d.mts +20 -0
  2092. package/dist/cli/consistency/rules/r7-persona-alignment.d.mts.map +1 -0
  2093. package/dist/cli/consistency/rules/r7-persona-alignment.mjs +216 -0
  2094. package/dist/cli/consistency/rules/r7-persona-alignment.mjs.map +1 -0
  2095. package/dist/cli/constitution/coverage.d.mts +26 -0
  2096. package/dist/cli/constitution/coverage.d.mts.map +1 -0
  2097. package/dist/cli/constitution/coverage.mjs +105 -0
  2098. package/dist/cli/constitution/coverage.mjs.map +1 -0
  2099. package/dist/cli/constitution/match.d.mts +31 -0
  2100. package/dist/cli/constitution/match.d.mts.map +1 -0
  2101. package/dist/cli/constitution/match.mjs +163 -0
  2102. package/dist/cli/constitution/match.mjs.map +1 -0
  2103. package/dist/cli/constitution/parse.d.mts +40 -0
  2104. package/dist/cli/constitution/parse.d.mts.map +1 -0
  2105. package/dist/cli/constitution/parse.mjs +351 -0
  2106. package/dist/cli/constitution/parse.mjs.map +1 -0
  2107. package/dist/cli/coordination/agent-identity.d.mts +22 -0
  2108. package/dist/cli/coordination/agent-identity.d.mts.map +1 -0
  2109. package/dist/cli/coordination/agent-identity.mjs +94 -0
  2110. package/dist/cli/coordination/agent-identity.mjs.map +1 -0
  2111. package/dist/cli/coordination/event-log.d.mts +37 -0
  2112. package/dist/cli/coordination/event-log.d.mts.map +1 -0
  2113. package/dist/cli/coordination/event-log.mjs +88 -0
  2114. package/dist/cli/coordination/event-log.mjs.map +1 -0
  2115. package/dist/cli/coordination/store.d.mts +58 -0
  2116. package/dist/cli/coordination/store.d.mts.map +1 -0
  2117. package/dist/cli/coordination/store.mjs +129 -0
  2118. package/dist/cli/coordination/store.mjs.map +1 -0
  2119. package/dist/cli/coordination/team-status.d.mts +84 -0
  2120. package/dist/cli/coordination/team-status.d.mts.map +1 -0
  2121. package/dist/cli/coordination/team-status.mjs +270 -0
  2122. package/dist/cli/coordination/team-status.mjs.map +1 -0
  2123. package/dist/cli/coverage-check/acceptance-criteria.d.mts +2 -0
  2124. package/dist/cli/coverage-check/acceptance-criteria.d.mts.map +1 -0
  2125. package/dist/cli/coverage-check/acceptance-criteria.mjs +15 -0
  2126. package/dist/cli/coverage-check/acceptance-criteria.mjs.map +1 -0
  2127. package/dist/cli/design/extract-repo.d.mts +69 -0
  2128. package/dist/cli/design/extract-repo.d.mts.map +1 -0
  2129. package/dist/cli/design/extract-repo.mjs +464 -0
  2130. package/dist/cli/design/extract-repo.mjs.map +1 -0
  2131. package/dist/cli/design/extract-url.d.mts +48 -0
  2132. package/dist/cli/design/extract-url.d.mts.map +1 -0
  2133. package/dist/cli/design/extract-url.mjs +435 -0
  2134. package/dist/cli/design/extract-url.mjs.map +1 -0
  2135. package/dist/cli/design/extract.d.mts +83 -0
  2136. package/dist/cli/design/extract.d.mts.map +1 -0
  2137. package/dist/cli/design/extract.mjs +297 -0
  2138. package/dist/cli/design/extract.mjs.map +1 -0
  2139. package/dist/cli/design/frontmatter-schema.d.mts +179 -0
  2140. package/dist/cli/design/frontmatter-schema.d.mts.map +1 -0
  2141. package/dist/cli/design/frontmatter-schema.mjs +153 -0
  2142. package/dist/cli/design/frontmatter-schema.mjs.map +1 -0
  2143. package/dist/cli/design/lint.d.mts +54 -0
  2144. package/dist/cli/design/lint.d.mts.map +1 -0
  2145. package/dist/cli/design/lint.mjs +203 -0
  2146. package/dist/cli/design/lint.mjs.map +1 -0
  2147. package/dist/cli/design/product-context.d.mts +83 -0
  2148. package/dist/cli/design/product-context.d.mts.map +1 -0
  2149. package/dist/cli/design/product-context.mjs +160 -0
  2150. package/dist/cli/design/product-context.mjs.map +1 -0
  2151. package/dist/cli/design/scan.d.mts +47 -0
  2152. package/dist/cli/design/scan.d.mts.map +1 -0
  2153. package/dist/cli/design/scan.mjs +299 -0
  2154. package/dist/cli/design/scan.mjs.map +1 -0
  2155. package/dist/cli/design/schema.d.mts +99 -0
  2156. package/dist/cli/design/schema.d.mts.map +1 -0
  2157. package/dist/cli/design/schema.mjs +77 -0
  2158. package/dist/cli/design/schema.mjs.map +1 -0
  2159. package/dist/cli/design/synthesize.d.mts +229 -0
  2160. package/dist/cli/design/synthesize.d.mts.map +1 -0
  2161. package/dist/cli/design/synthesize.mjs +823 -0
  2162. package/dist/cli/design/synthesize.mjs.map +1 -0
  2163. package/dist/cli/design/template-extract.d.mts +37 -0
  2164. package/dist/cli/design/template-extract.d.mts.map +1 -0
  2165. package/dist/cli/design/template-extract.mjs +454 -0
  2166. package/dist/cli/design/template-extract.mjs.map +1 -0
  2167. package/dist/cli/design/template.d.mts +99 -0
  2168. package/dist/cli/design/template.d.mts.map +1 -0
  2169. package/dist/cli/design/template.mjs +324 -0
  2170. package/dist/cli/design/template.mjs.map +1 -0
  2171. package/dist/cli/design/validate.d.mts +26 -0
  2172. package/dist/cli/design/validate.d.mts.map +1 -0
  2173. package/dist/cli/design/validate.mjs +94 -0
  2174. package/dist/cli/design/validate.mjs.map +1 -0
  2175. package/dist/cli/design/weighted-map.d.mts +37 -0
  2176. package/dist/cli/design/weighted-map.d.mts.map +1 -0
  2177. package/dist/cli/design/weighted-map.mjs +43 -0
  2178. package/dist/cli/design/weighted-map.mjs.map +1 -0
  2179. package/dist/cli/dispatch.d.mts +11 -0
  2180. package/dist/cli/dispatch.d.mts.map +1 -0
  2181. package/dist/cli/dispatch.mjs +263 -0
  2182. package/dist/cli/dispatch.mjs.map +1 -0
  2183. package/dist/cli/docs/features-reader.d.mts +120 -0
  2184. package/dist/cli/docs/features-reader.d.mts.map +1 -0
  2185. package/dist/cli/docs/features-reader.mjs +329 -0
  2186. package/dist/cli/docs/features-reader.mjs.map +1 -0
  2187. package/dist/cli/docs/nav-renderer.d.mts +51 -0
  2188. package/dist/cli/docs/nav-renderer.d.mts.map +1 -0
  2189. package/dist/cli/docs/nav-renderer.mjs +165 -0
  2190. package/dist/cli/docs/nav-renderer.mjs.map +1 -0
  2191. package/dist/cli/docs/structure-planner.d.mts +117 -0
  2192. package/dist/cli/docs/structure-planner.d.mts.map +1 -0
  2193. package/dist/cli/docs/structure-planner.mjs +295 -0
  2194. package/dist/cli/docs/structure-planner.mjs.map +1 -0
  2195. package/dist/cli/docs-audit/audit.d.mts +24 -0
  2196. package/dist/cli/docs-audit/audit.d.mts.map +1 -0
  2197. package/dist/cli/docs-audit/audit.mjs +158 -0
  2198. package/dist/cli/docs-audit/audit.mjs.map +1 -0
  2199. package/dist/cli/docs-audit/grep-claims.d.mts +15 -0
  2200. package/dist/cli/docs-audit/grep-claims.d.mts.map +1 -0
  2201. package/dist/cli/docs-audit/grep-claims.mjs +196 -0
  2202. package/dist/cli/docs-audit/grep-claims.mjs.map +1 -0
  2203. package/dist/cli/docs-audit/index.d.mts +4 -0
  2204. package/dist/cli/docs-audit/index.d.mts.map +1 -0
  2205. package/dist/cli/docs-audit/index.mjs +8 -0
  2206. package/dist/cli/docs-audit/index.mjs.map +1 -0
  2207. package/dist/cli/docs-audit/policy.d.mts +57 -0
  2208. package/dist/cli/docs-audit/policy.d.mts.map +1 -0
  2209. package/dist/cli/docs-audit/policy.mjs +180 -0
  2210. package/dist/cli/docs-audit/policy.mjs.map +1 -0
  2211. package/dist/cli/features/registry-audit.d.mts +56 -0
  2212. package/dist/cli/features/registry-audit.d.mts.map +1 -0
  2213. package/dist/cli/features/registry-audit.mjs +264 -0
  2214. package/dist/cli/features/registry-audit.mjs.map +1 -0
  2215. package/dist/cli/gate/cache.d.mts +31 -0
  2216. package/dist/cli/gate/cache.d.mts.map +1 -0
  2217. package/dist/cli/gate/cache.mjs +130 -0
  2218. package/dist/cli/gate/cache.mjs.map +1 -0
  2219. package/dist/cli/gate/context.d.mts +16 -0
  2220. package/dist/cli/gate/context.d.mts.map +1 -0
  2221. package/dist/cli/gate/context.mjs +85 -0
  2222. package/dist/cli/gate/context.mjs.map +1 -0
  2223. package/dist/cli/gate/gates/all-subtasks-complete.d.mts +21 -0
  2224. package/dist/cli/gate/gates/all-subtasks-complete.d.mts.map +1 -0
  2225. package/dist/cli/gate/gates/all-subtasks-complete.mjs +59 -0
  2226. package/dist/cli/gate/gates/all-subtasks-complete.mjs.map +1 -0
  2227. package/dist/cli/gate/gates/consistency-check.d.mts +27 -0
  2228. package/dist/cli/gate/gates/consistency-check.d.mts.map +1 -0
  2229. package/dist/cli/gate/gates/consistency-check.mjs +57 -0
  2230. package/dist/cli/gate/gates/consistency-check.mjs.map +1 -0
  2231. package/dist/cli/gate/gates/constitution-coverage.d.mts +40 -0
  2232. package/dist/cli/gate/gates/constitution-coverage.d.mts.map +1 -0
  2233. package/dist/cli/gate/gates/constitution-coverage.mjs +61 -0
  2234. package/dist/cli/gate/gates/constitution-coverage.mjs.map +1 -0
  2235. package/dist/cli/gate/gates/constitution-read.d.mts +13 -0
  2236. package/dist/cli/gate/gates/constitution-read.d.mts.map +1 -0
  2237. package/dist/cli/gate/gates/constitution-read.mjs +35 -0
  2238. package/dist/cli/gate/gates/constitution-read.mjs.map +1 -0
  2239. package/dist/cli/gate/gates/gitignore-in-sync.d.mts +21 -0
  2240. package/dist/cli/gate/gates/gitignore-in-sync.d.mts.map +1 -0
  2241. package/dist/cli/gate/gates/gitignore-in-sync.mjs +39 -0
  2242. package/dist/cli/gate/gates/gitignore-in-sync.mjs.map +1 -0
  2243. package/dist/cli/gate/gates/index.d.mts +2 -0
  2244. package/dist/cli/gate/gates/index.d.mts.map +1 -0
  2245. package/dist/cli/gate/gates/index.mjs +22 -0
  2246. package/dist/cli/gate/gates/index.mjs.map +1 -0
  2247. package/dist/cli/gate/gates/plan-exists.d.mts +13 -0
  2248. package/dist/cli/gate/gates/plan-exists.d.mts.map +1 -0
  2249. package/dist/cli/gate/gates/plan-exists.mjs +54 -0
  2250. package/dist/cli/gate/gates/plan-exists.mjs.map +1 -0
  2251. package/dist/cli/gate/gates/r-persona-alignment.d.mts +45 -0
  2252. package/dist/cli/gate/gates/r-persona-alignment.d.mts.map +1 -0
  2253. package/dist/cli/gate/gates/r-persona-alignment.mjs +322 -0
  2254. package/dist/cli/gate/gates/r-persona-alignment.mjs.map +1 -0
  2255. package/dist/cli/gate/gates/review-clean.d.mts +21 -0
  2256. package/dist/cli/gate/gates/review-clean.d.mts.map +1 -0
  2257. package/dist/cli/gate/gates/review-clean.mjs +71 -0
  2258. package/dist/cli/gate/gates/review-clean.mjs.map +1 -0
  2259. package/dist/cli/gate/gates/tdd-iron-law.d.mts +25 -0
  2260. package/dist/cli/gate/gates/tdd-iron-law.d.mts.map +1 -0
  2261. package/dist/cli/gate/gates/tdd-iron-law.mjs +233 -0
  2262. package/dist/cli/gate/gates/tdd-iron-law.mjs.map +1 -0
  2263. package/dist/cli/gate/gates/verify-approved.d.mts +21 -0
  2264. package/dist/cli/gate/gates/verify-approved.d.mts.map +1 -0
  2265. package/dist/cli/gate/gates/verify-approved.mjs +61 -0
  2266. package/dist/cli/gate/gates/verify-approved.mjs.map +1 -0
  2267. package/dist/cli/gate/registry.d.mts +35 -0
  2268. package/dist/cli/gate/registry.d.mts.map +1 -0
  2269. package/dist/cli/gate/registry.mjs +97 -0
  2270. package/dist/cli/gate/registry.mjs.map +1 -0
  2271. package/dist/cli/git/identity.d.mts +19 -0
  2272. package/dist/cli/git/identity.d.mts.map +1 -0
  2273. package/dist/cli/git/identity.mjs +53 -0
  2274. package/dist/cli/git/identity.mjs.map +1 -0
  2275. package/dist/cli/git/remote.d.mts +38 -0
  2276. package/dist/cli/git/remote.d.mts.map +1 -0
  2277. package/dist/cli/git/remote.mjs +87 -0
  2278. package/dist/cli/git/remote.mjs.map +1 -0
  2279. package/dist/cli/git/worktree-detect.d.mts +19 -0
  2280. package/dist/cli/git/worktree-detect.d.mts.map +1 -0
  2281. package/dist/cli/git/worktree-detect.mjs +52 -0
  2282. package/dist/cli/git/worktree-detect.mjs.map +1 -0
  2283. package/dist/cli/graph/depends-on.d.mts +21 -0
  2284. package/dist/cli/graph/depends-on.d.mts.map +1 -0
  2285. package/dist/cli/graph/depends-on.mjs +101 -0
  2286. package/dist/cli/graph/depends-on.mjs.map +1 -0
  2287. package/dist/cli/graph/task-ref.d.mts +23 -0
  2288. package/dist/cli/graph/task-ref.d.mts.map +1 -0
  2289. package/dist/cli/graph/task-ref.mjs +42 -0
  2290. package/dist/cli/graph/task-ref.mjs.map +1 -0
  2291. package/dist/cli/help.d.mts +2 -0
  2292. package/dist/cli/help.d.mts.map +1 -0
  2293. package/dist/cli/help.mjs +132 -0
  2294. package/dist/cli/help.mjs.map +1 -0
  2295. package/dist/cli/host/detect.d.mts +57 -0
  2296. package/dist/cli/host/detect.d.mts.map +1 -0
  2297. package/dist/cli/host/detect.mjs +213 -0
  2298. package/dist/cli/host/detect.mjs.map +1 -0
  2299. package/dist/cli/host/resolve.d.mts +17 -0
  2300. package/dist/cli/host/resolve.d.mts.map +1 -0
  2301. package/dist/cli/host/resolve.mjs +50 -0
  2302. package/dist/cli/host/resolve.mjs.map +1 -0
  2303. package/dist/cli/install/archetype.d.mts +18 -0
  2304. package/dist/cli/install/archetype.d.mts.map +1 -0
  2305. package/dist/cli/install/archetype.mjs +150 -0
  2306. package/dist/cli/install/archetype.mjs.map +1 -0
  2307. package/dist/cli/install/atomic-text.d.mts +2 -0
  2308. package/dist/cli/install/atomic-text.d.mts.map +1 -0
  2309. package/dist/cli/install/atomic-text.mjs +9 -0
  2310. package/dist/cli/install/atomic-text.mjs.map +1 -0
  2311. package/dist/cli/install/claude-hooks.d.mts +44 -0
  2312. package/dist/cli/install/claude-hooks.d.mts.map +1 -0
  2313. package/dist/cli/install/claude-hooks.mjs +89 -0
  2314. package/dist/cli/install/claude-hooks.mjs.map +1 -0
  2315. package/dist/cli/install/cli-to-install-root.d.mts +18 -0
  2316. package/dist/cli/install/cli-to-install-root.d.mts.map +1 -0
  2317. package/dist/cli/install/cli-to-install-root.mjs +47 -0
  2318. package/dist/cli/install/cli-to-install-root.mjs.map +1 -0
  2319. package/dist/cli/install/detached-spawn.d.mts +128 -0
  2320. package/dist/cli/install/detached-spawn.d.mts.map +1 -0
  2321. package/dist/cli/install/detached-spawn.mjs +245 -0
  2322. package/dist/cli/install/detached-spawn.mjs.map +1 -0
  2323. package/dist/cli/install/ecosystem-commands.d.mts +42 -0
  2324. package/dist/cli/install/ecosystem-commands.d.mts.map +1 -0
  2325. package/dist/cli/install/ecosystem-commands.mjs +157 -0
  2326. package/dist/cli/install/ecosystem-commands.mjs.map +1 -0
  2327. package/dist/cli/install/home-stub.d.mts +19 -0
  2328. package/dist/cli/install/home-stub.d.mts.map +1 -0
  2329. package/dist/cli/install/home-stub.mjs +94 -0
  2330. package/dist/cli/install/home-stub.mjs.map +1 -0
  2331. package/dist/cli/install/install-kernel.d.mts +43 -0
  2332. package/dist/cli/install/install-kernel.d.mts.map +1 -0
  2333. package/dist/cli/install/install-kernel.mjs +172 -0
  2334. package/dist/cli/install/install-kernel.mjs.map +1 -0
  2335. package/dist/cli/install/install-semaphore.d.mts +41 -0
  2336. package/dist/cli/install/install-semaphore.d.mts.map +1 -0
  2337. package/dist/cli/install/install-semaphore.mjs +191 -0
  2338. package/dist/cli/install/install-semaphore.mjs.map +1 -0
  2339. package/dist/cli/install/manifest-scanner.d.mts +39 -0
  2340. package/dist/cli/install/manifest-scanner.d.mts.map +1 -0
  2341. package/dist/cli/install/manifest-scanner.mjs +241 -0
  2342. package/dist/cli/install/manifest-scanner.mjs.map +1 -0
  2343. package/dist/cli/install/manifest.d.mts +85 -0
  2344. package/dist/cli/install/manifest.d.mts.map +1 -0
  2345. package/dist/cli/install/manifest.mjs +161 -0
  2346. package/dist/cli/install/manifest.mjs.map +1 -0
  2347. package/dist/cli/install/pipeline.d.mts +104 -0
  2348. package/dist/cli/install/pipeline.d.mts.map +1 -0
  2349. package/dist/cli/install/pipeline.mjs +266 -0
  2350. package/dist/cli/install/pipeline.mjs.map +1 -0
  2351. package/dist/cli/install/runtime-detect.d.mts +77 -0
  2352. package/dist/cli/install/runtime-detect.d.mts.map +1 -0
  2353. package/dist/cli/install/runtime-detect.mjs +193 -0
  2354. package/dist/cli/install/runtime-detect.mjs.map +1 -0
  2355. package/dist/cli/install/setting-class.d.mts +73 -0
  2356. package/dist/cli/install/setting-class.d.mts.map +1 -0
  2357. package/dist/cli/install/setting-class.mjs +175 -0
  2358. package/dist/cli/install/setting-class.mjs.map +1 -0
  2359. package/dist/cli/install/transforms/_shared.d.mts +183 -0
  2360. package/dist/cli/install/transforms/_shared.d.mts.map +1 -0
  2361. package/dist/cli/install/transforms/_shared.mjs +328 -0
  2362. package/dist/cli/install/transforms/_shared.mjs.map +1 -0
  2363. package/dist/cli/install/transforms/antigravity.d.mts +2 -0
  2364. package/dist/cli/install/transforms/antigravity.d.mts.map +1 -0
  2365. package/dist/cli/install/transforms/antigravity.mjs +14 -0
  2366. package/dist/cli/install/transforms/antigravity.mjs.map +1 -0
  2367. package/dist/cli/install/transforms/augment.d.mts +2 -0
  2368. package/dist/cli/install/transforms/augment.d.mts.map +1 -0
  2369. package/dist/cli/install/transforms/augment.mjs +13 -0
  2370. package/dist/cli/install/transforms/augment.mjs.map +1 -0
  2371. package/dist/cli/install/transforms/claude.d.mts +6 -0
  2372. package/dist/cli/install/transforms/claude.d.mts.map +1 -0
  2373. package/dist/cli/install/transforms/claude.mjs +40 -0
  2374. package/dist/cli/install/transforms/claude.mjs.map +1 -0
  2375. package/dist/cli/install/transforms/cline.d.mts +2 -0
  2376. package/dist/cli/install/transforms/cline.d.mts.map +1 -0
  2377. package/dist/cli/install/transforms/cline.mjs +14 -0
  2378. package/dist/cli/install/transforms/cline.mjs.map +1 -0
  2379. package/dist/cli/install/transforms/codebuddy.d.mts +2 -0
  2380. package/dist/cli/install/transforms/codebuddy.d.mts.map +1 -0
  2381. package/dist/cli/install/transforms/codebuddy.mjs +14 -0
  2382. package/dist/cli/install/transforms/codebuddy.mjs.map +1 -0
  2383. package/dist/cli/install/transforms/codex.d.mts +6 -0
  2384. package/dist/cli/install/transforms/codex.d.mts.map +1 -0
  2385. package/dist/cli/install/transforms/codex.mjs +48 -0
  2386. package/dist/cli/install/transforms/codex.mjs.map +1 -0
  2387. package/dist/cli/install/transforms/copilot.d.mts +2 -0
  2388. package/dist/cli/install/transforms/copilot.d.mts.map +1 -0
  2389. package/dist/cli/install/transforms/copilot.mjs +18 -0
  2390. package/dist/cli/install/transforms/copilot.mjs.map +1 -0
  2391. package/dist/cli/install/transforms/cursor.d.mts +6 -0
  2392. package/dist/cli/install/transforms/cursor.d.mts.map +1 -0
  2393. package/dist/cli/install/transforms/cursor.mjs +34 -0
  2394. package/dist/cli/install/transforms/cursor.mjs.map +1 -0
  2395. package/dist/cli/install/transforms/gemini.d.mts +14 -0
  2396. package/dist/cli/install/transforms/gemini.d.mts.map +1 -0
  2397. package/dist/cli/install/transforms/gemini.mjs +54 -0
  2398. package/dist/cli/install/transforms/gemini.mjs.map +1 -0
  2399. package/dist/cli/install/transforms/kilo.d.mts +6 -0
  2400. package/dist/cli/install/transforms/kilo.d.mts.map +1 -0
  2401. package/dist/cli/install/transforms/kilo.mjs +29 -0
  2402. package/dist/cli/install/transforms/kilo.mjs.map +1 -0
  2403. package/dist/cli/install/transforms/opencode.d.mts +16 -0
  2404. package/dist/cli/install/transforms/opencode.d.mts.map +1 -0
  2405. package/dist/cli/install/transforms/opencode.mjs +59 -0
  2406. package/dist/cli/install/transforms/opencode.mjs.map +1 -0
  2407. package/dist/cli/install/transforms/qwen.d.mts +2 -0
  2408. package/dist/cli/install/transforms/qwen.d.mts.map +1 -0
  2409. package/dist/cli/install/transforms/qwen.mjs +13 -0
  2410. package/dist/cli/install/transforms/qwen.mjs.map +1 -0
  2411. package/dist/cli/install/transforms/trae.d.mts +2 -0
  2412. package/dist/cli/install/transforms/trae.d.mts.map +1 -0
  2413. package/dist/cli/install/transforms/trae.mjs +13 -0
  2414. package/dist/cli/install/transforms/trae.mjs.map +1 -0
  2415. package/dist/cli/install/transforms/windsurf.d.mts +6 -0
  2416. package/dist/cli/install/transforms/windsurf.d.mts.map +1 -0
  2417. package/dist/cli/install/transforms/windsurf.mjs +34 -0
  2418. package/dist/cli/install/transforms/windsurf.mjs.map +1 -0
  2419. package/dist/cli/install/update-chips.d.mts +47 -0
  2420. package/dist/cli/install/update-chips.d.mts.map +1 -0
  2421. package/dist/cli/install/update-chips.mjs +94 -0
  2422. package/dist/cli/install/update-chips.mjs.map +1 -0
  2423. package/dist/cli/install/version-header.d.mts +103 -0
  2424. package/dist/cli/install/version-header.d.mts.map +1 -0
  2425. package/dist/cli/install/version-header.mjs +254 -0
  2426. package/dist/cli/install/version-header.mjs.map +1 -0
  2427. package/dist/cli/lock/pid.d.mts +12 -0
  2428. package/dist/cli/lock/pid.d.mts.map +1 -0
  2429. package/dist/cli/lock/pid.mjs +26 -0
  2430. package/dist/cli/lock/pid.mjs.map +1 -0
  2431. package/dist/cli/output-style/ansi.d.mts +48 -0
  2432. package/dist/cli/output-style/ansi.d.mts.map +1 -0
  2433. package/dist/cli/output-style/ansi.mjs +89 -0
  2434. package/dist/cli/output-style/ansi.mjs.map +1 -0
  2435. package/dist/cli/output-style/helpers.d.mts +87 -0
  2436. package/dist/cli/output-style/helpers.d.mts.map +1 -0
  2437. package/dist/cli/output-style/helpers.mjs +178 -0
  2438. package/dist/cli/output-style/helpers.mjs.map +1 -0
  2439. package/dist/cli/output-style/index.d.mts +3 -0
  2440. package/dist/cli/output-style/index.d.mts.map +1 -0
  2441. package/dist/cli/output-style/index.mjs +9 -0
  2442. package/dist/cli/output-style/index.mjs.map +1 -0
  2443. package/dist/cli/personas/role-scan.d.mts +42 -0
  2444. package/dist/cli/personas/role-scan.d.mts.map +1 -0
  2445. package/dist/cli/personas/role-scan.mjs +313 -0
  2446. package/dist/cli/personas/role-scan.mjs.map +1 -0
  2447. package/dist/cli/personas/sidecar.d.mts +253 -0
  2448. package/dist/cli/personas/sidecar.d.mts.map +1 -0
  2449. package/dist/cli/personas/sidecar.mjs +452 -0
  2450. package/dist/cli/personas/sidecar.mjs.map +1 -0
  2451. package/dist/cli/personas/tier-rubric.d.mts +120 -0
  2452. package/dist/cli/personas/tier-rubric.d.mts.map +1 -0
  2453. package/dist/cli/personas/tier-rubric.mjs +172 -0
  2454. package/dist/cli/personas/tier-rubric.mjs.map +1 -0
  2455. package/dist/cli/profile/parse.d.mts +52 -0
  2456. package/dist/cli/profile/parse.d.mts.map +1 -0
  2457. package/dist/cli/profile/parse.mjs +174 -0
  2458. package/dist/cli/profile/parse.mjs.map +1 -0
  2459. package/dist/cli/profile/resolve.d.mts +21 -0
  2460. package/dist/cli/profile/resolve.d.mts.map +1 -0
  2461. package/dist/cli/profile/resolve.mjs +154 -0
  2462. package/dist/cli/profile/resolve.mjs.map +1 -0
  2463. package/dist/cli/profile/schema.d.mts +46 -0
  2464. package/dist/cli/profile/schema.d.mts.map +1 -0
  2465. package/dist/cli/profile/schema.mjs +44 -0
  2466. package/dist/cli/profile/schema.mjs.map +1 -0
  2467. package/dist/cli/risk/globs.d.mts +23 -0
  2468. package/dist/cli/risk/globs.d.mts.map +1 -0
  2469. package/dist/cli/risk/globs.mjs +73 -0
  2470. package/dist/cli/risk/globs.mjs.map +1 -0
  2471. package/dist/cli/risk/postcondition.d.mts +46 -0
  2472. package/dist/cli/risk/postcondition.d.mts.map +1 -0
  2473. package/dist/cli/risk/postcondition.mjs +67 -0
  2474. package/dist/cli/risk/postcondition.mjs.map +1 -0
  2475. package/dist/cli/risk/secrets.d.mts +6 -0
  2476. package/dist/cli/risk/secrets.d.mts.map +1 -0
  2477. package/dist/cli/risk/secrets.mjs +39 -0
  2478. package/dist/cli/risk/secrets.mjs.map +1 -0
  2479. package/dist/cli/roadmap/io.d.mts +30 -0
  2480. package/dist/cli/roadmap/io.d.mts.map +1 -0
  2481. package/dist/cli/roadmap/io.mjs +189 -0
  2482. package/dist/cli/roadmap/io.mjs.map +1 -0
  2483. package/dist/cli/roadmap/lifecycle.d.mts +53 -0
  2484. package/dist/cli/roadmap/lifecycle.d.mts.map +1 -0
  2485. package/dist/cli/roadmap/lifecycle.mjs +105 -0
  2486. package/dist/cli/roadmap/lifecycle.mjs.map +1 -0
  2487. package/dist/cli/roadmap/paths.d.mts +9 -0
  2488. package/dist/cli/roadmap/paths.d.mts.map +1 -0
  2489. package/dist/cli/roadmap/paths.mjs +60 -0
  2490. package/dist/cli/roadmap/paths.mjs.map +1 -0
  2491. package/dist/cli/roadmap/phases-io.d.mts +68 -0
  2492. package/dist/cli/roadmap/phases-io.d.mts.map +1 -0
  2493. package/dist/cli/roadmap/phases-io.mjs +220 -0
  2494. package/dist/cli/roadmap/phases-io.mjs.map +1 -0
  2495. package/dist/cli/roadmap/render.d.mts +13 -0
  2496. package/dist/cli/roadmap/render.d.mts.map +1 -0
  2497. package/dist/cli/roadmap/render.mjs +63 -0
  2498. package/dist/cli/roadmap/render.mjs.map +1 -0
  2499. package/dist/cli/roadmap/rollup.d.mts +38 -0
  2500. package/dist/cli/roadmap/rollup.d.mts.map +1 -0
  2501. package/dist/cli/roadmap/rollup.mjs +93 -0
  2502. package/dist/cli/roadmap/rollup.mjs.map +1 -0
  2503. package/dist/cli/roadmap/scope-lookup.d.mts +31 -0
  2504. package/dist/cli/roadmap/scope-lookup.d.mts.map +1 -0
  2505. package/dist/cli/roadmap/scope-lookup.mjs +64 -0
  2506. package/dist/cli/roadmap/scope-lookup.mjs.map +1 -0
  2507. package/dist/cli/roadmap/sync.d.mts +37 -0
  2508. package/dist/cli/roadmap/sync.d.mts.map +1 -0
  2509. package/dist/cli/roadmap/sync.mjs +114 -0
  2510. package/dist/cli/roadmap/sync.mjs.map +1 -0
  2511. package/dist/cli/route/envelope.d.mts +78 -0
  2512. package/dist/cli/route/envelope.d.mts.map +1 -0
  2513. package/dist/cli/route/envelope.mjs +297 -0
  2514. package/dist/cli/route/envelope.mjs.map +1 -0
  2515. package/dist/cli/route/skill-discover.d.mts +47 -0
  2516. package/dist/cli/route/skill-discover.d.mts.map +1 -0
  2517. package/dist/cli/route/skill-discover.mjs +312 -0
  2518. package/dist/cli/route/skill-discover.mjs.map +1 -0
  2519. package/dist/cli/seeds/io.d.mts +51 -0
  2520. package/dist/cli/seeds/io.d.mts.map +1 -0
  2521. package/dist/cli/seeds/io.mjs +142 -0
  2522. package/dist/cli/seeds/io.mjs.map +1 -0
  2523. package/dist/cli/seeds/render.d.mts +11 -0
  2524. package/dist/cli/seeds/render.d.mts.map +1 -0
  2525. package/dist/cli/seeds/render.mjs +159 -0
  2526. package/dist/cli/seeds/render.mjs.map +1 -0
  2527. package/dist/cli/seeds/validate.d.mts +82 -0
  2528. package/dist/cli/seeds/validate.d.mts.map +1 -0
  2529. package/dist/cli/seeds/validate.mjs +177 -0
  2530. package/dist/cli/seeds/validate.mjs.map +1 -0
  2531. package/dist/cli/skill-author/contract.d.mts +78 -0
  2532. package/dist/cli/skill-author/contract.d.mts.map +1 -0
  2533. package/dist/cli/skill-author/contract.mjs +171 -0
  2534. package/dist/cli/skill-author/contract.mjs.map +1 -0
  2535. package/dist/cli/skill-author/scaffold.d.mts +21 -0
  2536. package/dist/cli/skill-author/scaffold.d.mts.map +1 -0
  2537. package/dist/cli/skill-author/scaffold.mjs +71 -0
  2538. package/dist/cli/skill-author/scaffold.mjs.map +1 -0
  2539. package/dist/cli/skill-author/skill-template.d.mts +19 -0
  2540. package/dist/cli/skill-author/skill-template.d.mts.map +1 -0
  2541. package/dist/cli/skill-author/skill-template.mjs +91 -0
  2542. package/dist/cli/skill-author/skill-template.mjs.map +1 -0
  2543. package/dist/cli/skill-author/test-template.d.mts +19 -0
  2544. package/dist/cli/skill-author/test-template.d.mts.map +1 -0
  2545. package/dist/cli/skill-author/test-template.mjs +56 -0
  2546. package/dist/cli/skill-author/test-template.mjs.map +1 -0
  2547. package/dist/cli/skill-author/validate.d.mts +16 -0
  2548. package/dist/cli/skill-author/validate.d.mts.map +1 -0
  2549. package/dist/cli/skill-author/validate.mjs +114 -0
  2550. package/dist/cli/skill-author/validate.mjs.map +1 -0
  2551. package/dist/cli/task/build-progress-sync.d.mts +44 -0
  2552. package/dist/cli/task/build-progress-sync.d.mts.map +1 -0
  2553. package/dist/cli/task/build-progress-sync.mjs +194 -0
  2554. package/dist/cli/task/build-progress-sync.mjs.map +1 -0
  2555. package/dist/cli/task/execution-mode.d.mts +19 -0
  2556. package/dist/cli/task/execution-mode.d.mts.map +1 -0
  2557. package/dist/cli/task/execution-mode.mjs +30 -0
  2558. package/dist/cli/task/execution-mode.mjs.map +1 -0
  2559. package/dist/cli/task/format.d.mts +8 -0
  2560. package/dist/cli/task/format.d.mts.map +1 -0
  2561. package/dist/cli/task/format.mjs +30 -0
  2562. package/dist/cli/task/format.mjs.map +1 -0
  2563. package/dist/cli/task/ids.d.mts +22 -0
  2564. package/dist/cli/task/ids.d.mts.map +1 -0
  2565. package/dist/cli/task/ids.mjs +55 -0
  2566. package/dist/cli/task/ids.mjs.map +1 -0
  2567. package/dist/cli/task/index-md.d.mts +6 -0
  2568. package/dist/cli/task/index-md.d.mts.map +1 -0
  2569. package/dist/cli/task/index-md.mjs +85 -0
  2570. package/dist/cli/task/index-md.mjs.map +1 -0
  2571. package/dist/cli/task/outputs-guard.d.mts +75 -0
  2572. package/dist/cli/task/outputs-guard.d.mts.map +1 -0
  2573. package/dist/cli/task/outputs-guard.mjs +166 -0
  2574. package/dist/cli/task/outputs-guard.mjs.map +1 -0
  2575. package/dist/cli/task/worktree-cleanup.d.mts +8 -0
  2576. package/dist/cli/task/worktree-cleanup.d.mts.map +1 -0
  2577. package/dist/cli/task/worktree-cleanup.mjs +128 -0
  2578. package/dist/cli/task/worktree-cleanup.mjs.map +1 -0
  2579. package/dist/cli/team/team.d.mts +87 -0
  2580. package/dist/cli/team/team.d.mts.map +1 -0
  2581. package/dist/cli/team/team.mjs +360 -0
  2582. package/dist/cli/team/team.mjs.map +1 -0
  2583. package/dist/cli/terminal/socket-client.d.mts +13 -0
  2584. package/dist/cli/terminal/socket-client.d.mts.map +1 -0
  2585. package/dist/cli/terminal/socket-client.mjs +132 -0
  2586. package/dist/cli/terminal/socket-client.mjs.map +1 -0
  2587. package/dist/cli/util/agent-runtime.d.mts +21 -0
  2588. package/dist/cli/util/agent-runtime.d.mts.map +1 -0
  2589. package/dist/cli/util/agent-runtime.mjs +30 -0
  2590. package/dist/cli/util/agent-runtime.mjs.map +1 -0
  2591. package/dist/cli/util/args.d.mts +11 -0
  2592. package/dist/cli/util/args.d.mts.map +1 -0
  2593. package/dist/cli/util/args.mjs +28 -0
  2594. package/dist/cli/util/args.mjs.map +1 -0
  2595. package/dist/cli/util/atomic-write.d.mts +32 -0
  2596. package/dist/cli/util/atomic-write.d.mts.map +1 -0
  2597. package/dist/cli/util/atomic-write.mjs +142 -0
  2598. package/dist/cli/util/atomic-write.mjs.map +1 -0
  2599. package/dist/cli/util/banner.d.mts +9 -0
  2600. package/dist/cli/util/banner.d.mts.map +1 -0
  2601. package/dist/cli/util/banner.mjs +55 -0
  2602. package/dist/cli/util/banner.mjs.map +1 -0
  2603. package/dist/cli/util/bin-path.d.mts +8 -0
  2604. package/dist/cli/util/bin-path.d.mts.map +1 -0
  2605. package/dist/cli/util/bin-path.mjs +64 -0
  2606. package/dist/cli/util/bin-path.mjs.map +1 -0
  2607. package/dist/cli/util/common-flags.d.mts +18 -0
  2608. package/dist/cli/util/common-flags.d.mts.map +1 -0
  2609. package/dist/cli/util/common-flags.mjs +36 -0
  2610. package/dist/cli/util/common-flags.mjs.map +1 -0
  2611. package/dist/cli/util/copy.d.mts +3 -0
  2612. package/dist/cli/util/copy.d.mts.map +1 -0
  2613. package/dist/cli/util/copy.mjs +81 -0
  2614. package/dist/cli/util/copy.mjs.map +1 -0
  2615. package/dist/cli/util/duration.d.mts +29 -0
  2616. package/dist/cli/util/duration.d.mts.map +1 -0
  2617. package/dist/cli/util/duration.mjs +64 -0
  2618. package/dist/cli/util/duration.mjs.map +1 -0
  2619. package/dist/cli/util/fs-lock.d.mts +15 -0
  2620. package/dist/cli/util/fs-lock.d.mts.map +1 -0
  2621. package/dist/cli/util/fs-lock.mjs +112 -0
  2622. package/dist/cli/util/fs-lock.mjs.map +1 -0
  2623. package/dist/cli/util/init-hints.d.mts +29 -0
  2624. package/dist/cli/util/init-hints.d.mts.map +1 -0
  2625. package/dist/cli/util/init-hints.mjs +89 -0
  2626. package/dist/cli/util/init-hints.mjs.map +1 -0
  2627. package/dist/cli/util/io.d.mts +18 -0
  2628. package/dist/cli/util/io.d.mts.map +1 -0
  2629. package/dist/cli/util/io.mjs +42 -0
  2630. package/dist/cli/util/io.mjs.map +1 -0
  2631. package/dist/cli/util/project.d.mts +12 -0
  2632. package/dist/cli/util/project.d.mts.map +1 -0
  2633. package/dist/cli/util/project.mjs +46 -0
  2634. package/dist/cli/util/project.mjs.map +1 -0
  2635. package/dist/cli/util/result.d.mts +113 -0
  2636. package/dist/cli/util/result.d.mts.map +1 -0
  2637. package/dist/cli/util/result.mjs +107 -0
  2638. package/dist/cli/util/result.mjs.map +1 -0
  2639. package/dist/cli/util/skill-installs.d.mts +14 -0
  2640. package/dist/cli/util/skill-installs.d.mts.map +1 -0
  2641. package/dist/cli/util/skill-installs.mjs +35 -0
  2642. package/dist/cli/util/skill-installs.mjs.map +1 -0
  2643. package/dist/cli/variant/gallery.d.mts +37 -0
  2644. package/dist/cli/variant/gallery.d.mts.map +1 -0
  2645. package/dist/cli/variant/gallery.mjs +159 -0
  2646. package/dist/cli/variant/gallery.mjs.map +1 -0
  2647. package/dist/cli/variant/pick.d.mts +48 -0
  2648. package/dist/cli/variant/pick.d.mts.map +1 -0
  2649. package/dist/cli/variant/pick.mjs +100 -0
  2650. package/dist/cli/variant/pick.mjs.map +1 -0
  2651. package/dist/cli/variant/pool.d.mts +52 -0
  2652. package/dist/cli/variant/pool.d.mts.map +1 -0
  2653. package/dist/cli/variant/pool.mjs +158 -0
  2654. package/dist/cli/variant/pool.mjs.map +1 -0
  2655. package/dist/cli/wfrun/dag.d.mts +28 -0
  2656. package/dist/cli/wfrun/dag.d.mts.map +1 -0
  2657. package/dist/cli/wfrun/dag.mjs +115 -0
  2658. package/dist/cli/wfrun/dag.mjs.map +1 -0
  2659. package/dist/cli/wfrun/interpolate.d.mts +48 -0
  2660. package/dist/cli/wfrun/interpolate.d.mts.map +1 -0
  2661. package/dist/cli/wfrun/interpolate.mjs +112 -0
  2662. package/dist/cli/wfrun/interpolate.mjs.map +1 -0
  2663. package/dist/cli/wfrun/parse.d.mts +70 -0
  2664. package/dist/cli/wfrun/parse.d.mts.map +1 -0
  2665. package/dist/cli/wfrun/parse.mjs +109 -0
  2666. package/dist/cli/wfrun/parse.mjs.map +1 -0
  2667. package/dist/cli/wfrun/run.d.mts +40 -0
  2668. package/dist/cli/wfrun/run.d.mts.map +1 -0
  2669. package/dist/cli/wfrun/run.mjs +477 -0
  2670. package/dist/cli/wfrun/run.mjs.map +1 -0
  2671. package/dist/cli/wfrun/schema.d.mts +69 -0
  2672. package/dist/cli/wfrun/schema.d.mts.map +1 -0
  2673. package/dist/cli/wfrun/schema.mjs +98 -0
  2674. package/dist/cli/wfrun/schema.mjs.map +1 -0
  2675. package/dist/constitution.d.ts +31 -0
  2676. package/dist/constitution.d.ts.map +1 -0
  2677. package/dist/constitution.js +79 -0
  2678. package/dist/constitution.js.map +1 -0
  2679. package/dist/cost/index.d.ts +4 -0
  2680. package/dist/cost/index.d.ts.map +1 -0
  2681. package/dist/cost/index.js +3 -0
  2682. package/dist/cost/index.js.map +1 -0
  2683. package/dist/cost/pricing.d.mts +62 -0
  2684. package/dist/cost/pricing.d.mts.map +1 -0
  2685. package/dist/cost/pricing.d.ts +22 -0
  2686. package/dist/cost/pricing.d.ts.map +1 -0
  2687. package/dist/cost/pricing.js +41 -0
  2688. package/dist/cost/pricing.js.map +1 -0
  2689. package/dist/cost/pricing.mjs +47 -0
  2690. package/dist/cost/pricing.mjs.map +1 -0
  2691. package/dist/cost/tracker.d.mts +20 -0
  2692. package/dist/cost/tracker.d.mts.map +1 -0
  2693. package/dist/cost/tracker.d.ts +39 -0
  2694. package/dist/cost/tracker.d.ts.map +1 -0
  2695. package/dist/cost/tracker.js +129 -0
  2696. package/dist/cost/tracker.js.map +1 -0
  2697. package/dist/cost/tracker.mjs +52 -0
  2698. package/dist/cost/tracker.mjs.map +1 -0
  2699. package/dist/cost/transcript.d.mts +16 -0
  2700. package/dist/cost/transcript.d.mts.map +1 -0
  2701. package/dist/cost/transcript.d.ts +50 -0
  2702. package/dist/cost/transcript.d.ts.map +1 -0
  2703. package/dist/cost/transcript.js +147 -0
  2704. package/dist/cost/transcript.js.map +1 -0
  2705. package/dist/cost/transcript.mjs +119 -0
  2706. package/dist/cost/transcript.mjs.map +1 -0
  2707. package/dist/cost/types.d.ts +50 -0
  2708. package/dist/cost/types.d.ts.map +1 -0
  2709. package/dist/cost/types.js +2 -0
  2710. package/dist/cost/types.js.map +1 -0
  2711. package/dist/helpers/cycle.d.ts +25 -0
  2712. package/dist/helpers/cycle.d.ts.map +1 -0
  2713. package/dist/helpers/cycle.js +75 -0
  2714. package/dist/helpers/cycle.js.map +1 -0
  2715. package/dist/helpers/index.d.ts +7 -0
  2716. package/dist/helpers/index.d.ts.map +1 -0
  2717. package/dist/helpers/index.js +4 -0
  2718. package/dist/helpers/index.js.map +1 -0
  2719. package/dist/helpers/lock.d.ts +48 -0
  2720. package/dist/helpers/lock.d.ts.map +1 -0
  2721. package/dist/helpers/lock.js +111 -0
  2722. package/dist/helpers/lock.js.map +1 -0
  2723. package/dist/helpers/task-ref.d.ts +21 -0
  2724. package/dist/helpers/task-ref.d.ts.map +1 -0
  2725. package/dist/helpers/task-ref.js +26 -0
  2726. package/dist/helpers/task-ref.js.map +1 -0
  2727. package/dist/index.d.ts +6 -0
  2728. package/dist/index.d.ts.map +1 -0
  2729. package/dist/index.js +5 -0
  2730. package/dist/index.js.map +1 -0
  2731. package/dist/manifest.d.ts +4 -0
  2732. package/dist/manifest.d.ts.map +1 -0
  2733. package/dist/manifest.js +67 -0
  2734. package/dist/manifest.js.map +1 -0
  2735. package/dist/mappers/aperant-mapper.d.ts +24 -0
  2736. package/dist/mappers/aperant-mapper.d.ts.map +1 -0
  2737. package/dist/mappers/aperant-mapper.js +260 -0
  2738. package/dist/mappers/aperant-mapper.js.map +1 -0
  2739. package/dist/mappers/index.d.ts +2 -0
  2740. package/dist/mappers/index.d.ts.map +1 -0
  2741. package/dist/mappers/index.js +2 -0
  2742. package/dist/mappers/index.js.map +1 -0
  2743. package/dist/memory/file-backend.d.ts +29 -0
  2744. package/dist/memory/file-backend.d.ts.map +1 -0
  2745. package/dist/memory/file-backend.js +112 -0
  2746. package/dist/memory/file-backend.js.map +1 -0
  2747. package/dist/memory/index.d.ts +4 -0
  2748. package/dist/memory/index.d.ts.map +1 -0
  2749. package/dist/memory/index.js +3 -0
  2750. package/dist/memory/index.js.map +1 -0
  2751. package/dist/memory/null-backend.d.ts +17 -0
  2752. package/dist/memory/null-backend.d.ts.map +1 -0
  2753. package/dist/memory/null-backend.js +27 -0
  2754. package/dist/memory/null-backend.js.map +1 -0
  2755. package/dist/memory/types.d.ts +40 -0
  2756. package/dist/memory/types.d.ts.map +1 -0
  2757. package/dist/memory/types.js +2 -0
  2758. package/dist/memory/types.js.map +1 -0
  2759. package/dist/plugin/.claude-plugin/plugin.json +75 -0
  2760. package/dist/plugin/LICENSE +661 -0
  2761. package/dist/plugin/README.md +14 -0
  2762. package/dist/plugin/agents/apt-docs-author.md +272 -0
  2763. package/dist/plugin/agents/apt-executor.md +126 -0
  2764. package/dist/plugin/agents/apt-planner.md +399 -0
  2765. package/dist/plugin/agents/apt-pr-review-codebase-fit.md +201 -0
  2766. package/dist/plugin/agents/apt-pr-review-fixer.md +164 -0
  2767. package/dist/plugin/agents/apt-pr-review-logic.md +201 -0
  2768. package/dist/plugin/agents/apt-pr-review-performance.md +201 -0
  2769. package/dist/plugin/agents/apt-pr-review-quality.md +198 -0
  2770. package/dist/plugin/agents/apt-pr-review-security.md +199 -0
  2771. package/dist/plugin/agents/apt-pr-review-self-reviewer.md +172 -0
  2772. package/dist/plugin/agents/apt-pr-review-test-integrity.md +194 -0
  2773. package/dist/plugin/agents/apt-pr-review-validator.md +155 -0
  2774. package/dist/plugin/agents/apt-researcher.md +55 -0
  2775. package/dist/plugin/agents/apt-reviewer.md +43 -0
  2776. package/dist/plugin/agents/apt-team-docs-narrator.md +140 -0
  2777. package/dist/plugin/agents/apt-verifier.md +117 -0
  2778. package/dist/plugin/skills/apt/SKILL.md +507 -0
  2779. package/dist/plugin/skills/apt-author-skill/SKILL.md +157 -0
  2780. package/dist/plugin/skills/apt-bootstrap/SKILL.md +279 -0
  2781. package/dist/plugin/skills/apt-classify/SKILL.md +91 -0
  2782. package/dist/plugin/skills/apt-close-task/SKILL.md +103 -0
  2783. package/dist/plugin/skills/apt-create-docs/SKILL.md +286 -0
  2784. package/dist/plugin/skills/apt-debug/SKILL.md +279 -0
  2785. package/dist/plugin/skills/apt-design/SKILL.md +330 -0
  2786. package/dist/plugin/skills/apt-discuss/SKILL.md +720 -0
  2787. package/dist/plugin/skills/apt-discuss/examples/rationalization-example.md +19 -0
  2788. package/dist/plugin/skills/apt-docs/SKILL.md +80 -0
  2789. package/dist/plugin/skills/apt-execute/SKILL.md +685 -0
  2790. package/dist/plugin/skills/apt-mockup/SKILL.md +306 -0
  2791. package/dist/plugin/skills/apt-pause/SKILL.md +200 -0
  2792. package/dist/plugin/skills/apt-personas/SKILL.md +277 -0
  2793. package/dist/plugin/skills/apt-plan/SKILL.md +330 -0
  2794. package/dist/plugin/skills/apt-pr-review/SCHEMA.md +726 -0
  2795. package/dist/plugin/skills/apt-pr-review/SKILL.md +1756 -0
  2796. package/dist/plugin/skills/apt-pr-review/prompts/fp-gate-codex.md +82 -0
  2797. package/dist/plugin/skills/apt-pr-review/templates/external-comment.md +34 -0
  2798. package/dist/plugin/skills/apt-quick/SKILL.md +271 -0
  2799. package/dist/plugin/skills/apt-resume/SKILL.md +202 -0
  2800. package/dist/plugin/skills/apt-review/SKILL.md +353 -0
  2801. package/dist/plugin/skills/apt-roadmap/SKILL.md +257 -0
  2802. package/dist/plugin/skills/apt-roundtable/PERSONAS.md +190 -0
  2803. package/dist/plugin/skills/apt-roundtable/SKILL.md +717 -0
  2804. package/dist/plugin/skills/apt-run/SKILL.md +250 -0
  2805. package/dist/plugin/skills/apt-scan/SKILL.md +95 -0
  2806. package/dist/plugin/skills/apt-setup/SKILL.md +1075 -0
  2807. package/dist/plugin/skills/apt-ship/SKILL.md +373 -0
  2808. package/dist/plugin/skills/apt-stress-test/SKILL.md +339 -0
  2809. package/dist/plugin/skills/apt-terminal/SKILL.md +145 -0
  2810. package/dist/plugin/skills/apt-update/SKILL.md +163 -0
  2811. package/dist/plugin/skills/apt-verify/SKILL.md +318 -0
  2812. package/dist/plugin/skills/apt-verify-proof/SKILL.md +92 -0
  2813. package/dist/plugin/skills/apt-verify-proof/references/multi-model-setup.md +48 -0
  2814. package/dist/plugin/skills/apt-verify-proof/references/multi-model-verification.md +119 -0
  2815. package/dist/plugin/skills/apt-verify-proof/references/proof-capture.md +76 -0
  2816. package/dist/proof-report.d.ts +18 -0
  2817. package/dist/proof-report.d.ts.map +1 -0
  2818. package/dist/proof-report.js +361 -0
  2819. package/dist/proof-report.js.map +1 -0
  2820. package/dist/schemas/__tests__/feature-registry.test.d.ts +2 -0
  2821. package/dist/schemas/__tests__/feature-registry.test.d.ts.map +1 -0
  2822. package/dist/schemas/__tests__/feature-registry.test.js +226 -0
  2823. package/dist/schemas/__tests__/feature-registry.test.js.map +1 -0
  2824. package/dist/schemas/__tests__/quick-task.test.d.ts +2 -0
  2825. package/dist/schemas/__tests__/quick-task.test.d.ts.map +1 -0
  2826. package/dist/schemas/__tests__/quick-task.test.js +174 -0
  2827. package/dist/schemas/__tests__/quick-task.test.js.map +1 -0
  2828. package/dist/schemas/design-tokens.d.ts +22 -0
  2829. package/dist/schemas/design-tokens.d.ts.map +1 -0
  2830. package/dist/schemas/design-tokens.js +14 -0
  2831. package/dist/schemas/design-tokens.js.map +1 -0
  2832. package/dist/schemas/feature-registry.d.ts +129 -0
  2833. package/dist/schemas/feature-registry.d.ts.map +1 -0
  2834. package/dist/schemas/feature-registry.js +56 -0
  2835. package/dist/schemas/feature-registry.js.map +1 -0
  2836. package/dist/schemas/index.d.ts +6 -0
  2837. package/dist/schemas/index.d.ts.map +1 -0
  2838. package/dist/schemas/index.js +6 -0
  2839. package/dist/schemas/index.js.map +1 -0
  2840. package/dist/schemas/plugin-manifest.d.ts +87 -0
  2841. package/dist/schemas/plugin-manifest.d.ts.map +1 -0
  2842. package/dist/schemas/plugin-manifest.js +86 -0
  2843. package/dist/schemas/plugin-manifest.js.map +1 -0
  2844. package/dist/schemas/profile.d.ts +44 -0
  2845. package/dist/schemas/profile.d.ts.map +1 -0
  2846. package/dist/schemas/profile.js +18 -0
  2847. package/dist/schemas/profile.js.map +1 -0
  2848. package/dist/schemas/quick-task.d.ts +160 -0
  2849. package/dist/schemas/quick-task.d.ts.map +1 -0
  2850. package/dist/schemas/quick-task.js +48 -0
  2851. package/dist/schemas/quick-task.js.map +1 -0
  2852. package/dist/standalone/index.d.ts +41 -0
  2853. package/dist/standalone/index.d.ts.map +1 -0
  2854. package/dist/standalone/index.js +268 -0
  2855. package/dist/standalone/index.js.map +1 -0
  2856. package/dist/standalone/types.d.ts +125 -0
  2857. package/dist/standalone/types.d.ts.map +1 -0
  2858. package/dist/standalone/types.js +13 -0
  2859. package/dist/standalone/types.js.map +1 -0
  2860. package/dist/types/__tests__/coordination.test.d.ts +2 -0
  2861. package/dist/types/__tests__/coordination.test.d.ts.map +1 -0
  2862. package/dist/types/__tests__/coordination.test.js +117 -0
  2863. package/dist/types/__tests__/coordination.test.js.map +1 -0
  2864. package/dist/types/__tests__/qa-scoring.test.d.ts +8 -0
  2865. package/dist/types/__tests__/qa-scoring.test.d.ts.map +1 -0
  2866. package/dist/types/__tests__/qa-scoring.test.js +83 -0
  2867. package/dist/types/__tests__/qa-scoring.test.js.map +1 -0
  2868. package/dist/types/config.d.ts +221 -0
  2869. package/dist/types/config.d.ts.map +1 -0
  2870. package/dist/types/config.js +8 -0
  2871. package/dist/types/config.js.map +1 -0
  2872. package/dist/types/coordination.d.ts +59 -0
  2873. package/dist/types/coordination.d.ts.map +1 -0
  2874. package/dist/types/coordination.js +9 -0
  2875. package/dist/types/coordination.js.map +1 -0
  2876. package/dist/types/index.d.ts +16 -0
  2877. package/dist/types/index.d.ts.map +1 -0
  2878. package/dist/types/index.js +5 -0
  2879. package/dist/types/index.js.map +1 -0
  2880. package/dist/types/lifecycle.d.ts +25 -0
  2881. package/dist/types/lifecycle.d.ts.map +1 -0
  2882. package/dist/types/lifecycle.js +12 -0
  2883. package/dist/types/lifecycle.js.map +1 -0
  2884. package/dist/types/manifest.d.ts +21 -0
  2885. package/dist/types/manifest.d.ts.map +1 -0
  2886. package/dist/types/manifest.js +2 -0
  2887. package/dist/types/manifest.js.map +1 -0
  2888. package/dist/types/proof.d.ts +143 -0
  2889. package/dist/types/proof.d.ts.map +1 -0
  2890. package/dist/types/proof.js +8 -0
  2891. package/dist/types/proof.js.map +1 -0
  2892. package/dist/types/provider-capabilities.d.ts +47 -0
  2893. package/dist/types/provider-capabilities.d.ts.map +1 -0
  2894. package/dist/types/provider-capabilities.js +10 -0
  2895. package/dist/types/provider-capabilities.js.map +1 -0
  2896. package/dist/types/qa-scoring.d.ts +45 -0
  2897. package/dist/types/qa-scoring.d.ts.map +1 -0
  2898. package/dist/types/qa-scoring.js +25 -0
  2899. package/dist/types/qa-scoring.js.map +1 -0
  2900. package/dist/types/scope.d.ts +18 -0
  2901. package/dist/types/scope.d.ts.map +1 -0
  2902. package/dist/types/scope.js +13 -0
  2903. package/dist/types/scope.js.map +1 -0
  2904. package/dist/types/state.d.ts +58 -0
  2905. package/dist/types/state.d.ts.map +1 -0
  2906. package/dist/types/state.js +9 -0
  2907. package/dist/types/state.js.map +1 -0
  2908. package/dist/types/task-record.d.ts +75 -0
  2909. package/dist/types/task-record.d.ts.map +1 -0
  2910. package/dist/types/task-record.js +2 -0
  2911. package/dist/types/task-record.js.map +1 -0
  2912. package/dist/types/team.d.ts +116 -0
  2913. package/dist/types/team.d.ts.map +1 -0
  2914. package/dist/types/team.js +17 -0
  2915. package/dist/types/team.js.map +1 -0
  2916. package/dist/types/testable-features.d.ts +46 -0
  2917. package/dist/types/testable-features.d.ts.map +1 -0
  2918. package/dist/types/testable-features.js +8 -0
  2919. package/dist/types/testable-features.js.map +1 -0
  2920. package/dist/types/ui-shapes.d.ts +120 -0
  2921. package/dist/types/ui-shapes.d.ts.map +1 -0
  2922. package/dist/types/ui-shapes.js +13 -0
  2923. package/dist/types/ui-shapes.js.map +1 -0
  2924. package/docs/api.md +425 -0
  2925. package/docs/artifact-lifecycle.md +130 -0
  2926. package/docs/design-taste.md +187 -0
  2927. package/docs/design-tokens.md +147 -0
  2928. package/docs/docs-coherence.md +103 -0
  2929. package/docs/intents.md +119 -0
  2930. package/docs/output-style.md +216 -0
  2931. package/docs/plugin-distribution.md +197 -0
  2932. package/docs/profiles.md +128 -0
  2933. package/docs/seeds.md +221 -0
  2934. package/docs/skill-authoring.md +172 -0
  2935. package/docs/standalone.md +168 -0
  2936. package/docs/workflows.md +194 -0
  2937. package/docs/worktree-ecosystems.md +345 -0
  2938. package/examples/plugin-template/README.md +79 -0
  2939. package/examples/plugin-template/manifest.json +30 -0
  2940. package/examples/plugin-template/mappers/context-mapper.ts +49 -0
  2941. package/examples/plugin-template/mappers/plan-mapper.ts +66 -0
  2942. package/examples/profiles/default.yaml +26 -0
  2943. package/examples/profiles/team-platform.yaml +30 -0
  2944. package/package.json +119 -0
  2945. package/prompts/coder.md +1147 -0
  2946. package/prompts/coder_recovery.md +290 -0
  2947. package/prompts/competitor_analysis.md +405 -0
  2948. package/prompts/complexity_assessor.md +681 -0
  2949. package/prompts/design-synthesize.md +184 -0
  2950. package/prompts/followup_planner.md +399 -0
  2951. package/prompts/github/QA_REVIEW_SYSTEM_PROMPT.md +192 -0
  2952. package/prompts/github/duplicate_detector.md +90 -0
  2953. package/prompts/github/issue_analyzer.md +112 -0
  2954. package/prompts/github/issue_triager.md +199 -0
  2955. package/prompts/github/partials/full_context_analysis.md +39 -0
  2956. package/prompts/github/pr_ai_triage.md +230 -0
  2957. package/prompts/github/pr_codebase_fit_agent.md +429 -0
  2958. package/prompts/github/pr_finding_validator.md +410 -0
  2959. package/prompts/github/pr_fixer.md +120 -0
  2960. package/prompts/github/pr_followup.md +256 -0
  2961. package/prompts/github/pr_followup_comment_agent.md +205 -0
  2962. package/prompts/github/pr_followup_newcode_agent.md +238 -0
  2963. package/prompts/github/pr_followup_orchestrator.md +364 -0
  2964. package/prompts/github/pr_followup_resolution_agent.md +182 -0
  2965. package/prompts/github/pr_logic_agent.md +439 -0
  2966. package/prompts/github/pr_orchestrator.md +435 -0
  2967. package/prompts/github/pr_parallel_orchestrator.md +730 -0
  2968. package/prompts/github/pr_quality_agent.md +458 -0
  2969. package/prompts/github/pr_reviewer.md +356 -0
  2970. package/prompts/github/pr_security_agent.md +400 -0
  2971. package/prompts/github/pr_structural.md +171 -0
  2972. package/prompts/github/pr_template_filler.md +138 -0
  2973. package/prompts/github/spam_detector.md +110 -0
  2974. package/prompts/ideation_code_improvements.md +376 -0
  2975. package/prompts/ideation_code_quality.md +284 -0
  2976. package/prompts/ideation_documentation.md +145 -0
  2977. package/prompts/ideation_performance.md +237 -0
  2978. package/prompts/ideation_security.md +204 -0
  2979. package/prompts/ideation_ui_ux.md +444 -0
  2980. package/prompts/insight_extractor.md +178 -0
  2981. package/prompts/mcp_tools/api_validation.md +122 -0
  2982. package/prompts/mcp_tools/database_validation.md +105 -0
  2983. package/prompts/mcp_tools/electron_validation.md +123 -0
  2984. package/prompts/mcp_tools/proof_capture.md +76 -0
  2985. package/prompts/mcp_tools/puppeteer_browser.md +110 -0
  2986. package/prompts/planner-system.md +74 -0
  2987. package/prompts/planner.md +993 -0
  2988. package/prompts/qa_fixer.md +540 -0
  2989. package/prompts/qa_orchestrator_agentic.md +222 -0
  2990. package/prompts/qa_reviewer.md +821 -0
  2991. package/prompts/roadmap_discovery.md +324 -0
  2992. package/prompts/roadmap_features.md +453 -0
  2993. package/prompts/spec_critic.md +317 -0
  2994. package/prompts/spec_gatherer.md +228 -0
  2995. package/prompts/spec_orchestrator_agentic.md +198 -0
  2996. package/prompts/spec_quick.md +198 -0
  2997. package/prompts/spec_researcher.md +350 -0
  2998. package/prompts/spec_writer.md +307 -0
  2999. package/prompts/stack_advisor.md +35 -0
  3000. package/prompts/validation_fixer.md +230 -0
  3001. package/skills/apt/SKILL.md +507 -0
  3002. package/skills/apt-author-skill/SKILL.md +157 -0
  3003. package/skills/apt-bootstrap/SKILL.md +279 -0
  3004. package/skills/apt-classify/SKILL.md +91 -0
  3005. package/skills/apt-close-task/SKILL.md +103 -0
  3006. package/skills/apt-create-docs/SKILL.md +286 -0
  3007. package/skills/apt-debug/SKILL.md +279 -0
  3008. package/skills/apt-design/SKILL.md +330 -0
  3009. package/skills/apt-discuss/SKILL.md +720 -0
  3010. package/skills/apt-discuss/examples/rationalization-example.md +19 -0
  3011. package/skills/apt-docs/SKILL.md +80 -0
  3012. package/skills/apt-execute/SKILL.md +685 -0
  3013. package/skills/apt-executor.md +91 -0
  3014. package/skills/apt-mockup/SKILL.md +306 -0
  3015. package/skills/apt-pause/SKILL.md +200 -0
  3016. package/skills/apt-personas/SKILL.md +277 -0
  3017. package/skills/apt-plan/SKILL.md +330 -0
  3018. package/skills/apt-planner.md +122 -0
  3019. package/skills/apt-pr-review/SCHEMA.md +726 -0
  3020. package/skills/apt-pr-review/SKILL.md +1756 -0
  3021. package/skills/apt-pr-review/prompts/fp-gate-codex.md +82 -0
  3022. package/skills/apt-pr-review/templates/external-comment.md +34 -0
  3023. package/skills/apt-quick/SKILL.md +271 -0
  3024. package/skills/apt-researcher.md +54 -0
  3025. package/skills/apt-resume/SKILL.md +202 -0
  3026. package/skills/apt-review/SKILL.md +353 -0
  3027. package/skills/apt-roadmap/SKILL.md +257 -0
  3028. package/skills/apt-roundtable/PERSONAS.md +190 -0
  3029. package/skills/apt-roundtable/SKILL.md +717 -0
  3030. package/skills/apt-run/SKILL.md +250 -0
  3031. package/skills/apt-scan/SKILL.md +95 -0
  3032. package/skills/apt-setup/SKILL.md +1075 -0
  3033. package/skills/apt-ship/SKILL.md +373 -0
  3034. package/skills/apt-stress-test/SKILL.md +339 -0
  3035. package/skills/apt-terminal/SKILL.md +145 -0
  3036. package/skills/apt-update/SKILL.md +165 -0
  3037. package/skills/apt-verifier.md +64 -0
  3038. package/skills/apt-verify/SKILL.md +318 -0
  3039. package/skills/apt-verify-proof/SKILL.md +92 -0
  3040. package/skills/apt-verify-proof/references/multi-model-setup.md +48 -0
  3041. package/skills/apt-verify-proof/references/multi-model-verification.md +119 -0
  3042. package/skills/apt-verify-proof/references/proof-capture.md +76 -0
  3043. package/src/cli/artifacts/classification.mjs +390 -0
  3044. package/src/cli/artifacts/self-stage.mjs +168 -0
  3045. package/src/cli/bootstrap/detect-mode.mjs +200 -0
  3046. package/src/cli/bootstrap/product-context-sidecar.mjs +381 -0
  3047. package/src/cli/bootstrap/recon.mjs +259 -0
  3048. package/src/cli/budget/budget.mjs +35 -0
  3049. package/src/cli/cli-wrappers/active.mjs +8 -0
  3050. package/src/cli/cli-wrappers/audit.mjs +8 -0
  3051. package/src/cli/cli-wrappers/author-skill.mjs +8 -0
  3052. package/src/cli/cli-wrappers/bootstrap.mjs +8 -0
  3053. package/src/cli/cli-wrappers/check-version.mjs +7 -0
  3054. package/src/cli/cli-wrappers/check.mjs +8 -0
  3055. package/src/cli/cli-wrappers/commit.mjs +8 -0
  3056. package/src/cli/cli-wrappers/config.mjs +8 -0
  3057. package/src/cli/cli-wrappers/consistency.mjs +8 -0
  3058. package/src/cli/cli-wrappers/constitution.mjs +8 -0
  3059. package/src/cli/cli-wrappers/coverage-check.mjs +7 -0
  3060. package/src/cli/cli-wrappers/create-docs.mjs +8 -0
  3061. package/src/cli/cli-wrappers/design-lint.mjs +8 -0
  3062. package/src/cli/cli-wrappers/design-scan.mjs +8 -0
  3063. package/src/cli/cli-wrappers/design-template.mjs +8 -0
  3064. package/src/cli/cli-wrappers/design-validate.mjs +8 -0
  3065. package/src/cli/cli-wrappers/detect-project.mjs +7 -0
  3066. package/src/cli/cli-wrappers/docs-audit.mjs +8 -0
  3067. package/src/cli/cli-wrappers/edit-check.mjs +7 -0
  3068. package/src/cli/cli-wrappers/effects.mjs +8 -0
  3069. package/src/cli/cli-wrappers/event.mjs +8 -0
  3070. package/src/cli/cli-wrappers/features-audit.mjs +8 -0
  3071. package/src/cli/cli-wrappers/gate.mjs +8 -0
  3072. package/src/cli/cli-wrappers/health-check.mjs +7 -0
  3073. package/src/cli/cli-wrappers/host-detect.mjs +17 -0
  3074. package/src/cli/cli-wrappers/init-state.mjs +8 -0
  3075. package/src/cli/cli-wrappers/init.mjs +8 -0
  3076. package/src/cli/cli-wrappers/lock.mjs +8 -0
  3077. package/src/cli/cli-wrappers/migrate-pr-reviews.mjs +8 -0
  3078. package/src/cli/cli-wrappers/personas.mjs +8 -0
  3079. package/src/cli/cli-wrappers/plan-approval.mjs +8 -0
  3080. package/src/cli/cli-wrappers/pr-review-audit-fixer.mjs +8 -0
  3081. package/src/cli/cli-wrappers/pr-review.mjs +8 -0
  3082. package/src/cli/cli-wrappers/precompact-hook.mjs +8 -0
  3083. package/src/cli/cli-wrappers/product-context.mjs +8 -0
  3084. package/src/cli/cli-wrappers/profile.mjs +8 -0
  3085. package/src/cli/cli-wrappers/risk-check.mjs +8 -0
  3086. package/src/cli/cli-wrappers/roadmap.mjs +8 -0
  3087. package/src/cli/cli-wrappers/route.mjs +8 -0
  3088. package/src/cli/cli-wrappers/seed.mjs +8 -0
  3089. package/src/cli/cli-wrappers/standards.mjs +8 -0
  3090. package/src/cli/cli-wrappers/state-artifacts.mjs +8 -0
  3091. package/src/cli/cli-wrappers/state-update.mjs +8 -0
  3092. package/src/cli/cli-wrappers/state.mjs +8 -0
  3093. package/src/cli/cli-wrappers/statusline.mjs +8 -0
  3094. package/src/cli/cli-wrappers/task.mjs +8 -0
  3095. package/src/cli/cli-wrappers/taste-infer.mjs +8 -0
  3096. package/src/cli/cli-wrappers/team.mjs +8 -0
  3097. package/src/cli/cli-wrappers/template.mjs +7 -0
  3098. package/src/cli/cli-wrappers/terminal.mjs +8 -0
  3099. package/src/cli/cli-wrappers/token-budget.mjs +8 -0
  3100. package/src/cli/cli-wrappers/tokens.mjs +8 -0
  3101. package/src/cli/cli-wrappers/toolchain-detect.mjs +7 -0
  3102. package/src/cli/cli-wrappers/uninstall.mjs +8 -0
  3103. package/src/cli/cli-wrappers/validate-evidence.mjs +10 -0
  3104. package/src/cli/cli-wrappers/variant-gallery.mjs +8 -0
  3105. package/src/cli/cli-wrappers/variant-pick.mjs +8 -0
  3106. package/src/cli/cli-wrappers/variant-pool.mjs +8 -0
  3107. package/src/cli/cli-wrappers/wave.mjs +8 -0
  3108. package/src/cli/cli-wrappers/wfrun.mjs +8 -0
  3109. package/src/cli/cli-wrappers/workflow.mjs +8 -0
  3110. package/src/cli/cli-wrappers/worktree-install.mjs +8 -0
  3111. package/src/cli/cli-wrappers/worktree.mjs +16 -0
  3112. package/src/cli/commands/active.mjs +86 -0
  3113. package/src/cli/commands/audit.mjs +430 -0
  3114. package/src/cli/commands/author-skill.mjs +75 -0
  3115. package/src/cli/commands/bootstrap.mjs +318 -0
  3116. package/src/cli/commands/check-version.mjs +117 -0
  3117. package/src/cli/commands/check.mjs +227 -0
  3118. package/src/cli/commands/commit.mjs +87 -0
  3119. package/src/cli/commands/consistency.mjs +158 -0
  3120. package/src/cli/commands/constitution.mjs +163 -0
  3121. package/src/cli/commands/coverage-check.mjs +252 -0
  3122. package/src/cli/commands/create-docs.mjs +426 -0
  3123. package/src/cli/commands/design-lint.mjs +212 -0
  3124. package/src/cli/commands/design-scan.mjs +112 -0
  3125. package/src/cli/commands/design-template.mjs +196 -0
  3126. package/src/cli/commands/design-validate.mjs +83 -0
  3127. package/src/cli/commands/detect-project.mjs +223 -0
  3128. package/src/cli/commands/docs-audit.mjs +159 -0
  3129. package/src/cli/commands/edit-check.mjs +108 -0
  3130. package/src/cli/commands/effects.mjs +415 -0
  3131. package/src/cli/commands/event.mjs +250 -0
  3132. package/src/cli/commands/features-audit.mjs +138 -0
  3133. package/src/cli/commands/gate.mjs +273 -0
  3134. package/src/cli/commands/health-check.mjs +166 -0
  3135. package/src/cli/commands/host-detect.mjs +87 -0
  3136. package/src/cli/commands/init-state.mjs +112 -0
  3137. package/src/cli/commands/init.mjs +1557 -0
  3138. package/src/cli/commands/lock.mjs +159 -0
  3139. package/src/cli/commands/migrate-pr-reviews.mjs +215 -0
  3140. package/src/cli/commands/personas.mjs +333 -0
  3141. package/src/cli/commands/plan-approval.mjs +244 -0
  3142. package/src/cli/commands/pr-review-audit-fixer.mjs +893 -0
  3143. package/src/cli/commands/pr-review.mjs +1113 -0
  3144. package/src/cli/commands/precompact-hook.mjs +181 -0
  3145. package/src/cli/commands/product-context.mjs +77 -0
  3146. package/src/cli/commands/profile.mjs +122 -0
  3147. package/src/cli/commands/risk-check.mjs +85 -0
  3148. package/src/cli/commands/roadmap.mjs +912 -0
  3149. package/src/cli/commands/route.mjs +548 -0
  3150. package/src/cli/commands/seed.mjs +514 -0
  3151. package/src/cli/commands/standards.mjs +285 -0
  3152. package/src/cli/commands/state.mjs +252 -0
  3153. package/src/cli/commands/statusline.mjs +235 -0
  3154. package/src/cli/commands/task.mjs +1459 -0
  3155. package/src/cli/commands/taste-infer.mjs +507 -0
  3156. package/src/cli/commands/team.mjs +123 -0
  3157. package/src/cli/commands/template.mjs +44 -0
  3158. package/src/cli/commands/terminal.mjs +140 -0
  3159. package/src/cli/commands/token-budget.mjs +133 -0
  3160. package/src/cli/commands/tokens.mjs +456 -0
  3161. package/src/cli/commands/toolchain-detect.mjs +395 -0
  3162. package/src/cli/commands/uninstall.mjs +444 -0
  3163. package/src/cli/commands/validate-evidence.mjs +537 -0
  3164. package/src/cli/commands/variant-gallery.mjs +167 -0
  3165. package/src/cli/commands/variant-pick.mjs +103 -0
  3166. package/src/cli/commands/variant-pool.mjs +104 -0
  3167. package/src/cli/commands/wave.mjs +206 -0
  3168. package/src/cli/commands/wfrun.mjs +72 -0
  3169. package/src/cli/commands/workflow.mjs +297 -0
  3170. package/src/cli/commands/worktree-install.mjs +585 -0
  3171. package/src/cli/commands/worktree.mjs +511 -0
  3172. package/src/cli/config/coverage-ac.mjs +194 -0
  3173. package/src/cli/config/gitignore-drift.mjs +94 -0
  3174. package/src/cli/config/guard.mjs +39 -0
  3175. package/src/cli/config/load.mjs +151 -0
  3176. package/src/cli/config/post-merge-sweep.mjs +280 -0
  3177. package/src/cli/config/schema-migrate.mjs +207 -0
  3178. package/src/cli/config/share-policy.mjs +319 -0
  3179. package/src/cli/config/upgrade-gitignore.mjs +332 -0
  3180. package/src/cli/config/upgrade-layout.mjs +346 -0
  3181. package/src/cli/consistency/check.mjs +190 -0
  3182. package/src/cli/consistency/parse-plan-approval.mjs +51 -0
  3183. package/src/cli/consistency/parse-plan.mjs +62 -0
  3184. package/src/cli/consistency/parse-progress.mjs +91 -0
  3185. package/src/cli/consistency/parse-qa.mjs +86 -0
  3186. package/src/cli/consistency/parse-review.mjs +98 -0
  3187. package/src/cli/consistency/parse-spec.mjs +98 -0
  3188. package/src/cli/consistency/registry.mjs +84 -0
  3189. package/src/cli/consistency/rules/index.mjs +18 -0
  3190. package/src/cli/consistency/rules/r1-ac-coverage.mjs +67 -0
  3191. package/src/cli/consistency/rules/r2-subtask-progress.mjs +54 -0
  3192. package/src/cli/consistency/rules/r3-dimension-claims.mjs +78 -0
  3193. package/src/cli/consistency/rules/r4-finding-propagation.mjs +68 -0
  3194. package/src/cli/consistency/rules/r5-verdict-consistency.mjs +74 -0
  3195. package/src/cli/consistency/rules/r6-plan-approval.mjs +109 -0
  3196. package/src/cli/consistency/rules/r7-persona-alignment.mjs +218 -0
  3197. package/src/cli/constitution/coverage.mjs +112 -0
  3198. package/src/cli/constitution/match.mjs +170 -0
  3199. package/src/cli/constitution/parse.mjs +362 -0
  3200. package/src/cli/coordination/agent-identity.mjs +102 -0
  3201. package/src/cli/coordination/event-log.mjs +88 -0
  3202. package/src/cli/coordination/store.mjs +146 -0
  3203. package/src/cli/coordination/team-status.mjs +274 -0
  3204. package/src/cli/coverage-check/acceptance-criteria.mjs +15 -0
  3205. package/src/cli/design/extract-repo.mjs +506 -0
  3206. package/src/cli/design/extract-url.mjs +457 -0
  3207. package/src/cli/design/extract.mjs +326 -0
  3208. package/src/cli/design/frontmatter-schema.mjs +184 -0
  3209. package/src/cli/design/lint.mjs +208 -0
  3210. package/src/cli/design/product-context.mjs +176 -0
  3211. package/src/cli/design/scan.mjs +294 -0
  3212. package/src/cli/design/schema.mjs +86 -0
  3213. package/src/cli/design/synthesize.mjs +846 -0
  3214. package/src/cli/design/template-extract.mjs +481 -0
  3215. package/src/cli/design/template.mjs +369 -0
  3216. package/src/cli/design/validate.mjs +107 -0
  3217. package/src/cli/design/weighted-map.mjs +43 -0
  3218. package/src/cli/dispatch.mjs +277 -0
  3219. package/src/cli/docs/features-reader.mjs +322 -0
  3220. package/src/cli/docs/nav-renderer.mjs +181 -0
  3221. package/src/cli/docs/structure-planner.mjs +316 -0
  3222. package/src/cli/docs-audit/audit.mjs +156 -0
  3223. package/src/cli/docs-audit/grep-claims.mjs +195 -0
  3224. package/src/cli/docs-audit/index.mjs +8 -0
  3225. package/src/cli/docs-audit/policy.mjs +177 -0
  3226. package/src/cli/features/registry-audit.mjs +254 -0
  3227. package/src/cli/gate/cache.mjs +135 -0
  3228. package/src/cli/gate/context.mjs +92 -0
  3229. package/src/cli/gate/gates/all-subtasks-complete.mjs +60 -0
  3230. package/src/cli/gate/gates/consistency-check.mjs +60 -0
  3231. package/src/cli/gate/gates/constitution-coverage.mjs +67 -0
  3232. package/src/cli/gate/gates/constitution-read.mjs +37 -0
  3233. package/src/cli/gate/gates/gitignore-in-sync.mjs +41 -0
  3234. package/src/cli/gate/gates/index.mjs +22 -0
  3235. package/src/cli/gate/gates/plan-exists.mjs +55 -0
  3236. package/src/cli/gate/gates/r-persona-alignment.mjs +335 -0
  3237. package/src/cli/gate/gates/review-clean.mjs +75 -0
  3238. package/src/cli/gate/gates/tdd-iron-law.mjs +250 -0
  3239. package/src/cli/gate/gates/verify-approved.mjs +62 -0
  3240. package/src/cli/gate/registry.mjs +103 -0
  3241. package/src/cli/git/identity.mjs +52 -0
  3242. package/src/cli/git/remote.mjs +92 -0
  3243. package/src/cli/git/worktree-detect.mjs +55 -0
  3244. package/src/cli/graph/depends-on.mjs +98 -0
  3245. package/src/cli/graph/task-ref.mjs +38 -0
  3246. package/src/cli/help.mjs +134 -0
  3247. package/src/cli/host/detect.mjs +210 -0
  3248. package/src/cli/host/resolve.mjs +54 -0
  3249. package/src/cli/install/archetype.mjs +152 -0
  3250. package/src/cli/install/atomic-text.mjs +9 -0
  3251. package/src/cli/install/claude-hooks.mjs +102 -0
  3252. package/src/cli/install/cli-to-install-root.mjs +47 -0
  3253. package/src/cli/install/detached-spawn.mjs +275 -0
  3254. package/src/cli/install/ecosystem-commands.mjs +159 -0
  3255. package/src/cli/install/home-stub.mjs +121 -0
  3256. package/src/cli/install/install-kernel.mjs +180 -0
  3257. package/src/cli/install/install-semaphore.mjs +199 -0
  3258. package/src/cli/install/manifest-scanner.mjs +253 -0
  3259. package/src/cli/install/manifest.mjs +159 -0
  3260. package/src/cli/install/pipeline.mjs +289 -0
  3261. package/src/cli/install/runtime-detect.mjs +196 -0
  3262. package/src/cli/install/setting-class.mjs +177 -0
  3263. package/src/cli/install/transforms/_shared.mjs +332 -0
  3264. package/src/cli/install/transforms/antigravity.mjs +15 -0
  3265. package/src/cli/install/transforms/augment.mjs +14 -0
  3266. package/src/cli/install/transforms/claude.mjs +41 -0
  3267. package/src/cli/install/transforms/cline.mjs +15 -0
  3268. package/src/cli/install/transforms/codebuddy.mjs +15 -0
  3269. package/src/cli/install/transforms/codex.mjs +56 -0
  3270. package/src/cli/install/transforms/copilot.mjs +19 -0
  3271. package/src/cli/install/transforms/cursor.mjs +42 -0
  3272. package/src/cli/install/transforms/gemini.mjs +62 -0
  3273. package/src/cli/install/transforms/kilo.mjs +30 -0
  3274. package/src/cli/install/transforms/opencode.mjs +65 -0
  3275. package/src/cli/install/transforms/qwen.mjs +14 -0
  3276. package/src/cli/install/transforms/trae.mjs +14 -0
  3277. package/src/cli/install/transforms/windsurf.mjs +42 -0
  3278. package/src/cli/install/update-chips.mjs +96 -0
  3279. package/src/cli/install/version-header.mjs +255 -0
  3280. package/src/cli/lock/pid.mjs +25 -0
  3281. package/src/cli/output-style/ansi.mjs +89 -0
  3282. package/src/cli/output-style/helpers.mjs +184 -0
  3283. package/src/cli/output-style/index.mjs +9 -0
  3284. package/src/cli/personas/role-scan.mjs +323 -0
  3285. package/src/cli/personas/sidecar.mjs +467 -0
  3286. package/src/cli/personas/tier-rubric.mjs +182 -0
  3287. package/src/cli/profile/parse.mjs +171 -0
  3288. package/src/cli/profile/resolve.mjs +155 -0
  3289. package/src/cli/profile/schema.mjs +52 -0
  3290. package/src/cli/risk/globs.mjs +68 -0
  3291. package/src/cli/risk/postcondition.mjs +66 -0
  3292. package/src/cli/risk/secrets.mjs +39 -0
  3293. package/src/cli/roadmap/io.mjs +188 -0
  3294. package/src/cli/roadmap/lifecycle.mjs +105 -0
  3295. package/src/cli/roadmap/paths.mjs +57 -0
  3296. package/src/cli/roadmap/phases-io.mjs +227 -0
  3297. package/src/cli/roadmap/render.mjs +75 -0
  3298. package/src/cli/roadmap/rollup.mjs +91 -0
  3299. package/src/cli/roadmap/scope-lookup.mjs +62 -0
  3300. package/src/cli/roadmap/sync.mjs +121 -0
  3301. package/src/cli/route/envelope.mjs +311 -0
  3302. package/src/cli/route/skill-discover.mjs +328 -0
  3303. package/src/cli/seeds/io.mjs +150 -0
  3304. package/src/cli/seeds/render.mjs +171 -0
  3305. package/src/cli/seeds/validate.mjs +177 -0
  3306. package/src/cli/skill-author/contract.mjs +183 -0
  3307. package/src/cli/skill-author/scaffold.mjs +80 -0
  3308. package/src/cli/skill-author/skill-template.mjs +91 -0
  3309. package/src/cli/skill-author/test-template.mjs +56 -0
  3310. package/src/cli/skill-author/validate.mjs +127 -0
  3311. package/src/cli/task/build-progress-sync.mjs +205 -0
  3312. package/src/cli/task/execution-mode.mjs +33 -0
  3313. package/src/cli/task/format.mjs +31 -0
  3314. package/src/cli/task/ids.mjs +59 -0
  3315. package/src/cli/task/index-md.mjs +90 -0
  3316. package/src/cli/task/outputs-guard.mjs +166 -0
  3317. package/src/cli/task/worktree-cleanup.mjs +129 -0
  3318. package/src/cli/team/team.mjs +361 -0
  3319. package/src/cli/terminal/socket-client.mjs +127 -0
  3320. package/src/cli/util/agent-runtime.mjs +28 -0
  3321. package/src/cli/util/args.mjs +26 -0
  3322. package/src/cli/util/atomic-write.mjs +147 -0
  3323. package/src/cli/util/banner.mjs +57 -0
  3324. package/src/cli/util/bin-path.mjs +72 -0
  3325. package/src/cli/util/common-flags.mjs +37 -0
  3326. package/src/cli/util/copy.mjs +95 -0
  3327. package/src/cli/util/duration.mjs +67 -0
  3328. package/src/cli/util/fs-lock.mjs +119 -0
  3329. package/src/cli/util/init-hints.mjs +91 -0
  3330. package/src/cli/util/io.mjs +47 -0
  3331. package/src/cli/util/project.mjs +46 -0
  3332. package/src/cli/util/result.mjs +112 -0
  3333. package/src/cli/util/skill-installs.mjs +37 -0
  3334. package/src/cli/variant/gallery.mjs +170 -0
  3335. package/src/cli/variant/pick.mjs +121 -0
  3336. package/src/cli/variant/pool.mjs +168 -0
  3337. package/src/cli/wfrun/dag.mjs +112 -0
  3338. package/src/cli/wfrun/interpolate.mjs +108 -0
  3339. package/src/cli/wfrun/parse.mjs +112 -0
  3340. package/src/cli/wfrun/run.mjs +498 -0
  3341. package/src/cli/wfrun/schema.mjs +112 -0
  3342. package/src/cost/index.ts +8 -0
  3343. package/src/cost/pricing.mjs +50 -0
  3344. package/src/cost/pricing.ts +57 -0
  3345. package/src/cost/tracker.mjs +62 -0
  3346. package/src/cost/tracker.ts +162 -0
  3347. package/src/cost/transcript.mjs +118 -0
  3348. package/src/cost/transcript.ts +169 -0
  3349. package/src/cost/types.ts +52 -0
  3350. package/templates/DESIGN.md +284 -0
  3351. package/templates/agents-brownfield.md +47 -0
  3352. package/templates/agents-greenfield.md +42 -0
  3353. package/templates/config.json +138 -0
  3354. package/templates/design-library/README.md +23 -0
  3355. package/templates/design-library/agentic/DESIGN.md +141 -0
  3356. package/templates/design-library/agentic/provenance.yaml +9 -0
  3357. package/templates/design-library/ant/DESIGN.md +141 -0
  3358. package/templates/design-library/ant/provenance.yaml +8 -0
  3359. package/templates/design-library/apple/DESIGN.md +263 -0
  3360. package/templates/design-library/apple/provenance.yaml +15 -0
  3361. package/templates/design-library/application/DESIGN.md +141 -0
  3362. package/templates/design-library/application/provenance.yaml +8 -0
  3363. package/templates/design-library/artistic/DESIGN.md +142 -0
  3364. package/templates/design-library/artistic/provenance.yaml +8 -0
  3365. package/templates/design-library/bento/DESIGN.md +141 -0
  3366. package/templates/design-library/bento/provenance.yaml +8 -0
  3367. package/templates/design-library/bold/DESIGN.md +141 -0
  3368. package/templates/design-library/bold/provenance.yaml +9 -0
  3369. package/templates/design-library/brutalism/DESIGN.md +141 -0
  3370. package/templates/design-library/brutalism/provenance.yaml +9 -0
  3371. package/templates/design-library/cafe/DESIGN.md +143 -0
  3372. package/templates/design-library/cafe/provenance.yaml +9 -0
  3373. package/templates/design-library/claymorphism/DESIGN.md +141 -0
  3374. package/templates/design-library/claymorphism/provenance.yaml +9 -0
  3375. package/templates/design-library/clean/DESIGN.md +141 -0
  3376. package/templates/design-library/clean/provenance.yaml +9 -0
  3377. package/templates/design-library/colorful/DESIGN.md +141 -0
  3378. package/templates/design-library/colorful/provenance.yaml +9 -0
  3379. package/templates/design-library/contemporary/DESIGN.md +141 -0
  3380. package/templates/design-library/contemporary/provenance.yaml +10 -0
  3381. package/templates/design-library/corporate/DESIGN.md +141 -0
  3382. package/templates/design-library/corporate/provenance.yaml +10 -0
  3383. package/templates/design-library/cosmic/DESIGN.md +133 -0
  3384. package/templates/design-library/cosmic/provenance.yaml +8 -0
  3385. package/templates/design-library/creative/DESIGN.md +141 -0
  3386. package/templates/design-library/creative/provenance.yaml +8 -0
  3387. package/templates/design-library/dashboard/DESIGN.md +141 -0
  3388. package/templates/design-library/dashboard/provenance.yaml +9 -0
  3389. package/templates/design-library/dithered/DESIGN.md +141 -0
  3390. package/templates/design-library/dithered/provenance.yaml +8 -0
  3391. package/templates/design-library/doodle/DESIGN.md +141 -0
  3392. package/templates/design-library/doodle/provenance.yaml +8 -0
  3393. package/templates/design-library/dramatic/DESIGN.md +134 -0
  3394. package/templates/design-library/dramatic/provenance.yaml +8 -0
  3395. package/templates/design-library/editorial/DESIGN.md +141 -0
  3396. package/templates/design-library/editorial/provenance.yaml +9 -0
  3397. package/templates/design-library/elegant/DESIGN.md +138 -0
  3398. package/templates/design-library/elegant/provenance.yaml +8 -0
  3399. package/templates/design-library/energetic/DESIGN.md +132 -0
  3400. package/templates/design-library/energetic/provenance.yaml +8 -0
  3401. package/templates/design-library/enterprise/DESIGN.md +141 -0
  3402. package/templates/design-library/enterprise/provenance.yaml +10 -0
  3403. package/templates/design-library/expressive/DESIGN.md +141 -0
  3404. package/templates/design-library/expressive/provenance.yaml +8 -0
  3405. package/templates/design-library/fantasy/DESIGN.md +141 -0
  3406. package/templates/design-library/fantasy/provenance.yaml +9 -0
  3407. package/templates/design-library/flat/DESIGN.md +141 -0
  3408. package/templates/design-library/flat/provenance.yaml +8 -0
  3409. package/templates/design-library/friendly/DESIGN.md +141 -0
  3410. package/templates/design-library/friendly/provenance.yaml +9 -0
  3411. package/templates/design-library/futuristic/DESIGN.md +141 -0
  3412. package/templates/design-library/futuristic/provenance.yaml +9 -0
  3413. package/templates/design-library/glassmorphism/DESIGN.md +141 -0
  3414. package/templates/design-library/glassmorphism/provenance.yaml +10 -0
  3415. package/templates/design-library/gradient/DESIGN.md +142 -0
  3416. package/templates/design-library/gradient/provenance.yaml +9 -0
  3417. package/templates/design-library/levels/DESIGN.md +141 -0
  3418. package/templates/design-library/levels/provenance.yaml +8 -0
  3419. package/templates/design-library/linear/DESIGN.md +265 -0
  3420. package/templates/design-library/linear/provenance.yaml +15 -0
  3421. package/templates/design-library/lingo/DESIGN.md +138 -0
  3422. package/templates/design-library/lingo/provenance.yaml +8 -0
  3423. package/templates/design-library/luxury/DESIGN.md +141 -0
  3424. package/templates/design-library/luxury/provenance.yaml +10 -0
  3425. package/templates/design-library/material/DESIGN.md +141 -0
  3426. package/templates/design-library/material/provenance.yaml +8 -0
  3427. package/templates/design-library/minimal/DESIGN.md +141 -0
  3428. package/templates/design-library/minimal/provenance.yaml +9 -0
  3429. package/templates/design-library/modern/DESIGN.md +141 -0
  3430. package/templates/design-library/modern/provenance.yaml +8 -0
  3431. package/templates/design-library/mono/DESIGN.md +141 -0
  3432. package/templates/design-library/mono/provenance.yaml +10 -0
  3433. package/templates/design-library/neobrutalism/DESIGN.md +141 -0
  3434. package/templates/design-library/neobrutalism/provenance.yaml +8 -0
  3435. package/templates/design-library/neon/DESIGN.md +141 -0
  3436. package/templates/design-library/neon/provenance.yaml +8 -0
  3437. package/templates/design-library/neumorphism/DESIGN.md +141 -0
  3438. package/templates/design-library/neumorphism/provenance.yaml +10 -0
  3439. package/templates/design-library/pacman/DESIGN.md +141 -0
  3440. package/templates/design-library/pacman/provenance.yaml +10 -0
  3441. package/templates/design-library/paper/DESIGN.md +141 -0
  3442. package/templates/design-library/paper/provenance.yaml +8 -0
  3443. package/templates/design-library/perspective/DESIGN.md +141 -0
  3444. package/templates/design-library/perspective/provenance.yaml +8 -0
  3445. package/templates/design-library/premium/DESIGN.md +142 -0
  3446. package/templates/design-library/premium/provenance.yaml +8 -0
  3447. package/templates/design-library/professional/DESIGN.md +141 -0
  3448. package/templates/design-library/professional/provenance.yaml +9 -0
  3449. package/templates/design-library/publication/DESIGN.md +141 -0
  3450. package/templates/design-library/publication/provenance.yaml +9 -0
  3451. package/templates/design-library/refined/DESIGN.md +141 -0
  3452. package/templates/design-library/refined/provenance.yaml +8 -0
  3453. package/templates/design-library/retro/DESIGN.md +141 -0
  3454. package/templates/design-library/retro/provenance.yaml +9 -0
  3455. package/templates/design-library/shadcn/DESIGN.md +141 -0
  3456. package/templates/design-library/shadcn/provenance.yaml +8 -0
  3457. package/templates/design-library/simple/DESIGN.md +141 -0
  3458. package/templates/design-library/simple/provenance.yaml +8 -0
  3459. package/templates/design-library/skeumorphism/DESIGN.md +141 -0
  3460. package/templates/design-library/skeumorphism/provenance.yaml +8 -0
  3461. package/templates/design-library/sleek/DESIGN.md +141 -0
  3462. package/templates/design-library/sleek/provenance.yaml +10 -0
  3463. package/templates/design-library/spacious/DESIGN.md +142 -0
  3464. package/templates/design-library/spacious/provenance.yaml +9 -0
  3465. package/templates/design-library/storytelling/DESIGN.md +141 -0
  3466. package/templates/design-library/storytelling/provenance.yaml +9 -0
  3467. package/templates/design-library/tetris/DESIGN.md +141 -0
  3468. package/templates/design-library/tetris/provenance.yaml +10 -0
  3469. package/templates/design-library/vercel/DESIGN.md +265 -0
  3470. package/templates/design-library/vercel/provenance.yaml +15 -0
  3471. package/templates/design-library/vibrant/DESIGN.md +143 -0
  3472. package/templates/design-library/vibrant/provenance.yaml +8 -0
  3473. package/templates/design-library/vintage/DESIGN.md +134 -0
  3474. package/templates/design-library/vintage/provenance.yaml +8 -0
  3475. package/templates/design-taste/README.md +76 -0
  3476. package/templates/design-taste/brutalist.yaml +43 -0
  3477. package/templates/design-taste/editorial.yaml +46 -0
  3478. package/templates/design-taste/enterprise-clean.yaml +48 -0
  3479. package/templates/design-taste/playful.yaml +46 -0
  3480. package/templates/docs-policy-defaults.json +13 -0
  3481. package/templates/docs-product/README.md.template +39 -0
  3482. package/templates/docs-product/feature-doc.md.template +24 -0
  3483. package/templates/docs-product/persona-landing.md.template +16 -0
  3484. package/templates/gitignore-aperant +5 -0
  3485. package/templates/mockup.html +13 -0
  3486. package/templates/personas-schema.json +302 -0
  3487. package/templates/product-context.schema.json +64 -0
  3488. package/templates/project-md.md +59 -0
  3489. package/templates/proof-verification.md +315 -0
  3490. package/templates/rationalizations/claude-opus-4-6.md +80 -0
  3491. package/templates/state.json +9 -0
  3492. package/templates/wireframe.md +54 -0
  3493. package/workflows/debug.md +277 -0
  3494. package/workflows/docs.md +325 -0
  3495. package/workflows/examples/diamond.yaml +59 -0
  3496. package/workflows/examples/plan-execute-verify.yaml +58 -0
  3497. package/workflows/scan-features.md +308 -0
  3498. package/workflows/verify-proof.md +481 -0
@@ -0,0 +1,2078 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * apt-proof-video — Gemini-powered video analysis for proof verification
5
+ *
6
+ * Sends a Playwright .webm recording to Gemini and returns structured
7
+ * verification analysis. Used by /apt:verify-proof for video evidence.
8
+ *
9
+ * Requires: GEMINI_API_KEY environment variable
10
+ * Optional dep: @google/genai (installed when user opts into video verification)
11
+ *
12
+ * Usage:
13
+ * apt-proof-video analyze <video-path> [--model <model>] [--spec <spec-summary>]
14
+ * apt-proof-video capture Record frames via CDP (multi-session mode)
15
+ * apt-proof-video report Generate HTML report from a proof directory
16
+ * apt-proof-video models List available Gemini models
17
+ * apt-proof-video --help Print usage
18
+ *
19
+ * All output is JSON to stdout. Errors go to stderr.
20
+ */
21
+
22
+ import { execSync } from 'node:child_process'
23
+ import {
24
+ existsSync,
25
+ mkdirSync,
26
+ readdirSync,
27
+ readFileSync,
28
+ rmSync,
29
+ statSync,
30
+ unlinkSync,
31
+ writeFileSync,
32
+ } from 'node:fs'
33
+ import * as http from 'node:http'
34
+ import { basename, dirname, extname, join, resolve } from 'node:path'
35
+ import { fileURLToPath } from 'node:url'
36
+
37
+ const __filename = fileURLToPath(import.meta.url)
38
+ const __dirname = dirname(__filename)
39
+
40
+ // ---------------------------------------------------------------------------
41
+ // Constants
42
+ // ---------------------------------------------------------------------------
43
+
44
+ const MODEL_PRESETS = {
45
+ default: 'gemini-2.5-flash',
46
+ thorough: 'gemini-3.1-pro-preview',
47
+ fast: 'gemini-3.1-flash-lite-preview',
48
+ }
49
+
50
+ const SUPPORTED_MEDIA_TYPES = {
51
+ // Video
52
+ '.webm': 'video/webm',
53
+ '.mp4': 'video/mp4',
54
+ '.mov': 'video/mov',
55
+ '.avi': 'video/avi',
56
+ '.mpg': 'video/mpg',
57
+ '.mpeg': 'video/mpeg',
58
+ '.wmv': 'video/wmv',
59
+ '.flv': 'video/x-flv',
60
+ '.3gp': 'video/3gpp',
61
+ // Images (Gemini supports these for screenshot analysis)
62
+ '.jpg': 'image/jpeg',
63
+ '.jpeg': 'image/jpeg',
64
+ '.png': 'image/png',
65
+ '.gif': 'image/gif',
66
+ '.webp': 'image/webp',
67
+ }
68
+
69
+ // ---------------------------------------------------------------------------
70
+ // Helpers
71
+ // ---------------------------------------------------------------------------
72
+
73
+ function output(data) {
74
+ process.stdout.write(JSON.stringify(data, null, 2) + '\n')
75
+ }
76
+
77
+ function fail(message) {
78
+ process.stderr.write(JSON.stringify({ error: message }) + '\n')
79
+ process.exit(1)
80
+ }
81
+
82
+ function getVersion() {
83
+ const pkgPath = resolve(__dirname, '..', 'package.json')
84
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'))
85
+ return `apt-proof-video (${pkg.name} ${pkg.version})`
86
+ }
87
+
88
+ function resolveModel(modelArg) {
89
+ if (!modelArg || modelArg === 'default') return MODEL_PRESETS.default
90
+ if (MODEL_PRESETS[modelArg]) return MODEL_PRESETS[modelArg]
91
+ // Allow passing a full model ID directly
92
+ return modelArg
93
+ }
94
+
95
+ function getMimeType(filePath) {
96
+ const ext = filePath.slice(filePath.lastIndexOf('.')).toLowerCase()
97
+ return SUPPORTED_MEDIA_TYPES[ext] || null
98
+ }
99
+
100
+ // ---------------------------------------------------------------------------
101
+ // Prompts
102
+ // ---------------------------------------------------------------------------
103
+
104
+ function buildVerificationPrompt(specSummary) {
105
+ const base = `You are a QA engineer reviewing a Playwright browser test recording. Provide a structured analysis in JSON format.
106
+
107
+ Return ONLY valid JSON with this exact structure:
108
+ {
109
+ "pages": [
110
+ { "url_or_description": "string", "timestamp_start": "MM:SS", "timestamp_end": "MM:SS" }
111
+ ],
112
+ "ui_elements": [
113
+ { "type": "button|link|heading|input|nav|text|image|other", "text": "exact visible text", "location": "header|sidebar|main|footer|modal" }
114
+ ],
115
+ "interactions": [
116
+ { "timestamp": "MM:SS", "action": "click|scroll|type|hover|navigate", "target": "description of element", "result": "what happened" }
117
+ ],
118
+ "anomalies": [
119
+ { "timestamp": "MM:SS", "type": "layout-shift|slow-load|visual-glitch|error|unexpected-state", "description": "string", "severity": "critical|warning|info" }
120
+ ],
121
+ "verdict": {
122
+ "result": "pass|fail|partial",
123
+ "confidence": 0.95,
124
+ "summary": "one-line summary",
125
+ "details": "detailed explanation"
126
+ }
127
+ }`
128
+
129
+ if (specSummary) {
130
+ return `${base}
131
+
132
+ The spec requirements for this feature are:
133
+ ${specSummary}
134
+
135
+ Verify that the recording demonstrates these requirements being met.`
136
+ }
137
+
138
+ return base
139
+ }
140
+
141
+ function buildDescriptionPrompt() {
142
+ return `You are reviewing a Playwright browser test recording. Describe EVERYTHING you see:
143
+
144
+ 1. What website/page is shown?
145
+ 2. What UI elements are visible (buttons, text, navigation, logos)?
146
+ 3. What interactions/actions happen (clicks, scrolls, navigations)?
147
+ 4. What page transitions occur?
148
+ 5. What is the final state of the page?
149
+
150
+ Be extremely specific — mention exact text, colors, layout details.`
151
+ }
152
+
153
+ // ---------------------------------------------------------------------------
154
+ // SDK loader (handles missing @google/genai gracefully)
155
+ // ---------------------------------------------------------------------------
156
+
157
+ async function loadGenAI() {
158
+ try {
159
+ const mod = await import('@google/genai')
160
+ return mod.GoogleGenAI
161
+ } catch {
162
+ fail(
163
+ '@google/genai is not installed. Run: npm install @google/genai\n' +
164
+ 'This is required for Gemini video analysis in apt-proof-video.',
165
+ )
166
+ }
167
+ }
168
+
169
+ // ---------------------------------------------------------------------------
170
+ // Commands
171
+ // ---------------------------------------------------------------------------
172
+
173
+ async function cmdAnalyze(args) {
174
+ const videoPath = args[0]
175
+ if (!videoPath)
176
+ fail('Usage: apt-proof-video analyze <video-path> [--model <model>] [--spec <summary>]')
177
+
178
+ const resolvedPath = resolve(videoPath)
179
+ if (!existsSync(resolvedPath)) fail(`Video file not found: ${resolvedPath}`)
180
+
181
+ const mimeType = getMimeType(resolvedPath)
182
+ if (!mimeType)
183
+ fail(
184
+ `Unsupported format: ${basename(resolvedPath)}. Supported: ${Object.keys(SUPPORTED_MEDIA_TYPES).join(', ')}`,
185
+ )
186
+
187
+ // Parse flags
188
+ const modelIdx = args.indexOf('--model')
189
+ const modelArg = modelIdx >= 0 ? args[modelIdx + 1] : 'default'
190
+ const model = resolveModel(modelArg)
191
+
192
+ const specIdx = args.indexOf('--spec')
193
+ const specSummary = specIdx >= 0 ? args[specIdx + 1] : null
194
+
195
+ const describeMode = args.includes('--describe')
196
+
197
+ // Check API key
198
+ const apiKey = process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY
199
+ if (!apiKey)
200
+ fail(
201
+ 'Set GEMINI_API_KEY or GOOGLE_API_KEY environment variable. Get a free key at: https://aistudio.google.com/apikey',
202
+ )
203
+
204
+ // Load SDK
205
+ const GoogleGenAI = await loadGenAI()
206
+ const ai = new GoogleGenAI({ apiKey })
207
+
208
+ // Read video
209
+ const videoData = readFileSync(resolvedPath)
210
+ const base64Video = videoData.toString('base64')
211
+ const fileSizeKB = (videoData.length / 1024).toFixed(0)
212
+
213
+ // Build prompt
214
+ const prompt = describeMode ? buildDescriptionPrompt() : buildVerificationPrompt(specSummary)
215
+
216
+ // Call Gemini
217
+ const startTime = Date.now()
218
+
219
+ process.stderr.write(`Analyzing ${basename(resolvedPath)} (${fileSizeKB} KB) with ${model}...\n`)
220
+
221
+ try {
222
+ const response = await ai.models.generateContent({
223
+ model,
224
+ contents: [
225
+ {
226
+ role: 'user',
227
+ parts: [{ inlineData: { mimeType, data: base64Video } }, { text: prompt }],
228
+ },
229
+ ],
230
+ })
231
+
232
+ const elapsed = ((Date.now() - startTime) / 1000).toFixed(1)
233
+ const text = response.text
234
+
235
+ // Try to parse as JSON (verification mode returns JSON)
236
+ let analysis
237
+ if (!describeMode) {
238
+ try {
239
+ // Strip markdown code fences if present
240
+ const jsonStr = text.replace(/^```json\n?/, '').replace(/\n?```$/, '')
241
+ analysis = JSON.parse(jsonStr)
242
+ } catch {
243
+ // If JSON parse fails, return as raw text
244
+ analysis = { raw: text }
245
+ }
246
+ } else {
247
+ analysis = { description: text }
248
+ }
249
+
250
+ output({
251
+ status: 'ok',
252
+ video: {
253
+ path: resolvedPath,
254
+ filename: basename(resolvedPath),
255
+ sizeKB: parseInt(fileSizeKB),
256
+ mimeType,
257
+ },
258
+ model,
259
+ elapsed: parseFloat(elapsed),
260
+ analysis,
261
+ })
262
+ } catch (err) {
263
+ fail(`Gemini API error: ${err.message}`)
264
+ }
265
+ }
266
+
267
+ // ---------------------------------------------------------------------------
268
+ // CDP capture helpers (self-contained, no build dependency)
269
+ // ---------------------------------------------------------------------------
270
+
271
+ /**
272
+ * Generic CDP HTTP helper — fetches JSON from any CDP endpoint path.
273
+ * Fully closes the HTTP connection before resolving to avoid conflicts with
274
+ * the subsequent WebSocket connection.
275
+ */
276
+ function cdpFetchJson(host, port, path) {
277
+ return new Promise((resolve, reject) => {
278
+ const req = http.get(`http://${host}:${port}${path}`, (res) => {
279
+ let body = ''
280
+ res.on('data', (chunk) => {
281
+ body += chunk.toString()
282
+ })
283
+ res.on('end', () => {
284
+ // Fully close HTTP connection before resolving — CDP only allows
285
+ // one debugger connection per target. If this socket lingers,
286
+ // the subsequent WebSocket connection will silently fail to
287
+ // receive screencast frames.
288
+ res.destroy()
289
+ req.destroy()
290
+ try {
291
+ resolve(JSON.parse(body))
292
+ } catch (err) {
293
+ reject(new Error(`Failed to parse ${path}: ${err.message}`))
294
+ }
295
+ })
296
+ })
297
+ req.on('error', reject)
298
+ req.setTimeout(5000, () => {
299
+ req.destroy()
300
+ reject(new Error(`CDP endpoint timeout at ${host}:${port}${path}`))
301
+ })
302
+ })
303
+ }
304
+
305
+ async function cmdCapture(args) {
306
+ // Parse flags
307
+ const portIdx = args.indexOf('--port')
308
+ const port = portIdx >= 0 ? parseInt(args[portIdx + 1], 10) : 9222
309
+
310
+ const hostIdx = args.indexOf('--host')
311
+ const host = hostIdx >= 0 ? args[hostIdx + 1] : 'localhost'
312
+
313
+ const durationIdx = args.indexOf('--duration')
314
+ const duration = durationIdx >= 0 ? parseInt(args[durationIdx + 1], 10) : 30
315
+
316
+ const fpsIdx = args.indexOf('--fps')
317
+ const fps = fpsIdx >= 0 ? parseInt(args[fpsIdx + 1], 10) : 2
318
+
319
+ const outputIdx = args.indexOf('--output')
320
+ const outputPath = outputIdx >= 0 ? resolve(args[outputIdx + 1]) : resolve('./capture-frames')
321
+
322
+ const qualityIdx = args.indexOf('--quality')
323
+ const quality = qualityIdx >= 0 ? parseInt(args[qualityIdx + 1], 10) : 80
324
+
325
+ const targetIdIdx = args.indexOf('--target')
326
+ const requestedTargetId = targetIdIdx >= 0 ? args[targetIdIdx + 1] : null
327
+
328
+ // Fetch page targets from /json
329
+ process.stderr.write(`Checking CDP endpoint at ${host}:${port}...\n`)
330
+ let targets
331
+ try {
332
+ targets = await cdpFetchJson(host, port, '/json')
333
+ } catch (err) {
334
+ fail(
335
+ `CDP not available at ${host}:${port}. Make sure the app is running with --remote-debugging-port=${port}.\nError: ${err.message}`,
336
+ )
337
+ }
338
+
339
+ if (!targets || targets.length === 0) {
340
+ fail(`No debuggable pages found at ${host}:${port}.`)
341
+ }
342
+
343
+ // Select target
344
+ let target
345
+ if (requestedTargetId) {
346
+ target = targets.find((t) => t.id === requestedTargetId)
347
+ if (!target)
348
+ fail(
349
+ `Target ${requestedTargetId} not found. Available: ${targets.map((t) => t.id).join(', ')}`,
350
+ )
351
+ } else {
352
+ target = targets.find((t) => t.type === 'page') ?? targets[0]
353
+ }
354
+
355
+ // Fetch browser-level WebSocket URL from /json/version
356
+ let browserWsUrl
357
+ try {
358
+ const versionData = await cdpFetchJson(host, port, '/json/version')
359
+ browserWsUrl = versionData.webSocketDebuggerUrl
360
+ if (!browserWsUrl) throw new Error('webSocketDebuggerUrl not found in /json/version response')
361
+ } catch (err) {
362
+ fail(`Failed to get browser WebSocket URL: ${err.message}`)
363
+ }
364
+
365
+ // Wait for HTTP connections to fully close before opening WebSocket
366
+ await new Promise((r) => setTimeout(r, 100))
367
+
368
+ // Create output directory
369
+ mkdirSync(outputPath, { recursive: true })
370
+
371
+ process.stderr.write(`Connecting to browser-level CDP (multi-session mode)...\n`)
372
+ process.stderr.write(`Target: ${target.url}\n`)
373
+ process.stderr.write(`Capturing ${duration}s at ~${fps} fps\n`)
374
+ process.stderr.write(`Output: ${outputPath}\n`)
375
+
376
+ const framePaths = []
377
+ let frameIndex = 0
378
+ let cmdId = 1
379
+ const startTime = Date.now()
380
+ const lastFrameTime = 0
381
+ const minIntervalMs = (1000 / fps) * 0.8
382
+
383
+ // Capture using Page.captureScreenshot polling (works alongside MCP/other debuggers)
384
+ // Unlike Page.startScreencast which is limited to one per target,
385
+ // captureScreenshot is a request-response API that supports multiple sessions.
386
+ await new Promise((captureResolve) => {
387
+ const ws = new WebSocket(browserWsUrl)
388
+ let attachedSessionId = null
389
+ let captureInterval = null
390
+ let pendingScreenshot = false
391
+ const intervalMs = Math.max(250, Math.round(1000 / fps))
392
+
393
+ const doCleanup = () => {
394
+ if (captureInterval) {
395
+ clearInterval(captureInterval)
396
+ captureInterval = null
397
+ }
398
+ if (attachedSessionId) {
399
+ try {
400
+ ws.send(
401
+ JSON.stringify({
402
+ id: cmdId++,
403
+ method: 'Target.detachFromTarget',
404
+ params: { sessionId: attachedSessionId },
405
+ }),
406
+ )
407
+ } catch {
408
+ /* ignore */
409
+ }
410
+ }
411
+ setTimeout(() => {
412
+ ws.close()
413
+ captureResolve()
414
+ }, 200)
415
+ }
416
+
417
+ ws.addEventListener('open', () => {
418
+ ws.send(
419
+ JSON.stringify({
420
+ id: cmdId++,
421
+ method: 'Target.attachToTarget',
422
+ params: { targetId: target.id, flatten: true },
423
+ }),
424
+ )
425
+ })
426
+
427
+ ws.addEventListener('message', (event) => {
428
+ let msg
429
+ try {
430
+ msg = JSON.parse(event.data)
431
+ } catch {
432
+ return
433
+ }
434
+
435
+ // Get session ID from attachToTarget response
436
+ if (!attachedSessionId && msg.result && msg.result.sessionId) {
437
+ attachedSessionId = msg.result.sessionId
438
+ process.stderr.write(`Session established (captureScreenshot polling mode)\n`)
439
+
440
+ // Start polling loop
441
+ const requestScreenshot = () => {
442
+ if (pendingScreenshot) return
443
+ pendingScreenshot = true
444
+ ws.send(
445
+ JSON.stringify({
446
+ id: cmdId++,
447
+ method: 'Page.captureScreenshot',
448
+ sessionId: attachedSessionId,
449
+ params: { format: 'jpeg', quality, optimizeForSpeed: true },
450
+ }),
451
+ )
452
+ }
453
+
454
+ // Take first frame immediately
455
+ requestScreenshot()
456
+ captureInterval = setInterval(requestScreenshot, intervalMs)
457
+
458
+ // Schedule stop
459
+ setTimeout(doCleanup, duration * 1000)
460
+ return
461
+ }
462
+
463
+ // Handle screenshot response
464
+ if (msg.result && msg.result.data && msg.sessionId === attachedSessionId) {
465
+ pendingScreenshot = false
466
+ const data = msg.result.data
467
+ const elapsed = Date.now() - startTime
468
+
469
+ const paddedIndex = String(frameIndex).padStart(4, '0')
470
+ const filename = `frame-${paddedIndex}-${elapsed}ms.jpg`
471
+ const framePath = join(outputPath, filename)
472
+ try {
473
+ writeFileSync(framePath, Buffer.from(data, 'base64'))
474
+ framePaths.push(framePath)
475
+ } catch (err) {
476
+ process.stderr.write(`Failed to save frame ${frameIndex}: ${err.message}\n`)
477
+ }
478
+
479
+ frameIndex++
480
+
481
+ if (frameIndex % 5 === 0) {
482
+ process.stderr.write(
483
+ ` ${frameIndex} frames captured (${(elapsed / 1000).toFixed(1)}s)\n`,
484
+ )
485
+ }
486
+ }
487
+ })
488
+
489
+ ws.addEventListener('error', () => {
490
+ // Ignore errors during close — they're expected when detaching
491
+ })
492
+ })
493
+
494
+ const elapsed = (Date.now() - startTime) / 1000
495
+
496
+ // Total bytes
497
+ let totalBytes = 0
498
+ for (const fp of framePaths) {
499
+ try {
500
+ totalBytes += statSync(fp).size
501
+ } catch {
502
+ /* skip */
503
+ }
504
+ }
505
+
506
+ // --- Auto-stitch frames to MP4 via ffmpeg ---
507
+ let videoPath = null
508
+ let framesDeleted = false
509
+ if (framePaths.length > 0) {
510
+ const mp4Path = join(outputPath, 'recording.mp4')
511
+ try {
512
+ // Check if ffmpeg is available
513
+ execSync('ffmpeg -version', { stdio: 'ignore' })
514
+
515
+ // ffmpeg expects a sequential pattern — rename frames to sequential numbering
516
+ const seqDir = join(outputPath, 'seq')
517
+ mkdirSync(seqDir, { recursive: true })
518
+ for (let i = 0; i < framePaths.length; i++) {
519
+ const seqName = `frame-${String(i).padStart(5, '0')}.jpg`
520
+ const seqPath = join(seqDir, seqName)
521
+ writeFileSync(seqPath, readFileSync(framePaths[i]))
522
+ }
523
+
524
+ // Stitch with ffmpeg
525
+ const ffmpegCmd = `ffmpeg -y -framerate ${fps} -i "${join(seqDir, 'frame-%05d.jpg')}" -c:v libx264 -pix_fmt yuv420p -crf 23 -preset fast "${mp4Path}"`
526
+ process.stderr.write(`Stitching ${framePaths.length} frames to MP4...\n`)
527
+ execSync(ffmpegCmd, { stdio: 'pipe' })
528
+
529
+ if (existsSync(mp4Path)) {
530
+ videoPath = mp4Path
531
+ const mp4Size = statSync(mp4Path).size
532
+ process.stderr.write(
533
+ `Video written: ${mp4Path} (${(mp4Size / 1024 / 1024).toFixed(1)} MB)\n`,
534
+ )
535
+
536
+ // Delete individual frame files and seq dir
537
+ for (const fp of framePaths) {
538
+ try {
539
+ unlinkSync(fp)
540
+ } catch {
541
+ /* ignore */
542
+ }
543
+ }
544
+ // Clean up seq dir
545
+ try {
546
+ rmSync(seqDir, { recursive: true, force: true })
547
+ } catch {
548
+ /* ignore */
549
+ }
550
+ framesDeleted = true
551
+ process.stderr.write(`Cleaned up ${framePaths.length} frame files.\n`)
552
+ }
553
+ } catch (err) {
554
+ // ffmpeg not available or failed — keep frames
555
+ process.stderr.write(
556
+ `Warning: ffmpeg not available or failed (${err.message}). Keeping individual frame files.\n`,
557
+ )
558
+ // Clean up seq dir if it was created
559
+ const seqDirCleanup = join(outputPath, 'seq')
560
+ try {
561
+ rmSync(seqDirCleanup, { recursive: true, force: true })
562
+ } catch {
563
+ /* ignore */
564
+ }
565
+ }
566
+ }
567
+
568
+ output({
569
+ status: 'ok',
570
+ capture: {
571
+ host,
572
+ port,
573
+ targetUrl: target.url,
574
+ outputPath,
575
+ frameCount: frameIndex,
576
+ duration: elapsed,
577
+ fileSizeBytes: totalBytes,
578
+ videoPath,
579
+ framesDeleted,
580
+ framePaths: framesDeleted ? [] : framePaths,
581
+ },
582
+ })
583
+ }
584
+
585
+ // ---------------------------------------------------------------------------
586
+ // HTML report helpers (ported from proof-report.ts — self-contained)
587
+ // ---------------------------------------------------------------------------
588
+
589
+ function escapeHtml(str) {
590
+ return String(str)
591
+ .replace(/&/g, '&amp;')
592
+ .replace(/</g, '&lt;')
593
+ .replace(/>/g, '&gt;')
594
+ .replace(/"/g, '&quot;')
595
+ }
596
+
597
+ /** Lightweight markdown → HTML (no external deps) */
598
+ function renderMarkdown(md) {
599
+ return (
600
+ escapeHtml(md)
601
+ // Headings
602
+ .replace(
603
+ /^### (.+)$/gm,
604
+ '<h4 style="font-size:14px;color:#D6D876;margin:16px 0 6px;">$1</h4>',
605
+ )
606
+ .replace(/^## (.+)$/gm, '<h3 style="font-size:16px;color:#D6D876;margin:20px 0 8px;">$1</h3>')
607
+ .replace(/^# (.+)$/gm, '<h2 style="font-size:18px;color:#f1f5f9;margin:20px 0 8px;">$1</h2>')
608
+ // Bold + italic
609
+ .replace(/\*\*\*(.+?)\*\*\*/g, '<strong><em>$1</em></strong>')
610
+ .replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>')
611
+ .replace(/\*(.+?)\*/g, '<em>$1</em>')
612
+ // Inline code
613
+ .replace(
614
+ /`([^`]+)`/g,
615
+ '<code style="background:#1e293b;padding:1px 5px;border-radius:4px;font-size:12px;">$1</code>',
616
+ )
617
+ // Horizontal rule
618
+ .replace(/^---$/gm, '<hr style="border:none;border-top:1px solid #1e293b;margin:16px 0;" />')
619
+ // Unordered list items
620
+ .replace(/^- (.+)$/gm, '<li style="margin:2px 0;margin-left:20px;list-style:disc;">$1</li>')
621
+ // Table (simple: | col | col |)
622
+ .replace(/^\| (.+) \|$/gm, (match, inner) => {
623
+ const cells = inner
624
+ .split(' | ')
625
+ .map(
626
+ (c) => `<td style="padding:4px 10px;border-bottom:1px solid #1e293b;">${c.trim()}</td>`,
627
+ )
628
+ .join('')
629
+ return `<tr>${cells}</tr>`
630
+ })
631
+ // Wrap consecutive <tr> in table
632
+ .replace(
633
+ /((?:<tr>.*<\/tr>\n?)+)/g,
634
+ '<table style="width:100%;border-collapse:collapse;font-size:13px;margin:8px 0;">$1</table>',
635
+ )
636
+ // Table separator rows (|---|---|)
637
+ .replace(/<tr><td[^>]*>-+<\/td>.*?<\/tr>/g, '')
638
+ // Paragraphs (blank lines)
639
+ .replace(/\n\n/g, '</p><p style="margin:8px 0;">')
640
+ // Single newlines → <br>
641
+ .replace(/\n/g, '<br />')
642
+ // Wrap in paragraph
643
+ .replace(/^/, '<p style="margin:8px 0;">')
644
+ .replace(/$/, '</p>')
645
+ )
646
+ }
647
+
648
+ function statusBadge(status) {
649
+ const colors = {
650
+ pass: '#22c55e',
651
+ approved: '#22c55e',
652
+ fail: '#ef4444',
653
+ rejected: '#ef4444',
654
+ partial: '#f59e0b',
655
+ 'approved-with-notes': '#f59e0b',
656
+ skip: '#6b7280',
657
+ error: '#ef4444',
658
+ }
659
+ const color = colors[status] ?? '#6b7280'
660
+ return `<span style="background:${color};color:#fff;padding:2px 10px;border-radius:12px;font-size:13px;font-weight:600;text-transform:uppercase;">${escapeHtml(status)}</span>`
661
+ }
662
+
663
+ function renderDimensionBar(score, label, rationale) {
664
+ const pct = score * 10
665
+ const color = score >= 7 ? '#22c55e' : score >= 5 ? '#f59e0b' : '#ef4444'
666
+ return `
667
+ <div style="margin-bottom:12px;">
668
+ <div style="display:flex;justify-content:space-between;margin-bottom:4px;">
669
+ <span style="font-weight:600;text-transform:capitalize;">${escapeHtml(label)}</span>
670
+ <span style="font-weight:700;color:${color};">${score}/10</span>
671
+ </div>
672
+ <div style="background:#1e293b;border-radius:6px;height:8px;overflow:hidden;">
673
+ <div style="background:${color};height:100%;width:${pct}%;border-radius:6px;"></div>
674
+ </div>
675
+ <div style="font-size:12px;color:#94a3b8;margin-top:2px;">${escapeHtml(rationale)}</div>
676
+ </div>`
677
+ }
678
+
679
+ function renderVerdictCard(verdict) {
680
+ const providerColors = {
681
+ claude: '#d97706',
682
+ gemini: '#4285f4',
683
+ codex: '#10b981',
684
+ }
685
+ const color = providerColors[verdict.provider] ?? '#6b7280'
686
+ const confidence =
687
+ typeof verdict.confidence === 'number' ? Math.round(verdict.confidence * 100) : '?'
688
+ const findings = Array.isArray(verdict.findings) ? verdict.findings : []
689
+
690
+ return `
691
+ <div style="background:#1a1a2e;border:1px solid #1e293b;border-radius:12px;padding:20px;margin-bottom:12px;">
692
+ <div style="display:flex;align-items:center;gap:12px;margin-bottom:8px;">
693
+ <span style="background:${color};color:#fff;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600;">${escapeHtml(verdict.provider ?? 'unknown')}</span>
694
+ ${statusBadge(verdict.verdict ?? verdict.result ?? 'unknown')}
695
+ <span style="font-size:13px;color:#94a3b8;">${escapeHtml(verdict.model ?? '')}</span>
696
+ <span style="color:#64748b;font-size:12px;margin-left:auto;">confidence: ${confidence}%</span>
697
+ </div>
698
+ ${verdict.role ? `<div style="font-size:13px;color:#94a3b8;margin-bottom:4px;font-weight:600;">Role: ${escapeHtml(verdict.role)}</div>` : ''}
699
+ <p style="font-size:14px;margin:8px 0;">${escapeHtml(verdict.summary ?? verdict.details ?? '')}</p>
700
+ ${
701
+ findings.length > 0
702
+ ? `<ul style="margin:4px 0 0 0;padding-left:20px;font-size:13px;color:#cbd5e1;">${findings.map((f) => `<li>${escapeHtml(f)}</li>`).join('')}</ul>`
703
+ : ''
704
+ }
705
+ </div>`
706
+ }
707
+
708
+ /** Build the analysis sidebar HTML from Gemini analysis data */
709
+ function renderAnalysisPanel(analysisData) {
710
+ if (!analysisData || !analysisData.verdict) {
711
+ return '<div style="color:#64748b;font-size:13px;font-style:italic;">No AI analysis available.</div>'
712
+ }
713
+ const v = analysisData.verdict
714
+ const confidence = typeof v.confidence === 'number' ? Math.round(v.confidence * 100) : '?'
715
+ const uiElements = Array.isArray(analysisData.ui_elements) ? analysisData.ui_elements.length : 0
716
+ const anomalies = Array.isArray(analysisData.anomalies) ? analysisData.anomalies.length : 0
717
+ const interactions = Array.isArray(analysisData.interactions) ? analysisData.interactions : []
718
+
719
+ let html = `
720
+ <div style="margin-bottom:12px;">
721
+ <div style="font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px;">Verdict</div>
722
+ <div style="display:flex;align-items:center;gap:8px;">
723
+ ${statusBadge(v.result)}
724
+ <span style="font-size:12px;color:#64748b;">${confidence}% confidence</span>
725
+ </div>
726
+ </div>
727
+ <div style="margin-bottom:12px;">
728
+ <div style="font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;">Summary</div>
729
+ <div style="font-size:13px;color:#e2e8f0;line-height:1.5;">${escapeHtml(v.summary ?? '')}</div>
730
+ </div>
731
+ ${
732
+ v.details
733
+ ? `
734
+ <div style="margin-bottom:12px;">
735
+ <div style="font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;">Details</div>
736
+ <div style="font-size:12px;color:#94a3b8;line-height:1.5;">${escapeHtml(v.details)}</div>
737
+ </div>`
738
+ : ''
739
+ }`
740
+
741
+ // Timestamped interactions (useful for video analysis)
742
+ if (interactions.length > 0) {
743
+ html += `
744
+ <div style="margin-bottom:12px;">
745
+ <div style="font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px;">Interactions (${interactions.length})</div>
746
+ <div style="font-size:12px;color:#94a3b8;max-height:200px;overflow-y:auto;">
747
+ ${interactions.map((i) => `<div style="margin-bottom:4px;padding:4px 0;border-bottom:1px solid #1e293b;"><span style="color:#D6D876;font-family:monospace;font-size:11px;">${escapeHtml(i.timestamp ?? '')}</span> ${escapeHtml(i.action ?? '')} → ${escapeHtml(i.target ?? '')}</div>`).join('')}
748
+ </div>
749
+ </div>`
750
+ }
751
+
752
+ html += `
753
+ <div style="display:flex;gap:16px;margin-top:8px;">
754
+ ${uiElements > 0 ? `<div><span style="font-size:18px;font-weight:700;color:#D6D876;">${uiElements}</span><div style="font-size:10px;color:#64748b;">Elements</div></div>` : ''}
755
+ ${anomalies > 0 ? `<div><span style="font-size:18px;font-weight:700;color:#FF5C5C;">${anomalies}</span><div style="font-size:10px;color:#64748b;">Anomalies</div></div>` : ''}
756
+ </div>`
757
+
758
+ return html
759
+ }
760
+
761
+ /**
762
+ * Render a screenshot evidence card.
763
+ * @param {string} mode - 'relative' (file path) or 'embedded' (base64)
764
+ */
765
+ function renderScreenshotCard(filename, base64Data, mimeType, analysisData, index, mode) {
766
+ const ext = extname(filename).toLowerCase()
767
+ const imgMime = mimeType || (ext === '.jpg' || ext === '.jpeg' ? 'image/jpeg' : 'image/png')
768
+ const imgId = `img-${index ?? 0}`
769
+
770
+ const imgSrc = mode === 'embedded' ? `data:${imgMime};base64,${base64Data}` : escapeHtml(filename)
771
+
772
+ return `
773
+ <div class="evidence-card">
774
+ <div style="font-size:13px;font-weight:600;color:#D6D876;margin-bottom:12px;">${escapeHtml(filename)}</div>
775
+ <div style="display:flex;gap:16px;align-items:flex-start;">
776
+ <div style="flex:3;min-width:0;">
777
+ <img id="${imgId}" src="${imgSrc}" style="width:100%;border-radius:8px;border:1px solid #1e293b;cursor:pointer;" alt="${escapeHtml(filename)}" onclick="openLightbox('${imgId}')" title="Click to enlarge" />
778
+ </div>
779
+ <div style="flex:1;min-width:180px;padding:12px;background:#0f172a;border-radius:8px;border:1px solid #1e293b;">
780
+ ${renderAnalysisPanel(analysisData)}
781
+ </div>
782
+ </div>
783
+ </div>`
784
+ }
785
+
786
+ /**
787
+ * Render a video evidence card with inline player.
788
+ * Videos always use relative paths (too large for base64).
789
+ */
790
+ function renderVideoCard(filename, mimeType, analysisData, index) {
791
+ const videoId = `video-${index ?? 0}`
792
+ const vidMime = mimeType || 'video/webm'
793
+
794
+ return `
795
+ <div class="evidence-card">
796
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:12px;">
797
+ <span style="font-size:13px;font-weight:600;color:#D6D876;">${escapeHtml(filename)}</span>
798
+ <span style="font-size:11px;color:#64748b;background:#1e293b;padding:2px 8px;border-radius:8px;">VIDEO</span>
799
+ </div>
800
+ <div style="display:flex;gap:16px;align-items:flex-start;">
801
+ <div style="flex:3;min-width:0;">
802
+ <video id="${videoId}" src="${escapeHtml(filename)}" controls preload="metadata" style="width:100%;border-radius:8px;border:1px solid #1e293b;background:#000;" title="Click play to watch verification recording">
803
+ Your browser does not support the video tag.
804
+ </video>
805
+ </div>
806
+ <div style="flex:1;min-width:180px;padding:12px;background:#0f172a;border-radius:8px;border:1px solid #1e293b;">
807
+ ${renderAnalysisPanel(analysisData)}
808
+ </div>
809
+ </div>
810
+ </div>`
811
+ }
812
+
813
+ function generateReportHtml(opts) {
814
+ const {
815
+ title,
816
+ runDate,
817
+ verification, // parsed VERIFICATION.md (primary data source)
818
+ screenshots, // [{filename, base64, mimeType}] — all found images
819
+ screenshotMap, // Map: filename/basename -> screenshot data
820
+ videos, // [{filename, mimeType, analysis}]
821
+ verdicts, // [ModelVerdict-like objects]
822
+ quorum, // optional
823
+ dimensions, // [{dimension, score, rationale}]
824
+ overallVerdict,
825
+ mode, // 'relative' or 'embedded'
826
+ } = opts
827
+ const renderMode = mode ?? 'relative'
828
+ const videoList = videos ?? []
829
+ const v = verification // shorthand
830
+
831
+ // --- Stat counts ---
832
+ const totalTests = v ? v.features.reduce((n, f) => n + f.tests.length, 0) : 0
833
+ const passedTests = v
834
+ ? v.features.reduce((n, f) => n + f.tests.filter((t) => t.result === 'pass').length, 0)
835
+ : 0
836
+ const failedTests = v
837
+ ? v.features.reduce((n, f) => n + f.tests.filter((t) => t.result === 'fail').length, 0)
838
+ : 0
839
+ const blockedTests = v
840
+ ? v.features.reduce((n, f) => n + f.tests.filter((t) => t.result === 'blocked').length, 0)
841
+ : 0
842
+
843
+ // --- Helper: resolve screenshot src ---
844
+ const resolveImgSrc = (evidence) => {
845
+ if (!evidence) return null
846
+ const entry =
847
+ screenshotMap?.get(evidence) ??
848
+ screenshotMap?.get(basename(evidence)) ??
849
+ screenshotMap?.get('screenshots/' + evidence)
850
+ if (!entry) return null
851
+ return renderMode === 'embedded' && entry.base64
852
+ ? `data:${entry.mimeType};base64,${entry.base64}`
853
+ : entry.filename
854
+ }
855
+
856
+ let imgCounter = 0
857
+
858
+ // --- QUORUM ---
859
+ const quorumHtml = quorum
860
+ ? `<div style="background:#1a1a2e;border:2px solid ${quorum.finalVerdict === 'pass' ? '#22c55e' : quorum.finalVerdict === 'fail' ? '#ef4444' : '#f59e0b'};border-radius:12px;padding:20px;margin-bottom:24px;text-align:center;">
861
+ <div style="font-size:14px;color:#94a3b8;margin-bottom:8px;">VERIFICATION QUORUM</div>
862
+ <div style="font-size:28px;font-weight:700;margin-bottom:8px;">${statusBadge(quorum.finalVerdict)}</div>
863
+ </div>`
864
+ : ''
865
+
866
+ // --- SUMMARY ---
867
+ const summaryHtml = v?.summary?.outcome
868
+ ? `<div class="section">
869
+ <h2>Summary</h2>
870
+ <div class="card">
871
+ <div style="font-size:15px;color:#e2e8f0;margin-bottom:12px;">${escapeHtml(v.summary.outcome)}</div>
872
+ ${v.summary.verdictText ? `<div style="font-size:13px;color:#94a3b8;">${escapeHtml(v.summary.verdictText)}</div>` : ''}
873
+ </div>
874
+ </div>`
875
+ : ''
876
+
877
+ // --- AUTOMATED CHECKS ---
878
+ const renderCheck = (name, check) => {
879
+ if (!check) return ''
880
+ const isPass = check.status.startsWith('pass')
881
+ const color = isPass ? '#22c55e' : '#ef4444'
882
+ const icon = isPass ? '&#10003;' : '&#10007;'
883
+ return `<div style="margin-bottom:12px;padding:12px;background:#0f172a;border-radius:8px;border-left:3px solid ${color};">
884
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:4px;">
885
+ <span style="color:${color};font-weight:700;font-size:16px;">${icon}</span>
886
+ <span style="font-weight:600;">${escapeHtml(name)}</span>
887
+ <span style="font-size:12px;color:#64748b;margin-left:auto;">${escapeHtml(check.status)}</span>
888
+ </div>
889
+ ${check.output ? `<details><summary style="font-size:12px;color:#64748b;cursor:pointer;">Show output</summary><pre style="font-size:11px;color:#94a3b8;margin-top:8px;overflow-x:auto;white-space:pre-wrap;">${escapeHtml(check.output)}</pre></details>` : ''}
890
+ </div>`
891
+ }
892
+
893
+ const automatedChecksHtml = v?.automatedChecks
894
+ ? `<div class="section">
895
+ <h2>Automated Checks</h2>
896
+ <div class="card">
897
+ ${renderCheck('Tests', v.automatedChecks.tests)}
898
+ ${renderCheck('Type Check', v.automatedChecks.typecheck)}
899
+ ${renderCheck('Lint', v.automatedChecks.lint)}
900
+ </div>
901
+ </div>`
902
+ : ''
903
+
904
+ // --- QA DIMENSIONS ---
905
+ const dimensionsHtml =
906
+ dimensions && dimensions.length > 0
907
+ ? `<div class="section">
908
+ <h2>QA Dimensions</h2>
909
+ <div class="card">
910
+ ${dimensions.map((d) => renderDimensionBar(d.score, d.dimension, d.rationale ?? '')).join('')}
911
+ </div>
912
+ </div>`
913
+ : ''
914
+
915
+ // --- FEATURE CHECKLISTS ---
916
+ const renderTestRow = (test, featureId) => {
917
+ const resultColors = {
918
+ pass: '#22c55e',
919
+ fail: '#ef4444',
920
+ blocked: '#f59e0b',
921
+ skip: '#6b7280',
922
+ pending: '#6b7280',
923
+ }
924
+ const color = resultColors[test.result] ?? '#6b7280'
925
+ const icon =
926
+ test.result === 'pass'
927
+ ? '&#10003;'
928
+ : test.result === 'fail'
929
+ ? '&#10007;'
930
+ : test.result === 'blocked'
931
+ ? '&#9888;'
932
+ : '&#8226;'
933
+
934
+ const imgSrc = resolveImgSrc(test.evidence)
935
+ const imgId = imgSrc ? `img-${imgCounter++}` : null
936
+
937
+ return `<div style="padding:12px;margin-bottom:8px;background:#0f172a;border-radius:8px;border-left:3px solid ${color};">
938
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:6px;">
939
+ <span style="color:${color};font-weight:700;font-size:14px;">${icon}</span>
940
+ <span style="font-weight:600;font-size:13px;">${escapeHtml(test.name)}</span>
941
+ ${statusBadge(test.result ?? 'pending')}
942
+ ${test.severity ? `<span style="font-size:11px;color:#ef4444;background:#ef444420;padding:1px 6px;border-radius:8px;margin-left:4px;">${escapeHtml(test.severity)}</span>` : ''}
943
+ </div>
944
+ <div style="font-size:12px;color:#94a3b8;margin-bottom:4px;"><strong>Action:</strong> ${escapeHtml(test.action ?? '')}</div>
945
+ <div style="font-size:12px;color:#94a3b8;margin-bottom:4px;"><strong>Expected:</strong> ${escapeHtml(test.expected ?? '')}</div>
946
+ ${test.actual ? `<div style="font-size:12px;color:#cbd5e1;margin-bottom:4px;"><strong>Actual:</strong> ${escapeHtml(test.actual)}</div>` : ''}
947
+ ${test.ai_analysis ? `<details style="margin-top:6px;"><summary style="font-size:11px;color:#D6D876;cursor:pointer;">AI Analysis</summary><div style="font-size:12px;color:#94a3b8;margin-top:4px;padding:8px;background:#12121A;border-radius:6px;line-height:1.5;">${escapeHtml(test.ai_analysis)}</div></details>` : ''}
948
+ ${test.notes ? `<div style="font-size:11px;color:#64748b;margin-top:4px;font-style:italic;">Note: ${escapeHtml(test.notes)}</div>` : ''}
949
+ ${imgSrc ? `<div style="margin-top:8px;"><img id="${imgId}" src="${imgSrc}" style="max-width:100%;max-height:300px;border-radius:6px;border:1px solid #1e293b;cursor:pointer;" onclick="openLightbox('${imgId}')" title="Click to enlarge" /></div>` : ''}
950
+ </div>`
951
+ }
952
+
953
+ const featuresHtml =
954
+ v?.features?.length > 0
955
+ ? `<div class="section">
956
+ <h2>Feature Verification</h2>
957
+ ${v.features
958
+ .map((f) => {
959
+ const featureResultColors = {
960
+ pass: '#22c55e',
961
+ fail: '#ef4444',
962
+ blocked: '#f59e0b',
963
+ partial: '#f59e0b',
964
+ }
965
+ const fColor = featureResultColors[f.result] ?? '#6b7280'
966
+ const passCount = f.tests.filter((t) => t.result === 'pass').length
967
+ const totalCount = f.tests.length
968
+ return `<div class="card" style="border-left:3px solid ${fColor};">
969
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:12px;">
970
+ <h3 style="font-size:15px;color:#f1f5f9;margin:0;">${escapeHtml(f.name)}</h3>
971
+ ${statusBadge(f.result ?? 'pending')}
972
+ <span style="font-size:12px;color:#64748b;margin-left:auto;">${passCount}/${totalCount} tests</span>
973
+ </div>
974
+ ${f.route ? `<div style="font-size:11px;color:#64748b;margin-bottom:8px;">Route: <code style="color:#D6D876;">${escapeHtml(f.route)}</code></div>` : ''}
975
+ ${f.tests.map((t) => renderTestRow(t, f.id)).join('')}
976
+ </div>`
977
+ })
978
+ .join('')}
979
+ </div>`
980
+ : ''
981
+
982
+ // --- GAPS ---
983
+ const gapsHtml =
984
+ v?.gaps?.length > 0
985
+ ? `<div class="section">
986
+ <h2>Gaps &amp; Issues</h2>
987
+ ${v.gaps
988
+ .map((g) => {
989
+ const sevColors = {
990
+ blocker: '#ef4444',
991
+ major: '#f97316',
992
+ minor: '#f59e0b',
993
+ cosmetic: '#6b7280',
994
+ }
995
+ const c = sevColors[g.severity] ?? '#6b7280'
996
+ return `<div class="card" style="border-left:3px solid ${c};">
997
+ <div style="display:flex;align-items:center;gap:8px;margin-bottom:6px;">
998
+ <span style="background:${c};color:#fff;padding:1px 8px;border-radius:8px;font-size:11px;font-weight:600;text-transform:uppercase;">${escapeHtml(g.severity ?? 'unknown')}</span>
999
+ <span style="font-size:13px;font-weight:600;color:#e2e8f0;">${escapeHtml(g.feature ?? '')}</span>
1000
+ </div>
1001
+ <div style="font-size:13px;color:#cbd5e1;margin-bottom:4px;">${escapeHtml(g.truth ?? '')}</div>
1002
+ <div style="font-size:12px;color:#f87171;">${escapeHtml(g.reason ?? '')}</div>
1003
+ ${g.root_cause ? `<div style="font-size:12px;color:#94a3b8;margin-top:4px;"><strong>Root cause:</strong> ${escapeHtml(g.root_cause)}</div>` : ''}
1004
+ ${g.fix_plan ? `<div style="font-size:12px;color:#94a3b8;"><strong>Fix plan:</strong> ${escapeHtml(g.fix_plan)}</div>` : ''}
1005
+ </div>`
1006
+ })
1007
+ .join('')}
1008
+ </div>`
1009
+ : ''
1010
+
1011
+ // --- VIDEOS ---
1012
+ const videosHtml =
1013
+ videoList.length > 0
1014
+ ? `<div class="section">
1015
+ <h2>Video Evidence</h2>
1016
+ ${videoList.map((vi, i) => renderVideoCard(vi.filename, vi.mimeType, vi.analysis, i)).join('')}
1017
+ </div>`
1018
+ : ''
1019
+
1020
+ // --- MULTI-MODEL VERDICTS ---
1021
+ const verdictsHtml =
1022
+ verdicts.length > 0
1023
+ ? `<div class="section">
1024
+ <h2>Multi-Model Verdicts</h2>
1025
+ ${verdicts.map(renderVerdictCard).join('')}
1026
+ </div>`
1027
+ : ''
1028
+
1029
+ // --- COVERAGE ---
1030
+ const coverageData = v?.coverage ?? null
1031
+ const coverageHtml = coverageData
1032
+ ? (() => {
1033
+ const pct = typeof coverageData.percent === 'number' ? coverageData.percent : 0
1034
+ const barColor = pct >= 80 ? '#22c55e' : pct >= 50 ? '#f59e0b' : '#ef4444'
1035
+ return `<div class="section">
1036
+ <h2>Feature Coverage</h2>
1037
+ <div class="card">
1038
+ <div style="display:flex;justify-content:space-between;margin-bottom:8px;">
1039
+ <span style="font-weight:600;">Registered Features</span>
1040
+ <span style="font-weight:700;color:${barColor};">${coverageData.tested ?? 0} / ${coverageData.registered ?? 0} tested (${pct.toFixed(1)}%)</span>
1041
+ </div>
1042
+ <div style="background:#1e293b;border-radius:6px;height:12px;overflow:hidden;margin-bottom:16px;">
1043
+ <div style="background:${barColor};height:100%;width:${pct}%;border-radius:6px;transition:width 0.3s;"></div>
1044
+ </div>
1045
+ <div style="display:flex;gap:24px;flex-wrap:wrap;">
1046
+ <div class="stat"><div class="stat-value" style="color:#22c55e;">${coverageData.passed ?? 0}</div><div class="stat-label">Passed</div></div>
1047
+ <div class="stat"><div class="stat-value" style="color:#ef4444;">${coverageData.failed ?? 0}</div><div class="stat-label">Failed</div></div>
1048
+ <div class="stat"><div class="stat-value" style="color:#f59e0b;">${coverageData.blocked ?? 0}</div><div class="stat-label">Blocked</div></div>
1049
+ <div class="stat"><div class="stat-value" style="color:#6b7280;">${coverageData.skipped ?? 0}</div><div class="stat-label">Skipped</div></div>
1050
+ </div>
1051
+ </div>
1052
+ </div>`
1053
+ })()
1054
+ : ''
1055
+
1056
+ // --- SKIPPED FEATURES ---
1057
+ const skippedList = v?.skipped ?? []
1058
+ const skippedHtml =
1059
+ skippedList.length > 0
1060
+ ? `<div class="section">
1061
+ <h2>Skipped Features</h2>
1062
+ <details>
1063
+ <summary style="font-size:14px;color:#94a3b8;cursor:pointer;margin-bottom:12px;">${skippedList.length} features not tested — click to expand</summary>
1064
+ <div class="card" style="max-height:400px;overflow-y:auto;">
1065
+ ${skippedList
1066
+ .map((s) => {
1067
+ const reasonColors = {
1068
+ time_constraint: '#f59e0b',
1069
+ blocked_by_platform: '#ef4444',
1070
+ not_applicable: '#6b7280',
1071
+ }
1072
+ const rColor = reasonColors[s.reason] ?? '#6b7280'
1073
+ return `<div style="padding:8px 12px;margin-bottom:4px;background:#0f172a;border-radius:6px;display:flex;align-items:center;gap:8px;">
1074
+ <span style="font-size:13px;font-weight:600;color:#cbd5e1;flex:1;">${escapeHtml(s.name ?? s.registry_id ?? '')}</span>
1075
+ <span style="font-size:11px;color:${rColor};background:${rColor}20;padding:1px 8px;border-radius:8px;white-space:nowrap;">${escapeHtml((s.reason ?? '').replace(/_/g, ' '))}</span>
1076
+ ${s.note ? `<span style="font-size:11px;color:#64748b;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;" title="${escapeHtml(s.note)}">${escapeHtml(s.note)}</span>` : ''}
1077
+ </div>`
1078
+ })
1079
+ .join('')}
1080
+ </div>
1081
+ </details>
1082
+ </div>`
1083
+ : ''
1084
+
1085
+ // --- UNATTACHED SCREENSHOTS ---
1086
+ const attachedEvidence = new Set()
1087
+ if (v) {
1088
+ for (const f of v.features) {
1089
+ for (const t of f.tests) {
1090
+ if (t.evidence) {
1091
+ attachedEvidence.add(t.evidence)
1092
+ attachedEvidence.add(basename(t.evidence))
1093
+ attachedEvidence.add('screenshots/' + t.evidence)
1094
+ }
1095
+ }
1096
+ }
1097
+ }
1098
+ const unattached = screenshots.filter((s) => {
1099
+ // Exclude frame-*.jpg files (video frames, not screenshots)
1100
+ const fname = basename(s.filename)
1101
+ if (/^frame-\d+.*\.jpg$/i.test(fname)) return false
1102
+ return !attachedEvidence.has(s.filename) && !attachedEvidence.has(fname)
1103
+ })
1104
+ const unattachedHtml =
1105
+ unattached.length > 0
1106
+ ? `<div class="section">
1107
+ <h2>Additional Screenshots</h2>
1108
+ <div class="grid-2">
1109
+ ${unattached
1110
+ .map((s) => {
1111
+ const id = `img-${imgCounter++}`
1112
+ const src =
1113
+ renderMode === 'embedded' && s.base64
1114
+ ? `data:${s.mimeType};base64,${s.base64}`
1115
+ : s.filename
1116
+ return `<div class="card" style="padding:12px;">
1117
+ <div style="font-size:11px;color:#64748b;margin-bottom:6px;">${escapeHtml(s.filename)}</div>
1118
+ <img id="${id}" src="${src}" style="width:100%;border-radius:6px;border:1px solid #1e293b;cursor:pointer;" onclick="openLightbox('${id}')" />
1119
+ </div>`
1120
+ })
1121
+ .join('')}
1122
+ </div>
1123
+ </div>`
1124
+ : ''
1125
+
1126
+ const LOGO_B64 =
1127
+ 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAPoAAAD6AG1e1JrAAAD00lEQVR4nO2WaUxcVRiG372zIEsERFkKjQWGtkJqK2VkkY7g0LhQyjAyG1smbaJtTEw0xqSpW41VtLZJW7XRYGs1GtE0GpdqYqS20FKi0GEYoaQwUEupS/WP8fdj7gFmqGwzCEGT/ji595x7c77nvO93vnMkSZJY4iZdB+A/ByDLSw4goyhLBBAVqWXtmlvEu6LIS6PAa6+aKC5IEe9arbLYlkiBjkYztuKnnsyl93tHQAmNIge+LSqAMi65cX0iF3019LTbaHCuFgATuaGCyIttgSRJHDlUwqU+F/5uJ81HNmIqWoYiB1VQoSb3p2uqdSHYJzGdCretiqfrZBX9nTYunLPj97j4oKkMS3m6SNSJAOr//wyiqjQZTuyqmWGlKYM6nSKe+XmJeFqtDHuddLdZ8XscXPK5+PbTch52ZxMXe0MAWsCIFgwUFakjJkY/lwrSlMHISC3u2mwi9BqWp0bz4WEzl/tq8XfZ6GmrZKDzQUZ7XZz6cjO2SoMIOlnuAmMy+xuLOPXVZjpaqni/ycztOQkBNWYF0Ixb8Oi2NXx9bBNZGXGif3/Zco5/dB+jal50VdPdWslgZzWjvTUc3LMBnU7DSkMcbx8wMdjlYMTnZKCzmiGPg6NvllJqSgvYNiuALAdVaPmsgiv99by8qxBDRrwYN9+dyjefPCBAfKct+E5XcnWwjsbnCsQqh712+jqseFstDHvsbK1fPVPgmS1QxlVQV3TyeAV/XnYz4HHSdKAEY24SWq2Gl54xMuJz0HvWQm97FcM9Loy5iex+2sjFH50Mdds5tLc4MN8sdURiNoiU5Cgan83He8bKH8MN/D7UwMFXitHrNex9oUBAeFsr+fVCLQ+5s6nalM5ofw2+9mpy1wYLWdh1QBIQQekyV8SyfUsOHx8t468RN/t2F7IsJRrfGSvnz1q5cr6GHY+tw2xK4zd/HW/tN80l/dwAkgohTkb5mr6pKEUkpCEjjubDZvxddn7ur2X71hzK771VKHWPKfUaJecNIE2yRJVyYhutyoonMz2O5nfKGDxn4yevk7sKUtj3YiHH3tsY0pxhAUxXqDJWxPLDd1WM9Ll4940S4fmJzyswZNw4057/9wDKpIx+fqeRXwbq6GixkJ+XxK4dRgqNyaFKHx6ALCpdsO5v25LD1aEGTnxRwZ3rk8i7I1koEmZwwlYgKzOW1/dsoLutmp1P5HJzQqQAi4jQzCc4IQOoB09pcRqPP7KOesdKEm4aO4gmzoAxdeZ1aZFC+lGv0xATrZuSDwtwb5TCTEIJrXorWrh7orRQE10H4H8J8DeZduvrfEHCKAAAAABJRU5ErkJggg=='
1128
+
1129
+ return `<!DOCTYPE html>
1130
+ <html lang="en">
1131
+ <head>
1132
+ <meta charset="utf-8">
1133
+ <meta name="viewport" content="width=device-width, initial-scale=1">
1134
+ <link rel="icon" type="image/png" href="data:image/png;base64,${LOGO_B64}" />
1135
+ <title>${escapeHtml(title)}</title>
1136
+ <style>
1137
+ * { box-sizing: border-box; margin: 0; padding: 0; }
1138
+ body {
1139
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
1140
+ background: #0B0B0F;
1141
+ color: #e2e8f0;
1142
+ padding: 24px;
1143
+ line-height: 1.6;
1144
+ }
1145
+ .container { max-width: 1200px; margin: 0 auto; }
1146
+ h1 { font-size: 24px; margin-bottom: 4px; color: #f1f5f9; }
1147
+ h2 { font-size: 18px; margin-bottom: 12px; color: #D6D876; }
1148
+ h3 { color: #f1f5f9; }
1149
+ .meta { color: #64748b; font-size: 13px; margin-bottom: 24px; }
1150
+ .section { margin-bottom: 32px; }
1151
+ .card, .evidence-card {
1152
+ background: #12121A;
1153
+ border: 1px solid #1e293b;
1154
+ border-radius: 12px;
1155
+ padding: 20px;
1156
+ margin-bottom: 16px;
1157
+ }
1158
+ .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
1159
+ @media (max-width: 640px) { .grid-2 { grid-template-columns: 1fr; } }
1160
+ .hero {
1161
+ text-align: center;
1162
+ padding: 32px 0;
1163
+ border-bottom: 1px solid #1e293b;
1164
+ margin-bottom: 32px;
1165
+ }
1166
+ .hero-logo { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 16px; }
1167
+ .hero-logo img { width: 28px; height: 28px; }
1168
+ .hero-logo span { font-size: 14px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #D6D876; }
1169
+ .hero-status { font-size: 40px; margin: 16px 0; }
1170
+ .stat { text-align: center; padding: 16px; }
1171
+ .stat-value { font-size: 28px; font-weight: 700; color: #D6D876; }
1172
+ .stat-label { font-size: 12px; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; }
1173
+ code { background: #1e293b; padding: 1px 4px; border-radius: 3px; font-size: 12px; }
1174
+ details summary { user-select: none; cursor: pointer; }
1175
+ details summary:hover { color: #D6D876; }
1176
+ .footer { text-align: center; color: #475569; font-size: 12px; padding: 24px 0; border-top: 1px solid #1e293b; margin-top: 32px; }
1177
+ .footer a { color: #D6D876; text-decoration: none; }
1178
+ .lightbox-overlay { display: none; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0,0,0,0.92); z-index: 9999; cursor: zoom-out; align-items: center; justify-content: center; }
1179
+ .lightbox-overlay.active { display: flex; }
1180
+ .lightbox-overlay img { max-width: 95vw; max-height: 95vh; border-radius: 8px; box-shadow: 0 0 60px rgba(214,216,118,0.15); }
1181
+ </style>
1182
+ </head>
1183
+ <body>
1184
+ <div class="lightbox-overlay" id="lightbox" onclick="closeLightbox()">
1185
+ <img id="lightbox-img" src="" alt="Enlarged screenshot" />
1186
+ </div>
1187
+ <script>
1188
+ function openLightbox(imgId) {
1189
+ var src = document.getElementById(imgId).src;
1190
+ document.getElementById('lightbox-img').src = src;
1191
+ document.getElementById('lightbox').classList.add('active');
1192
+ }
1193
+ function closeLightbox() {
1194
+ document.getElementById('lightbox').classList.remove('active');
1195
+ document.getElementById('lightbox-img').src = '';
1196
+ }
1197
+ document.addEventListener('keydown', function(e) { if (e.key === 'Escape') closeLightbox(); });
1198
+ </script>
1199
+
1200
+ <div class="container">
1201
+
1202
+ <div class="hero">
1203
+ <div class="hero-logo">
1204
+ <img src="data:image/png;base64,${LOGO_B64}" alt="Aperant" />
1205
+ <span>Aperant</span>
1206
+ </div>
1207
+ <h1>${escapeHtml(title)}</h1>
1208
+ <div class="meta">Generated: ${escapeHtml(runDate)}</div>
1209
+ <div class="hero-status">${statusBadge(overallVerdict)}</div>
1210
+ <div style="margin-top:12px;">
1211
+ <div style="display:flex;justify-content:center;gap:32px;">
1212
+ <div class="stat"><div class="stat-value">${v?.features?.length ?? screenshots.length}</div><div class="stat-label">Features</div></div>
1213
+ <div class="stat"><div class="stat-value">${passedTests}</div><div class="stat-label">Passed</div></div>
1214
+ <div class="stat"><div class="stat-value">${failedTests}</div><div class="stat-label">Failed</div></div>
1215
+ <div class="stat"><div class="stat-value">${blockedTests}</div><div class="stat-label">Blocked</div></div>
1216
+ ${screenshots.length > 0 ? `<div class="stat"><div class="stat-value">${screenshots.length}</div><div class="stat-label">Screenshots</div></div>` : ''}
1217
+ ${videoList.length > 0 ? `<div class="stat"><div class="stat-value">${videoList.length}</div><div class="stat-label">Videos</div></div>` : ''}
1218
+ </div>
1219
+ </div>
1220
+ </div>
1221
+
1222
+ ${quorumHtml}
1223
+ ${summaryHtml}
1224
+ ${automatedChecksHtml}
1225
+ ${coverageHtml}
1226
+ ${dimensionsHtml}
1227
+ ${featuresHtml}
1228
+ ${gapsHtml}
1229
+ ${skippedHtml}
1230
+ ${videosHtml}
1231
+ ${verdictsHtml}
1232
+ ${unattachedHtml}
1233
+
1234
+ <div class="footer">
1235
+ Generated by <a href="https://github.com/AndyMik90/Aperant">Aperant Framework</a> &bull; Proof verification report &bull; Click any screenshot to enlarge
1236
+ </div>
1237
+
1238
+ </div>
1239
+ </body>
1240
+ </html>`
1241
+ }
1242
+
1243
+ // ---------------------------------------------------------------------------
1244
+ // verification.json loader (primary) + VERIFICATION.md parser (legacy fallback)
1245
+ // ---------------------------------------------------------------------------
1246
+
1247
+ /**
1248
+ * Load verification data from a proof directory.
1249
+ * Tries verification.json first (structured, reliable), falls back to VERIFICATION.md (fragile).
1250
+ * Returns a normalized shape compatible with generateReportHtml().
1251
+ */
1252
+ function loadVerificationData(proofDir) {
1253
+ // --- Try verification.json first ---
1254
+ const jsonPath = join(proofDir, 'verification.json')
1255
+ if (existsSync(jsonPath)) {
1256
+ try {
1257
+ const raw = JSON.parse(readFileSync(jsonPath, 'utf-8'))
1258
+ process.stderr.write(` Loaded verification.json\n`)
1259
+ return mapVerificationJson(raw)
1260
+ } catch (err) {
1261
+ process.stderr.write(` Warning: could not parse verification.json: ${err.message}\n`)
1262
+ }
1263
+ }
1264
+
1265
+ // --- Fall back to VERIFICATION.md ---
1266
+ const mdPath = join(proofDir, 'VERIFICATION.md')
1267
+ if (existsSync(mdPath)) {
1268
+ try {
1269
+ const content = readFileSync(mdPath, 'utf-8')
1270
+ const result = parseVerificationMdLegacy(content)
1271
+ process.stderr.write(
1272
+ ` Parsed VERIFICATION.md (legacy): ${result.features.length} features, ${result.dimensions.length} dimensions, ${result.gaps.length} gaps\n`,
1273
+ )
1274
+ return result
1275
+ } catch (err) {
1276
+ process.stderr.write(` Warning: could not parse VERIFICATION.md: ${err.message}\n`)
1277
+ }
1278
+ }
1279
+
1280
+ return null
1281
+ }
1282
+
1283
+ /**
1284
+ * Map verification.json schema to the internal shape used by generateReportHtml().
1285
+ */
1286
+ function mapVerificationJson(json) {
1287
+ const meta = json.meta ?? {}
1288
+ const checks = json.automated_checks ?? {}
1289
+ const tests = json.tests ?? []
1290
+ const dims = json.dimensions ?? {}
1291
+ const gaps = json.gaps ?? []
1292
+ const skipped = json.skipped ?? []
1293
+ const coverage = json.coverage ?? null
1294
+
1295
+ // Map automated checks
1296
+ const automatedChecks = {
1297
+ tests: checks.tests
1298
+ ? {
1299
+ status: checks.tests.status,
1300
+ output: checks.tests.output ?? '',
1301
+ count: checks.tests.count,
1302
+ }
1303
+ : null,
1304
+ typecheck: checks.typecheck
1305
+ ? { status: checks.typecheck.status, output: checks.typecheck.output ?? '' }
1306
+ : null,
1307
+ lint: checks.lint ? { status: checks.lint.status, output: checks.lint.output ?? '' } : null,
1308
+ }
1309
+
1310
+ // Group tests into features by registry_id prefix or as a single group
1311
+ const featureGroups = new Map()
1312
+ for (const t of tests) {
1313
+ const groupKey = t.registry_id ? t.registry_id.split('-').slice(0, 1).join('-') : 'all'
1314
+ if (!featureGroups.has(groupKey)) {
1315
+ featureGroups.set(groupKey, {
1316
+ name: groupKey,
1317
+ id: groupKey,
1318
+ route: '',
1319
+ mcp: '',
1320
+ result: '',
1321
+ tests: [],
1322
+ })
1323
+ }
1324
+ featureGroups.get(groupKey).tests.push({
1325
+ name: t.name ?? t.id,
1326
+ id: t.id,
1327
+ registry_id: t.registry_id,
1328
+ precondition: t.precondition ?? '',
1329
+ action: t.action ?? '',
1330
+ expected: t.expected ?? '',
1331
+ actual: t.actual ?? '',
1332
+ evidence: t.evidence ?? null,
1333
+ ai_analysis: t.analysis ?? null,
1334
+ result: t.result ?? 'pending',
1335
+ severity: t.severity ?? null,
1336
+ notes: t.notes ?? null,
1337
+ })
1338
+ }
1339
+
1340
+ // Derive feature-level results
1341
+ const features = []
1342
+ for (const [, f] of featureGroups) {
1343
+ const results = f.tests.map((t) => t.result)
1344
+ if (results.every((r) => r === 'pass')) f.result = 'pass'
1345
+ else if (results.some((r) => r === 'fail')) f.result = 'fail'
1346
+ else if (results.some((r) => r === 'blocked')) f.result = 'partial'
1347
+ else f.result = 'partial'
1348
+ // Capitalize feature name
1349
+ f.name = f.name.charAt(0).toUpperCase() + f.name.slice(1) + ' Features'
1350
+ features.push(f)
1351
+ }
1352
+
1353
+ // Map dimensions
1354
+ const dimensions = []
1355
+ for (const [key, val] of Object.entries(dims)) {
1356
+ if (val && typeof val === 'object' && typeof val.score === 'number') {
1357
+ dimensions.push({
1358
+ dimension: key.replace(/_/g, ' '),
1359
+ score: val.score,
1360
+ rationale: val.rationale ?? '',
1361
+ })
1362
+ }
1363
+ }
1364
+
1365
+ // Map gaps
1366
+ const mappedGaps = gaps.map((g) => ({
1367
+ severity: g.severity ?? 'unknown',
1368
+ truth: g.description ?? '',
1369
+ reason: g.description ?? '',
1370
+ feature: g.registry_id ?? '',
1371
+ evidence: g.evidence ?? null,
1372
+ root_cause: g.root_cause ?? null,
1373
+ fix_plan: g.fix_plan ?? null,
1374
+ }))
1375
+
1376
+ return {
1377
+ frontmatter: {
1378
+ run_id: meta.run_id,
1379
+ date: meta.date,
1380
+ area: meta.area,
1381
+ verdict: meta.verdict,
1382
+ started: meta.started,
1383
+ duration_seconds: meta.duration_seconds,
1384
+ },
1385
+ summary: {
1386
+ outcome: meta.verdict ? `Verdict: ${meta.verdict}` : '',
1387
+ verdictText: meta.verdict ?? '',
1388
+ },
1389
+ automatedChecks,
1390
+ features,
1391
+ dimensions,
1392
+ gaps: mappedGaps,
1393
+ videoEvidence: [],
1394
+ modelVerdicts: [],
1395
+ // Extra fields from JSON schema
1396
+ skipped,
1397
+ coverage,
1398
+ }
1399
+ }
1400
+
1401
+ /** @deprecated Use loadVerificationData() — kept as legacy fallback for VERIFICATION.md */
1402
+ function parseVerificationMdLegacy(content) {
1403
+ const result = {
1404
+ frontmatter: {},
1405
+ summary: {},
1406
+ automatedChecks: { tests: null, typecheck: null, lint: null },
1407
+ features: [],
1408
+ dimensions: [],
1409
+ gaps: [],
1410
+ videoEvidence: [],
1411
+ modelVerdicts: [],
1412
+ }
1413
+
1414
+ // Parse frontmatter
1415
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/)
1416
+ if (fmMatch) {
1417
+ for (const line of fmMatch[1].split('\n')) {
1418
+ const m = line.match(/^(\w[\w_]*):\s*(.+)$/)
1419
+ if (m) {
1420
+ let val = m[2].trim().replace(/^["']|["']$/g, '')
1421
+ if (val === 'true') val = true
1422
+ else if (val === 'false') val = false
1423
+ result.frontmatter[m[1]] = val
1424
+ }
1425
+ }
1426
+ }
1427
+
1428
+ // Parse Summary table
1429
+ const summaryMatch = content.match(/## Summary\n\n([\s\S]*?)(?=\n## |\n\*\*Outcome)/)
1430
+ if (summaryMatch) {
1431
+ for (const line of summaryMatch[1].split('\n')) {
1432
+ const m = line.match(/\|\s*(.+?)\s*\|\s*(.+?)\s*\|/)
1433
+ if (m && !m[1].includes('---') && !m[1].includes('Metric')) {
1434
+ result.summary[m[1].trim()] = m[2].trim()
1435
+ }
1436
+ }
1437
+ }
1438
+
1439
+ // Parse Outcome and Verdict
1440
+ const outcomeMatch = content.match(/\*\*Outcome:\*\*\s*(.+)/)
1441
+ if (outcomeMatch) result.summary.outcome = outcomeMatch[1].trim()
1442
+ const verdictMatch = content.match(/\*\*Verdict:\*\*\s*(.+)/)
1443
+ if (verdictMatch) result.summary.verdictText = verdictMatch[1].trim()
1444
+
1445
+ // Parse Automated Checks — supports YAML (status: pass) and markdown (- **Result:** PASS)
1446
+ const checksSection = content.match(/## Automated Checks\n([\s\S]*?)(?=\n## |---\n)/)
1447
+ if (checksSection) {
1448
+ const checksText = checksSection[1]
1449
+ const parseCheck = (...names) => {
1450
+ for (const name of names) {
1451
+ // Format A: YAML (status: pass\noutput: |\n ...)
1452
+ const re = new RegExp(
1453
+ `### ${name}\\nstatus:\\s*(\\S+)[\\s\\S]*?output:\\s*\\|\\n([\\s\\S]*?)(?=\\n### |$)`,
1454
+ )
1455
+ const m = checksText.match(re)
1456
+ if (m)
1457
+ return {
1458
+ status: m[1],
1459
+ output: m[2]
1460
+ .split('\n')
1461
+ .map((l) => l.replace(/^ {2}/, ''))
1462
+ .join('\n')
1463
+ .trim(),
1464
+ }
1465
+
1466
+ const simple = checksText.match(new RegExp(`### ${name}\\nstatus:\\s*(.+)`))
1467
+ if (simple) return { status: simple[1].trim(), output: '' }
1468
+
1469
+ // Format B: Markdown bold (- **Result:** PASS\n- **Details:** ...)
1470
+ const mdBlock = checksText.match(new RegExp(`### ${name}\\n([\\s\\S]*?)(?=\\n### |$)`))
1471
+ if (mdBlock) {
1472
+ const resultMatch = mdBlock[1].match(/\*\*Result:\*\*\s*(.+)/)
1473
+ const detailsMatch = mdBlock[1].match(/\*\*(?:Details|Output):\*\*\s*(.+)/)
1474
+ if (resultMatch) {
1475
+ const status = resultMatch[1].toLowerCase().includes('pass') ? 'pass' : 'fail'
1476
+ const output = detailsMatch ? detailsMatch[1] : ''
1477
+ return { status: `${status} (${resultMatch[1].trim()})`, output }
1478
+ }
1479
+ }
1480
+ }
1481
+ return null
1482
+ }
1483
+ result.automatedChecks.tests = parseCheck('Tests')
1484
+ result.automatedChecks.typecheck = parseCheck('Type Check', 'TypeCheck', 'Typecheck')
1485
+ result.automatedChecks.lint = parseCheck('Lint')
1486
+ }
1487
+
1488
+ // Parse Features and Tests — supports two formats:
1489
+ // Format A: "## Features" → "### Feature: X" → "#### Test N: Y" (template format)
1490
+ // Format B: "## Features Tested" → "### TEST-NN: Y" (flat format)
1491
+ const featuresSection = content.match(
1492
+ /## Features(?: Tested)?\n([\s\S]*?)(?=\n## (?:QA|Gaps|Video|Score|---)|$)/,
1493
+ )
1494
+ if (featuresSection) {
1495
+ const featText = featuresSection[1]
1496
+
1497
+ // Detect format: does it have "### Feature:" blocks or "### TEST-" blocks?
1498
+ const hasFeatureBlocks = featText.includes('### Feature:')
1499
+ const hasTestBlocks = /### TEST-\d+/.test(featText)
1500
+
1501
+ if (hasFeatureBlocks) {
1502
+ // Format A: grouped features with sub-tests
1503
+ const featureBlocks = featText.split(/\n### Feature: /).filter(Boolean)
1504
+ for (const block of featureBlocks) {
1505
+ const lines = block.split('\n')
1506
+ const name = lines[0].trim()
1507
+ const feature = { name, id: '', route: '', mcp: '', result: '', tests: [] }
1508
+
1509
+ for (const line of lines.slice(1)) {
1510
+ const m = line.match(/^(id|route|mcp|result):\s*(.+)/)
1511
+ if (m) feature[m[1]] = m[2].trim()
1512
+ }
1513
+
1514
+ const testBlocks = block.split(/\n#### Test \d+: /).filter((_, i) => i > 0)
1515
+ for (const tb of testBlocks) {
1516
+ const tLines = tb.split('\n')
1517
+ const test = { name: tLines[0].trim() }
1518
+ parseTestFields(tLines, test)
1519
+ feature.tests.push(test)
1520
+ }
1521
+ result.features.push(feature)
1522
+ }
1523
+ } else if (hasTestBlocks) {
1524
+ // Format B: flat list of tests (### TEST-01: Name)
1525
+ // Group all tests into a single "All Tests" feature
1526
+ const feature = {
1527
+ name: 'Terminal Features',
1528
+ id: 'terminals',
1529
+ route: '/#/terminals',
1530
+ mcp: 'electron',
1531
+ result: '',
1532
+ tests: [],
1533
+ }
1534
+ const testBlocks = featText.split(/\n### TEST-\d+: /).filter(Boolean)
1535
+ for (const tb of testBlocks) {
1536
+ const tLines = tb.split('\n')
1537
+ const testName = tLines[0].trim()
1538
+ const test = { name: testName }
1539
+
1540
+ // Parse fields with "- **Field:** value" format (markdown bold)
1541
+ for (const line of tLines.slice(1)) {
1542
+ const boldMatch = line.match(/^- \*\*(\w[\w ]*?):\*\*\s*(.+)/)
1543
+ if (boldMatch) {
1544
+ const key = boldMatch[1].toLowerCase().replace(/ /g, '_')
1545
+ const val = boldMatch[2].trim()
1546
+ if (key === 'screenshot') test.evidence = val
1547
+ else if (key === 'analysis') test.ai_analysis = val
1548
+ else test[key] = val
1549
+ }
1550
+ }
1551
+
1552
+ // Normalize result values
1553
+ if (test.result) {
1554
+ const r = test.result.toLowerCase()
1555
+ if (r.includes('pass')) test.result = 'pass'
1556
+ else if (r.includes('fail')) test.result = 'fail'
1557
+ else if (r.includes('block')) test.result = 'blocked'
1558
+ // Extract severity from result line like "pass (minor -- ...)"
1559
+ const sevMatch =
1560
+ test.result_raw?.match(/\((blocker|major|minor|cosmetic)/) ||
1561
+ r.match(/\((blocker|major|minor|cosmetic)/)
1562
+ if (sevMatch) test.severity = sevMatch[1]
1563
+ }
1564
+
1565
+ feature.tests.push(test)
1566
+ }
1567
+ // Derive feature result
1568
+ const results = feature.tests.map((t) => t.result)
1569
+ if (results.every((r) => r === 'pass')) feature.result = 'pass'
1570
+ else if (results.some((r) => r === 'fail')) feature.result = 'fail'
1571
+ else if (results.some((r) => r === 'blocked')) feature.result = 'partial'
1572
+ else feature.result = 'partial'
1573
+
1574
+ result.features.push(feature)
1575
+ }
1576
+ }
1577
+
1578
+ // Helper: parse test fields from lines (YAML-style key: value)
1579
+ function parseTestFields(tLines, test) {
1580
+ const fields = [
1581
+ 'precondition',
1582
+ 'action',
1583
+ 'expected',
1584
+ 'actual',
1585
+ 'evidence',
1586
+ 'result',
1587
+ 'severity',
1588
+ 'notes',
1589
+ ]
1590
+ for (const line of tLines) {
1591
+ for (const f of fields) {
1592
+ const m = line.match(new RegExp(`^${f}:\\s*(.+)`))
1593
+ if (m) test[f] = m[1].trim()
1594
+ }
1595
+ const aiM = line.match(/^ai_analysis:\s*\|?\s*$/)
1596
+ if (aiM) {
1597
+ const aiLines = []
1598
+ let idx = tLines.indexOf(line) + 1
1599
+ while (idx < tLines.length && (tLines[idx].startsWith(' ') || tLines[idx].trim() === '')) {
1600
+ aiLines.push(tLines[idx].replace(/^ {2}/, ''))
1601
+ idx++
1602
+ }
1603
+ test.ai_analysis = aiLines.join('\n').trim()
1604
+ }
1605
+ const aiInline = line.match(/^ai_analysis:\s*(.+)/)
1606
+ if (aiInline && !line.includes('|')) test.ai_analysis = aiInline[1].trim()
1607
+ }
1608
+ }
1609
+
1610
+ // Parse QA Dimensions — supports table format and heading format
1611
+ const dimSection = content.match(/## QA Dimensions\n([\s\S]*?)(?=\n## |$)/)
1612
+ if (dimSection) {
1613
+ const dimText = dimSection[1]
1614
+ // Format A: table (| Completeness | 8/10 | rationale |)
1615
+ for (const line of dimText.split('\n')) {
1616
+ const m = line.match(/\|\s*(\w[\w ]*?)\s*\|\s*(\d+)\/10\s*\|\s*(.+?)\s*\|/)
1617
+ if (m) {
1618
+ result.dimensions.push({
1619
+ dimension: m[1].trim(),
1620
+ score: parseInt(m[2]),
1621
+ rationale: m[3].trim(),
1622
+ })
1623
+ }
1624
+ }
1625
+ // Format B: headings (### Completeness: 8/10\n- rationale line)
1626
+ if (result.dimensions.length === 0) {
1627
+ const headingMatches = dimText.matchAll(
1628
+ /### (\w[\w ]*?):\s*(\d+)\/10\n([\s\S]*?)(?=\n### |\n---|\n## |$)/g,
1629
+ )
1630
+ for (const hm of headingMatches) {
1631
+ const rationale = hm[3]
1632
+ .split('\n')
1633
+ .filter((l) => l.startsWith('- '))
1634
+ .map((l) => l.replace(/^- /, ''))
1635
+ .join('; ')
1636
+ .slice(0, 200)
1637
+ result.dimensions.push({ dimension: hm[1].trim(), score: parseInt(hm[2]), rationale })
1638
+ }
1639
+ }
1640
+ }
1641
+
1642
+ // Parse Gaps — supports YAML format and table format
1643
+ const gapsSection = content.match(/## Gaps\n([\s\S]*?)(?=\n## |---\n|$)/)
1644
+ if (gapsSection) {
1645
+ const gapText = gapsSection[1]
1646
+
1647
+ // Format A: YAML (- truth: "..." severity: ...)
1648
+ if (gapText.includes('truth:')) {
1649
+ const gapBlocks = gapText.split(/\n- truth:/).filter(Boolean)
1650
+ for (const gb of gapBlocks) {
1651
+ const gap = {}
1652
+ const fields = [
1653
+ 'truth',
1654
+ 'status',
1655
+ 'reason',
1656
+ 'severity',
1657
+ 'feature',
1658
+ 'test',
1659
+ 'evidence',
1660
+ 'root_cause',
1661
+ 'fix_plan',
1662
+ ]
1663
+ for (const line of ('truth:' + gb).split('\n')) {
1664
+ for (const f of fields) {
1665
+ const m = line.match(new RegExp(`^\\s*${f}:\\s*"?(.+?)"?\\s*$`))
1666
+ if (m) gap[f] = m[1]
1667
+ }
1668
+ }
1669
+ if (gap.truth || gap.reason) result.gaps.push(gap)
1670
+ }
1671
+ }
1672
+ // Format B: Table (| # | Severity | Description |)
1673
+ if (result.gaps.length === 0) {
1674
+ for (const line of gapText.split('\n')) {
1675
+ const m = line.match(/\|\s*\d+\s*\|\s*(\w+)\s*\|\s*(.+?)\s*\|/)
1676
+ if (m && !m[1].includes('---') && !m[1].includes('Severity')) {
1677
+ result.gaps.push({
1678
+ severity: m[1].toLowerCase(),
1679
+ reason: m[2].trim(),
1680
+ truth: m[2].trim(),
1681
+ })
1682
+ }
1683
+ }
1684
+ }
1685
+ }
1686
+
1687
+ // Parse Video Evidence
1688
+ const videoSection = content.match(/## Video Evidence\n([\s\S]*?)(?=\n## |$)/)
1689
+ if (videoSection) {
1690
+ for (const line of videoSection[1].split('\n')) {
1691
+ const m = line.match(/^- (.+?):\s*(.+)/)
1692
+ if (m) result.videoEvidence.push({ file: m[1].trim(), description: m[2].trim() })
1693
+ }
1694
+ }
1695
+
1696
+ return result
1697
+ }
1698
+
1699
+ // ---------------------------------------------------------------------------
1700
+ // Recursive file scanner
1701
+ // ---------------------------------------------------------------------------
1702
+
1703
+ function scanDirRecursive(dir, baseDir) {
1704
+ const imageExts = new Set(['.png', '.jpg', '.jpeg', '.webp', '.gif'])
1705
+ const videoExts = new Set(['.webm', '.mp4', '.mov'])
1706
+ const results = { images: [], videos: [], jsonFiles: [] }
1707
+ const entries = readdirSync(dir, { withFileTypes: true })
1708
+ for (const entry of entries) {
1709
+ const fullPath = join(dir, entry.name)
1710
+ const relPath = fullPath.replace(baseDir + '/', '')
1711
+ if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'seq') {
1712
+ const sub = scanDirRecursive(fullPath, baseDir)
1713
+ results.images.push(...sub.images)
1714
+ results.videos.push(...sub.videos)
1715
+ results.jsonFiles.push(...sub.jsonFiles)
1716
+ } else if (entry.isFile()) {
1717
+ const ext = extname(entry.name).toLowerCase()
1718
+ if (imageExts.has(ext) && !entry.name.endsWith('.encrypted')) {
1719
+ results.images.push({ relPath, fullPath })
1720
+ } else if (videoExts.has(ext)) {
1721
+ results.videos.push({ relPath, fullPath })
1722
+ } else if (ext === '.json') {
1723
+ results.jsonFiles.push({ relPath, fullPath })
1724
+ }
1725
+ }
1726
+ }
1727
+ return results
1728
+ }
1729
+
1730
+ // ---------------------------------------------------------------------------
1731
+ // report command
1732
+ // ---------------------------------------------------------------------------
1733
+
1734
+ async function cmdReport(args) {
1735
+ const proofDirIdx = args.indexOf('--proof-dir')
1736
+ const proofDir = proofDirIdx >= 0 ? resolve(args[proofDirIdx + 1]) : resolve('.')
1737
+
1738
+ const titleIdx = args.indexOf('--title')
1739
+ const title = titleIdx >= 0 ? args[titleIdx + 1] : `Proof Report — ${basename(proofDir)}`
1740
+
1741
+ const openReport =
1742
+ args.includes('--open') || (!args.includes('--no-open') && process.platform === 'darwin')
1743
+
1744
+ if (!existsSync(proofDir)) {
1745
+ fail(`Proof directory not found: ${proofDir}`)
1746
+ }
1747
+
1748
+ process.stderr.write(`Scanning proof directory: ${proofDir}\n`)
1749
+
1750
+ const isArchive = args.includes('--archive')
1751
+
1752
+ // --- PRIMARY DATA SOURCE: verification.json (falls back to VERIFICATION.md) ---
1753
+ const verification = loadVerificationData(proofDir)
1754
+
1755
+ // --- SCAN FILES RECURSIVELY ---
1756
+ const scanned = scanDirRecursive(proofDir, proofDir)
1757
+ process.stderr.write(
1758
+ `Found: ${scanned.images.length} images, ${scanned.videos.length} videos, ${scanned.jsonFiles.length} JSON files\n`,
1759
+ )
1760
+
1761
+ // Build screenshot evidence map (filename -> evidence data)
1762
+ const screenshotMap = new Map()
1763
+ for (const img of scanned.images) {
1764
+ const ext = extname(img.relPath).toLowerCase()
1765
+ const mimeType = ext === '.jpg' || ext === '.jpeg' ? 'image/jpeg' : 'image/png'
1766
+ let base64 = null
1767
+ if (isArchive) {
1768
+ const imgData = readFileSync(img.fullPath)
1769
+ base64 = imgData.toString('base64')
1770
+ process.stderr.write(
1771
+ ` Embedded: ${img.relPath} (${(imgData.length / 1024).toFixed(0)} KB)\n`,
1772
+ )
1773
+ } else {
1774
+ const size = statSync(img.fullPath).size
1775
+ process.stderr.write(` Linked: ${img.relPath} (${(size / 1024).toFixed(0)} KB)\n`)
1776
+ }
1777
+ screenshotMap.set(img.relPath, { filename: img.relPath, base64, mimeType })
1778
+ // Also index by basename for matching
1779
+ screenshotMap.set(basename(img.relPath), { filename: img.relPath, base64, mimeType })
1780
+ }
1781
+
1782
+ // Build video list
1783
+ const videos = []
1784
+ for (const vid of scanned.videos) {
1785
+ const ext = extname(vid.relPath).toLowerCase()
1786
+ const mimeType =
1787
+ ext === '.mp4' ? 'video/mp4' : ext === '.mov' ? 'video/quicktime' : 'video/webm'
1788
+ const size = statSync(vid.fullPath).size
1789
+ process.stderr.write(` Video: ${vid.relPath} (${(size / 1024 / 1024).toFixed(1)} MB)\n`)
1790
+ videos.push({ filename: vid.relPath, mimeType, analysis: null })
1791
+ }
1792
+
1793
+ // Load JSON analysis files
1794
+ const analysisMap = new Map()
1795
+ let quorum = null
1796
+ const verdicts = []
1797
+ let jsonDimensions = []
1798
+ for (const jf of scanned.jsonFiles) {
1799
+ const jName = basename(jf.relPath)
1800
+ let parsed
1801
+ try {
1802
+ parsed = JSON.parse(readFileSync(jf.fullPath, 'utf-8'))
1803
+ } catch {
1804
+ continue
1805
+ }
1806
+ if (jName === 'report.json') {
1807
+ if (parsed.quorum) quorum = parsed.quorum
1808
+ if (parsed.verdicts) verdicts.push(...parsed.verdicts)
1809
+ if (parsed.qaSignoff?.dimensions) jsonDimensions = parsed.qaSignoff.dimensions
1810
+ } else if (jName.endsWith('-analysis.json')) {
1811
+ const stem = jName.replace(/-analysis\.json$/, '')
1812
+ analysisMap.set(stem, parsed.analysis ?? parsed)
1813
+ } else if (parsed.verdict || parsed.result) {
1814
+ if (parsed.provider || parsed.model) verdicts.push(parsed)
1815
+ }
1816
+ }
1817
+
1818
+ // --- MERGE: VERIFICATION.md takes priority, files fill gaps ---
1819
+ const dimensions = verification?.dimensions?.length > 0 ? verification.dimensions : jsonDimensions
1820
+
1821
+ const overallVerdict =
1822
+ verification?.frontmatter?.verdict ??
1823
+ quorum?.finalVerdict ??
1824
+ (verdicts.length > 0 ? (verdicts[0].verdict ?? 'partial') : 'partial')
1825
+
1826
+ // Generate HTML
1827
+ const runDate = verification?.frontmatter?.started
1828
+ ? new Date(verification.frontmatter.started).toISOString().replace('T', ' ').slice(0, 19) +
1829
+ ' UTC'
1830
+ : new Date().toISOString().replace('T', ' ').slice(0, 19) + ' UTC'
1831
+
1832
+ const html = generateReportHtml({
1833
+ title,
1834
+ runDate,
1835
+ verification,
1836
+ screenshots: [...screenshotMap.values()].filter(
1837
+ (v, i, a) => a.findIndex((x) => x.filename === v.filename) === i,
1838
+ ),
1839
+ screenshotMap,
1840
+ videos,
1841
+ verdicts,
1842
+ quorum,
1843
+ dimensions,
1844
+ overallVerdict,
1845
+ mode: isArchive ? 'embedded' : 'relative',
1846
+ })
1847
+
1848
+ // Write report.html
1849
+ const reportHtmlPath = join(proofDir, 'report.html')
1850
+ writeFileSync(reportHtmlPath, html, 'utf-8')
1851
+ process.stderr.write(`Report written: ${reportHtmlPath}\n`)
1852
+
1853
+ // Generate report.md
1854
+ const reportMdPath = join(proofDir, 'report.md')
1855
+ const mdContent = generateReportMd({
1856
+ title,
1857
+ runDate,
1858
+ verification,
1859
+ screenshots: scanned.images,
1860
+ videos,
1861
+ verdicts,
1862
+ dimensions,
1863
+ overallVerdict,
1864
+ })
1865
+ writeFileSync(reportMdPath, mdContent, 'utf-8')
1866
+ process.stderr.write(`Markdown report written: ${reportMdPath}\n`)
1867
+
1868
+ // Open in browser
1869
+ if (openReport) {
1870
+ try {
1871
+ const openCmd = process.platform === 'darwin' ? 'open' : 'xdg-open'
1872
+ execSync(`${openCmd} "${reportHtmlPath}"`)
1873
+ process.stderr.write(`Opened in browser.\n`)
1874
+ } catch (err) {
1875
+ process.stderr.write(`Could not open browser: ${err.message}\n`)
1876
+ }
1877
+ }
1878
+
1879
+ output({
1880
+ status: 'ok',
1881
+ report: {
1882
+ html: reportHtmlPath,
1883
+ markdown: reportMdPath,
1884
+ screenshotCount: scanned.images.length,
1885
+ videoCount: scanned.videos.length,
1886
+ verdictCount: verdicts.length,
1887
+ featuresCount: verification?.features?.length ?? 0,
1888
+ gapsCount: verification?.gaps?.length ?? 0,
1889
+ mode: isArchive ? 'archive' : 'relative',
1890
+ title,
1891
+ },
1892
+ })
1893
+ }
1894
+
1895
+ function generateReportMd({
1896
+ title,
1897
+ runDate,
1898
+ verification,
1899
+ screenshots,
1900
+ videos,
1901
+ verdicts,
1902
+ dimensions,
1903
+ overallVerdict,
1904
+ }) {
1905
+ const lines = [
1906
+ `# ${title}`,
1907
+ '',
1908
+ `**Generated:** ${runDate}`,
1909
+ `**Verdict:** ${overallVerdict}`,
1910
+ '',
1911
+ ]
1912
+ if (verification) {
1913
+ const s = verification.summary
1914
+ lines.push(`## Summary`, '')
1915
+ if (s.outcome) lines.push(`**Outcome:** ${s.outcome}`, '')
1916
+ lines.push(`| Metric | Value |`, `|--------|-------|`)
1917
+ for (const [k, v] of Object.entries(s)) {
1918
+ if (k !== 'outcome' && k !== 'verdictText') lines.push(`| ${k} | ${v} |`)
1919
+ }
1920
+ lines.push('')
1921
+ if (dimensions.length > 0) {
1922
+ lines.push(
1923
+ `## QA Dimensions`,
1924
+ '',
1925
+ `| Dimension | Score | Rationale |`,
1926
+ `|-----------|-------|-----------|`,
1927
+ )
1928
+ for (const d of dimensions) lines.push(`| ${d.dimension} | ${d.score}/10 | ${d.rationale} |`)
1929
+ lines.push('')
1930
+ }
1931
+ if (verification.features.length > 0) {
1932
+ lines.push(`## Features`, '')
1933
+ for (const f of verification.features) {
1934
+ const icon =
1935
+ f.result === 'pass'
1936
+ ? '✅'
1937
+ : f.result === 'fail'
1938
+ ? '❌'
1939
+ : f.result === 'blocked'
1940
+ ? '⚠️'
1941
+ : '⏳'
1942
+ lines.push(`### ${icon} ${f.name}`, '')
1943
+ for (const t of f.tests) {
1944
+ const ti =
1945
+ t.result === 'pass'
1946
+ ? '✅'
1947
+ : t.result === 'fail'
1948
+ ? '❌'
1949
+ : t.result === 'blocked'
1950
+ ? '⚠️'
1951
+ : '⏳'
1952
+ lines.push(`- ${ti} **${t.name}**: ${t.actual || t.expected || ''}`)
1953
+ }
1954
+ lines.push('')
1955
+ }
1956
+ }
1957
+ if (verification.gaps.length > 0) {
1958
+ lines.push(`## Gaps`, '')
1959
+ for (const g of verification.gaps) lines.push(`- **[${g.severity}]** ${g.truth}: ${g.reason}`)
1960
+ lines.push('')
1961
+ }
1962
+ }
1963
+ lines.push(`---`, `*Generated by [Aperant Framework](https://github.com/AndyMik90/Aperant)*`)
1964
+ return lines.join('\n')
1965
+ }
1966
+
1967
+ async function cmdModels() {
1968
+ const apiKey = process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY
1969
+ if (!apiKey) fail('Set GEMINI_API_KEY or GOOGLE_API_KEY environment variable.')
1970
+
1971
+ const GoogleGenAI = await loadGenAI()
1972
+ const ai = new GoogleGenAI({ apiKey })
1973
+
1974
+ const models = []
1975
+ const result = await ai.models.list()
1976
+ for await (const model of result) {
1977
+ if (
1978
+ model.name.includes('flash') ||
1979
+ model.name.includes('pro') ||
1980
+ model.name.includes('3.1') ||
1981
+ model.name.includes('3-1') ||
1982
+ model.name.includes('2.5')
1983
+ ) {
1984
+ models.push({
1985
+ id: model.name.replace('models/', ''),
1986
+ displayName: model.displayName || model.name,
1987
+ })
1988
+ }
1989
+ }
1990
+
1991
+ output({
1992
+ presets: MODEL_PRESETS,
1993
+ available: models,
1994
+ })
1995
+ }
1996
+
1997
+ // ---------------------------------------------------------------------------
1998
+ // Help
1999
+ // ---------------------------------------------------------------------------
2000
+
2001
+ function printHelp() {
2002
+ const help = `${getVersion()}
2003
+
2004
+ Usage: apt-proof-video <command> [args]
2005
+
2006
+ Commands:
2007
+ analyze <video> Analyze a video file with Gemini
2008
+ capture Record frames from a CDP-enabled app (multi-session mode)
2009
+ report Generate HTML proof report from a proof directory
2010
+ models List available Gemini models
2011
+
2012
+ Flags for 'analyze':
2013
+ --model <name> Model preset or ID (default|thorough|fast or full model ID)
2014
+ default = ${MODEL_PRESETS.default}
2015
+ thorough = ${MODEL_PRESETS.thorough}
2016
+ fast = ${MODEL_PRESETS.fast}
2017
+ --spec <summary> Spec requirements to verify against
2018
+ --describe Free-form description mode (no structured JSON)
2019
+
2020
+ Flags for 'capture':
2021
+ --port <n> CDP debug port (default: 9222)
2022
+ --host <h> CDP host (default: localhost)
2023
+ --duration <s> Recording duration in seconds (default: 30)
2024
+ --fps <n> Target frames per second (default: 2)
2025
+ --output <dir> Output directory for JPEG frames (default: ./capture-frames)
2026
+ --quality <n> JPEG quality 0-100 (default: 80)
2027
+ --target <id> Specific CDP target ID (default: first page)
2028
+
2029
+ Flags for 'report':
2030
+ --proof-dir <d> Directory containing screenshots, videos, and JSON analysis files
2031
+ --title <t> Report title (default: directory name)
2032
+ --archive Embed all images as base64 (portable single file, larger)
2033
+ Default: relative paths (lightweight, must stay with proof dir)
2034
+ --open Open report in browser after generation (default on macOS)
2035
+ --no-open Skip opening in browser
2036
+
2037
+ Environment:
2038
+ GEMINI_API_KEY Google AI API key (get free at https://aistudio.google.com/apikey)
2039
+ GOOGLE_API_KEY Alternative env var name
2040
+
2041
+ All output is JSON to stdout. Progress goes to stderr.`
2042
+
2043
+ process.stdout.write(help + '\n')
2044
+ }
2045
+
2046
+ // ---------------------------------------------------------------------------
2047
+ // Dispatch
2048
+ // ---------------------------------------------------------------------------
2049
+
2050
+ const args = process.argv.slice(2)
2051
+ const command = args[0]
2052
+
2053
+ if (!command || command === '--help' || command === '-h') {
2054
+ printHelp()
2055
+ process.exit(0)
2056
+ }
2057
+
2058
+ if (command === '--version' || command === '-v') {
2059
+ process.stdout.write(getVersion() + '\n')
2060
+ process.exit(0)
2061
+ }
2062
+
2063
+ switch (command) {
2064
+ case 'analyze':
2065
+ await cmdAnalyze(args.slice(1))
2066
+ break
2067
+ case 'capture':
2068
+ await cmdCapture(args.slice(1))
2069
+ break
2070
+ case 'report':
2071
+ await cmdReport(args.slice(1))
2072
+ break
2073
+ case 'models':
2074
+ await cmdModels()
2075
+ break
2076
+ default:
2077
+ fail(`Unknown command: ${command}. Run apt-proof-video --help for usage.`)
2078
+ }