@paths.design/caws-cli 10.2.0 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/README.md +125 -374
  2. package/dist/index.js +45 -787
  3. package/dist/init/harness-detect.d.ts +18 -0
  4. package/dist/init/harness-detect.d.ts.map +1 -0
  5. package/dist/init/harness-detect.js +90 -0
  6. package/dist/init/harness-detect.js.map +1 -0
  7. package/dist/init/hook-install.d.ts +53 -0
  8. package/dist/init/hook-install.d.ts.map +1 -0
  9. package/dist/init/hook-install.js +421 -0
  10. package/dist/init/hook-install.js.map +1 -0
  11. package/dist/init/hook-packs/manifest-claude-code.d.ts +4 -0
  12. package/dist/init/hook-packs/manifest-claude-code.d.ts.map +1 -0
  13. package/dist/init/hook-packs/manifest-claude-code.js +190 -0
  14. package/dist/init/hook-packs/manifest-claude-code.js.map +1 -0
  15. package/dist/init/hook-packs/register.d.ts +19 -0
  16. package/dist/init/hook-packs/register.d.ts.map +1 -0
  17. package/dist/init/hook-packs/register.js +37 -0
  18. package/dist/init/hook-packs/register.js.map +1 -0
  19. package/dist/init/hook-packs/types.d.ts +123 -0
  20. package/dist/init/hook-packs/types.d.ts.map +1 -0
  21. package/dist/init/hook-packs/types.js +29 -0
  22. package/dist/init/hook-packs/types.js.map +1 -0
  23. package/dist/shell/binding/resolve-binding.d.ts +4 -0
  24. package/dist/shell/binding/resolve-binding.d.ts.map +1 -0
  25. package/dist/shell/binding/resolve-binding.js +228 -0
  26. package/dist/shell/binding/resolve-binding.js.map +1 -0
  27. package/dist/shell/binding/types.d.ts +42 -0
  28. package/dist/shell/binding/types.d.ts.map +1 -0
  29. package/dist/shell/binding/types.js +21 -0
  30. package/dist/shell/binding/types.js.map +1 -0
  31. package/dist/shell/commands/claim.d.ts +14 -0
  32. package/dist/shell/commands/claim.d.ts.map +1 -0
  33. package/dist/shell/commands/claim.js +197 -0
  34. package/dist/shell/commands/claim.js.map +1 -0
  35. package/dist/shell/commands/doctor.d.ts +13 -0
  36. package/dist/shell/commands/doctor.d.ts.map +1 -0
  37. package/dist/shell/commands/doctor.js +97 -0
  38. package/dist/shell/commands/doctor.js.map +1 -0
  39. package/dist/shell/commands/evidence.d.ts +28 -0
  40. package/dist/shell/commands/evidence.d.ts.map +1 -0
  41. package/dist/shell/commands/evidence.js +166 -0
  42. package/dist/shell/commands/evidence.js.map +1 -0
  43. package/dist/shell/commands/gates.d.ts +19 -0
  44. package/dist/shell/commands/gates.d.ts.map +1 -0
  45. package/dist/shell/commands/gates.js +208 -0
  46. package/dist/shell/commands/gates.js.map +1 -0
  47. package/dist/shell/commands/init.d.ts +17 -0
  48. package/dist/shell/commands/init.d.ts.map +1 -0
  49. package/dist/shell/commands/init.js +168 -0
  50. package/dist/shell/commands/init.js.map +1 -0
  51. package/dist/shell/commands/scope.d.ts +11 -0
  52. package/dist/shell/commands/scope.d.ts.map +1 -0
  53. package/dist/shell/commands/scope.js +92 -0
  54. package/dist/shell/commands/scope.js.map +1 -0
  55. package/dist/shell/commands/specs.d.ts +41 -0
  56. package/dist/shell/commands/specs.d.ts.map +1 -0
  57. package/dist/shell/commands/specs.js +264 -0
  58. package/dist/shell/commands/specs.js.map +1 -0
  59. package/dist/shell/commands/status.d.ts +15 -0
  60. package/dist/shell/commands/status.d.ts.map +1 -0
  61. package/dist/shell/commands/status.js +106 -0
  62. package/dist/shell/commands/status.js.map +1 -0
  63. package/dist/shell/commands/waiver.d.ts +38 -0
  64. package/dist/shell/commands/waiver.d.ts.map +1 -0
  65. package/dist/shell/commands/waiver.js +240 -0
  66. package/dist/shell/commands/waiver.js.map +1 -0
  67. package/dist/shell/commands/worktree.d.ts +38 -0
  68. package/dist/shell/commands/worktree.d.ts.map +1 -0
  69. package/dist/shell/commands/worktree.js +286 -0
  70. package/dist/shell/commands/worktree.js.map +1 -0
  71. package/dist/shell/gates/disposition.d.ts +23 -0
  72. package/dist/shell/gates/disposition.d.ts.map +1 -0
  73. package/dist/shell/gates/disposition.js +117 -0
  74. package/dist/shell/gates/disposition.js.map +1 -0
  75. package/dist/shell/gates/gate-result-contract.d.ts +39 -0
  76. package/dist/shell/gates/gate-result-contract.d.ts.map +1 -0
  77. package/dist/shell/gates/gate-result-contract.js +150 -0
  78. package/dist/shell/gates/gate-result-contract.js.map +1 -0
  79. package/dist/shell/gates/local-evaluators/budget-limit.d.ts +24 -0
  80. package/dist/shell/gates/local-evaluators/budget-limit.d.ts.map +1 -0
  81. package/dist/shell/gates/local-evaluators/budget-limit.js +67 -0
  82. package/dist/shell/gates/local-evaluators/budget-limit.js.map +1 -0
  83. package/dist/shell/gates/local-evaluators/diff-helpers.d.ts +25 -0
  84. package/dist/shell/gates/local-evaluators/diff-helpers.d.ts.map +1 -0
  85. package/dist/shell/gates/local-evaluators/diff-helpers.js +74 -0
  86. package/dist/shell/gates/local-evaluators/diff-helpers.js.map +1 -0
  87. package/dist/shell/gates/local-evaluators/index.d.ts +28 -0
  88. package/dist/shell/gates/local-evaluators/index.d.ts.map +1 -0
  89. package/dist/shell/gates/local-evaluators/index.js +67 -0
  90. package/dist/shell/gates/local-evaluators/index.js.map +1 -0
  91. package/dist/shell/gates/local-evaluators/scope-boundary.d.ts +23 -0
  92. package/dist/shell/gates/local-evaluators/scope-boundary.d.ts.map +1 -0
  93. package/dist/shell/gates/local-evaluators/scope-boundary.js +67 -0
  94. package/dist/shell/gates/local-evaluators/scope-boundary.js.map +1 -0
  95. package/dist/shell/gates/local-evaluators/spec-completeness.d.ts +12 -0
  96. package/dist/shell/gates/local-evaluators/spec-completeness.d.ts.map +1 -0
  97. package/dist/shell/gates/local-evaluators/spec-completeness.js +73 -0
  98. package/dist/shell/gates/local-evaluators/spec-completeness.js.map +1 -0
  99. package/dist/shell/gates/quality-gates-adapter.d.ts +55 -0
  100. package/dist/shell/gates/quality-gates-adapter.d.ts.map +1 -0
  101. package/dist/shell/gates/quality-gates-adapter.js +161 -0
  102. package/dist/shell/gates/quality-gates-adapter.js.map +1 -0
  103. package/dist/shell/gates/waiver-filter.d.ts +58 -0
  104. package/dist/shell/gates/waiver-filter.d.ts.map +1 -0
  105. package/dist/shell/gates/waiver-filter.js +119 -0
  106. package/dist/shell/gates/waiver-filter.js.map +1 -0
  107. package/dist/shell/index.d.ts +54 -0
  108. package/dist/shell/index.d.ts.map +1 -0
  109. package/dist/shell/index.js +85 -0
  110. package/dist/shell/index.js.map +1 -0
  111. package/dist/shell/register.d.ts +11 -0
  112. package/dist/shell/register.d.ts.map +1 -0
  113. package/dist/shell/register.js +464 -0
  114. package/dist/shell/register.js.map +1 -0
  115. package/dist/shell/render/claim.d.ts +22 -0
  116. package/dist/shell/render/claim.d.ts.map +1 -0
  117. package/dist/shell/render/claim.js +75 -0
  118. package/dist/shell/render/claim.js.map +1 -0
  119. package/dist/shell/render/decision.d.ts +15 -0
  120. package/dist/shell/render/decision.d.ts.map +1 -0
  121. package/dist/shell/render/decision.js +66 -0
  122. package/dist/shell/render/decision.js.map +1 -0
  123. package/dist/shell/render/diagnostic.d.ts +19 -0
  124. package/dist/shell/render/diagnostic.d.ts.map +1 -0
  125. package/dist/shell/render/diagnostic.js +76 -0
  126. package/dist/shell/render/diagnostic.js.map +1 -0
  127. package/dist/shell/render/finding.d.ts +15 -0
  128. package/dist/shell/render/finding.d.ts.map +1 -0
  129. package/dist/shell/render/finding.js +57 -0
  130. package/dist/shell/render/finding.js.map +1 -0
  131. package/dist/shell/render/gates.d.ts +3 -0
  132. package/dist/shell/render/gates.d.ts.map +1 -0
  133. package/dist/shell/render/gates.js +56 -0
  134. package/dist/shell/render/gates.js.map +1 -0
  135. package/dist/shell/render/init-hook-pack.d.ts +16 -0
  136. package/dist/shell/render/init-hook-pack.d.ts.map +1 -0
  137. package/dist/shell/render/init-hook-pack.js +206 -0
  138. package/dist/shell/render/init-hook-pack.js.map +1 -0
  139. package/dist/shell/render/init.d.ts +11 -0
  140. package/dist/shell/render/init.d.ts.map +1 -0
  141. package/dist/shell/render/init.js +32 -0
  142. package/dist/shell/render/init.js.map +1 -0
  143. package/dist/shell/render/status.d.ts +26 -0
  144. package/dist/shell/render/status.d.ts.map +1 -0
  145. package/dist/shell/render/status.js +143 -0
  146. package/dist/shell/render/status.js.map +1 -0
  147. package/dist/shell/render/waiver.d.ts +21 -0
  148. package/dist/shell/render/waiver.d.ts.map +1 -0
  149. package/dist/shell/render/waiver.js +94 -0
  150. package/dist/shell/render/waiver.js.map +1 -0
  151. package/dist/shell/rules.d.ts +37 -0
  152. package/dist/shell/rules.d.ts.map +1 -0
  153. package/dist/shell/rules.js +51 -0
  154. package/dist/shell/rules.js.map +1 -0
  155. package/dist/shell/session/actor.d.ts +14 -0
  156. package/dist/shell/session/actor.d.ts.map +1 -0
  157. package/dist/shell/session/actor.js +34 -0
  158. package/dist/shell/session/actor.js.map +1 -0
  159. package/dist/shell/session/resolve-session.d.ts +5 -0
  160. package/dist/shell/session/resolve-session.d.ts.map +1 -0
  161. package/dist/shell/session/resolve-session.js +239 -0
  162. package/dist/shell/session/resolve-session.js.map +1 -0
  163. package/dist/shell/session/types.d.ts +56 -0
  164. package/dist/shell/session/types.d.ts.map +1 -0
  165. package/dist/shell/session/types.js +15 -0
  166. package/dist/shell/session/types.js.map +1 -0
  167. package/dist/store/agents-store.d.ts +3 -0
  168. package/dist/store/agents-store.d.ts.map +1 -0
  169. package/dist/store/agents-store.js +63 -0
  170. package/dist/store/agents-store.js.map +1 -0
  171. package/dist/store/apply-patch.d.ts +16 -0
  172. package/dist/store/apply-patch.d.ts.map +1 -0
  173. package/dist/store/apply-patch.js +191 -0
  174. package/dist/store/apply-patch.js.map +1 -0
  175. package/dist/store/atomic-write.d.ts +34 -0
  176. package/dist/store/atomic-write.d.ts.map +1 -0
  177. package/dist/store/atomic-write.js +174 -0
  178. package/dist/store/atomic-write.js.map +1 -0
  179. package/dist/store/doctor-snapshot.d.ts +20 -0
  180. package/dist/store/doctor-snapshot.d.ts.map +1 -0
  181. package/dist/store/doctor-snapshot.js +176 -0
  182. package/dist/store/doctor-snapshot.js.map +1 -0
  183. package/dist/store/events-store.d.ts +33 -0
  184. package/dist/store/events-store.d.ts.map +1 -0
  185. package/dist/store/events-store.js +297 -0
  186. package/dist/store/events-store.js.map +1 -0
  187. package/dist/store/index.d.ts +21 -0
  188. package/dist/store/index.d.ts.map +1 -0
  189. package/dist/store/index.js +47 -0
  190. package/dist/store/index.js.map +1 -0
  191. package/dist/store/init-store.d.ts +21 -0
  192. package/dist/store/init-store.d.ts.map +1 -0
  193. package/dist/store/init-store.js +295 -0
  194. package/dist/store/init-store.js.map +1 -0
  195. package/dist/store/json-store.d.ts +3 -0
  196. package/dist/store/json-store.d.ts.map +1 -0
  197. package/dist/store/json-store.js +65 -0
  198. package/dist/store/json-store.js.map +1 -0
  199. package/dist/store/lifecycle-lock.d.ts +34 -0
  200. package/dist/store/lifecycle-lock.d.ts.map +1 -0
  201. package/dist/store/lifecycle-lock.js +168 -0
  202. package/dist/store/lifecycle-lock.js.map +1 -0
  203. package/dist/store/lifecycle-transaction.d.ts +79 -0
  204. package/dist/store/lifecycle-transaction.d.ts.map +1 -0
  205. package/dist/store/lifecycle-transaction.js +319 -0
  206. package/dist/store/lifecycle-transaction.js.map +1 -0
  207. package/dist/store/policy-store.d.ts +3 -0
  208. package/dist/store/policy-store.d.ts.map +1 -0
  209. package/dist/store/policy-store.js +65 -0
  210. package/dist/store/policy-store.js.map +1 -0
  211. package/dist/store/repo-root.d.ts +46 -0
  212. package/dist/store/repo-root.d.ts.map +1 -0
  213. package/dist/store/repo-root.js +145 -0
  214. package/dist/store/repo-root.js.map +1 -0
  215. package/dist/store/rules.d.ts +69 -0
  216. package/dist/store/rules.d.ts.map +1 -0
  217. package/dist/store/rules.js +95 -0
  218. package/dist/store/rules.js.map +1 -0
  219. package/dist/store/specs-store.d.ts +3 -0
  220. package/dist/store/specs-store.d.ts.map +1 -0
  221. package/dist/store/specs-store.js +131 -0
  222. package/dist/store/specs-store.js.map +1 -0
  223. package/dist/store/specs-writer.d.ts +61 -0
  224. package/dist/store/specs-writer.d.ts.map +1 -0
  225. package/dist/store/specs-writer.js +506 -0
  226. package/dist/store/specs-writer.js.map +1 -0
  227. package/dist/store/types.d.ts +84 -0
  228. package/dist/store/types.d.ts.map +1 -0
  229. package/dist/store/types.js +14 -0
  230. package/dist/store/types.js.map +1 -0
  231. package/dist/store/waivers-store.d.ts +25 -0
  232. package/dist/store/waivers-store.d.ts.map +1 -0
  233. package/dist/store/waivers-store.js +232 -0
  234. package/dist/store/waivers-store.js.map +1 -0
  235. package/dist/store/worktrees-store.d.ts +3 -0
  236. package/dist/store/worktrees-store.d.ts.map +1 -0
  237. package/dist/store/worktrees-store.js +62 -0
  238. package/dist/store/worktrees-store.js.map +1 -0
  239. package/dist/store/worktrees-writer.d.ts +77 -0
  240. package/dist/store/worktrees-writer.d.ts.map +1 -0
  241. package/dist/store/worktrees-writer.js +674 -0
  242. package/dist/store/worktrees-writer.js.map +1 -0
  243. package/dist/store/yaml-patch.d.ts +7 -0
  244. package/dist/store/yaml-patch.d.ts.map +1 -0
  245. package/dist/store/yaml-patch.js +250 -0
  246. package/dist/store/yaml-patch.js.map +1 -0
  247. package/dist/store/yaml-store.d.ts +9 -0
  248. package/dist/store/yaml-store.d.ts.map +1 -0
  249. package/dist/store/yaml-store.js +121 -0
  250. package/dist/store/yaml-store.js.map +1 -0
  251. package/package.json +15 -13
  252. package/dist/budget-derivation.js +0 -751
  253. package/dist/cicd-optimizer.js +0 -504
  254. package/dist/commands/agents.js +0 -124
  255. package/dist/commands/archive.js +0 -500
  256. package/dist/commands/burnup.js +0 -198
  257. package/dist/commands/diagnose.js +0 -525
  258. package/dist/commands/evaluate.js +0 -314
  259. package/dist/commands/gates.js +0 -149
  260. package/dist/commands/init.js +0 -857
  261. package/dist/commands/iterate.js +0 -417
  262. package/dist/commands/mode.js +0 -269
  263. package/dist/commands/parallel.js +0 -242
  264. package/dist/commands/plan.js +0 -438
  265. package/dist/commands/provenance.js +0 -1143
  266. package/dist/commands/quality-monitor.js +0 -284
  267. package/dist/commands/scope.js +0 -264
  268. package/dist/commands/session.js +0 -312
  269. package/dist/commands/sidecar.js +0 -74
  270. package/dist/commands/specs.js +0 -1656
  271. package/dist/commands/status.js +0 -1172
  272. package/dist/commands/templates.js +0 -237
  273. package/dist/commands/tool.js +0 -136
  274. package/dist/commands/tutorial.js +0 -480
  275. package/dist/commands/validate.js +0 -357
  276. package/dist/commands/verify-acs.js +0 -443
  277. package/dist/commands/waivers.js +0 -599
  278. package/dist/commands/workflow.js +0 -243
  279. package/dist/commands/worktree.js +0 -502
  280. package/dist/config/lite-scope.js +0 -158
  281. package/dist/config/modes.js +0 -347
  282. package/dist/constants/spec-types.js +0 -65
  283. package/dist/gates/budget-limit.js +0 -121
  284. package/dist/gates/feedback.js +0 -260
  285. package/dist/gates/format.js +0 -179
  286. package/dist/gates/god-object.js +0 -117
  287. package/dist/gates/pipeline.js +0 -167
  288. package/dist/gates/scope-boundary.js +0 -112
  289. package/dist/gates/spec-completeness.js +0 -109
  290. package/dist/gates/todo-detection.js +0 -205
  291. package/dist/generators/jest-config-generator.js +0 -242
  292. package/dist/generators/working-spec.js +0 -237
  293. package/dist/minimal-cli.js +0 -88
  294. package/dist/parallel/parallel-manager.js +0 -433
  295. package/dist/policy/PolicyManager.js +0 -470
  296. package/dist/scaffold/claude-hooks.js +0 -443
  297. package/dist/scaffold/cursor-hooks.js +0 -177
  298. package/dist/scaffold/git-hooks.js +0 -928
  299. package/dist/scaffold/index.js +0 -794
  300. package/dist/session/session-manager.js +0 -653
  301. package/dist/sidecars/index.js +0 -33
  302. package/dist/sidecars/listeners.js +0 -40
  303. package/dist/sidecars/provenance-summary.js +0 -238
  304. package/dist/sidecars/quality-gaps.js +0 -258
  305. package/dist/sidecars/schema.js +0 -149
  306. package/dist/sidecars/spec-drift.js +0 -151
  307. package/dist/sidecars/waiver-draft.js +0 -176
  308. package/dist/spec/SpecFileManager.js +0 -419
  309. package/dist/templates/.caws/schemas/policy.schema.json +0 -117
  310. package/dist/templates/.caws/schemas/scope.schema.json +0 -52
  311. package/dist/templates/.caws/schemas/waivers.schema.json +0 -106
  312. package/dist/templates/.caws/schemas/working-spec.schema.json +0 -340
  313. package/dist/templates/.caws/schemas/worktrees.schema.json +0 -38
  314. package/dist/templates/.caws/templates/working-spec.template.yml +0 -80
  315. package/dist/templates/.caws/tools/README.md +0 -18
  316. package/dist/templates/.caws/tools/scope-guard.js +0 -203
  317. package/dist/templates/.caws/tools-allow.json +0 -331
  318. package/dist/templates/.caws/waivers.yml +0 -19
  319. package/dist/templates/.claude/README.md +0 -190
  320. package/dist/templates/.claude/hooks/audit.sh +0 -121
  321. package/dist/templates/.claude/hooks/block-dangerous.sh +0 -203
  322. package/dist/templates/.claude/hooks/classify_command.py +0 -592
  323. package/dist/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
  324. package/dist/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
  325. package/dist/templates/.claude/hooks/naming-check.sh +0 -100
  326. package/dist/templates/.claude/hooks/protected-paths.sh +0 -39
  327. package/dist/templates/.claude/hooks/quality-check.sh +0 -81
  328. package/dist/templates/.claude/hooks/scan-secrets.sh +0 -85
  329. package/dist/templates/.claude/hooks/scope-guard.sh +0 -381
  330. package/dist/templates/.claude/hooks/session-caws-status.sh +0 -117
  331. package/dist/templates/.claude/hooks/session-log.sh +0 -634
  332. package/dist/templates/.claude/hooks/simplification-guard.sh +0 -92
  333. package/dist/templates/.claude/hooks/stop-worktree-check.sh +0 -46
  334. package/dist/templates/.claude/hooks/test_classify_command.py +0 -370
  335. package/dist/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
  336. package/dist/templates/.claude/hooks/validate-spec.sh +0 -76
  337. package/dist/templates/.claude/hooks/worktree-guard.sh +0 -220
  338. package/dist/templates/.claude/hooks/worktree-write-guard.sh +0 -190
  339. package/dist/templates/.claude/rules/git-safety.md +0 -26
  340. package/dist/templates/.claude/rules/worktree-isolation.md +0 -101
  341. package/dist/templates/.claude/settings.json +0 -141
  342. package/dist/templates/.cursor/README.md +0 -299
  343. package/dist/templates/.cursor/hooks/audit.sh +0 -55
  344. package/dist/templates/.cursor/hooks/block-dangerous.sh +0 -84
  345. package/dist/templates/.cursor/hooks/caws-quality-check.sh +0 -52
  346. package/dist/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
  347. package/dist/templates/.cursor/hooks/format.sh +0 -38
  348. package/dist/templates/.cursor/hooks/naming-check.sh +0 -64
  349. package/dist/templates/.cursor/hooks/scan-secrets.sh +0 -51
  350. package/dist/templates/.cursor/hooks/scope-guard.sh +0 -52
  351. package/dist/templates/.cursor/hooks/session-log.sh +0 -924
  352. package/dist/templates/.cursor/hooks/validate-spec.sh +0 -83
  353. package/dist/templates/.cursor/hooks.json +0 -76
  354. package/dist/templates/.cursor/rules/00-claims-verification.mdc +0 -144
  355. package/dist/templates/.cursor/rules/01-working-style.mdc +0 -50
  356. package/dist/templates/.cursor/rules/02-quality-gates.mdc +0 -368
  357. package/dist/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
  358. package/dist/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
  359. package/dist/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
  360. package/dist/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
  361. package/dist/templates/.cursor/rules/07-process-ops.mdc +0 -20
  362. package/dist/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
  363. package/dist/templates/.cursor/rules/09-docstrings.mdc +0 -89
  364. package/dist/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
  365. package/dist/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
  366. package/dist/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
  367. package/dist/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
  368. package/dist/templates/.cursor/rules/README.md +0 -148
  369. package/dist/templates/.github/copilot-instructions.md +0 -82
  370. package/dist/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
  371. package/dist/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
  372. package/dist/templates/.junie/guidelines.md +0 -73
  373. package/dist/templates/.vscode/launch.json +0 -17
  374. package/dist/templates/.vscode/settings.json +0 -95
  375. package/dist/templates/.windsurf/rules/caws-quality-standards.md +0 -54
  376. package/dist/templates/.windsurf/workflows/caws-guided-development.md +0 -92
  377. package/dist/templates/CLAUDE.md +0 -196
  378. package/dist/templates/COMMIT_CONVENTIONS.md +0 -86
  379. package/dist/templates/OIDC_SETUP.md +0 -300
  380. package/dist/templates/agents.md +0 -171
  381. package/dist/templates/codemod/README.md +0 -1
  382. package/dist/templates/codemod/test.js +0 -93
  383. package/dist/templates/docs/README.md +0 -151
  384. package/dist/templates/scripts/new_feature.sh +0 -80
  385. package/dist/templates/scripts/quality-gates/check-god-objects.js +0 -146
  386. package/dist/templates/scripts/quality-gates/run-quality-gates.js +0 -50
  387. package/dist/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
  388. package/dist/test-analysis.js +0 -786
  389. package/dist/tool-interface.js +0 -314
  390. package/dist/tool-loader.js +0 -303
  391. package/dist/tool-validator.js +0 -393
  392. package/dist/utils/agent-display.js +0 -210
  393. package/dist/utils/agent-session.js +0 -344
  394. package/dist/utils/async-utils.js +0 -188
  395. package/dist/utils/command-wrapper.js +0 -200
  396. package/dist/utils/event-log.js +0 -584
  397. package/dist/utils/event-renderer.js +0 -521
  398. package/dist/utils/finalization.js +0 -230
  399. package/dist/utils/git-lock.js +0 -119
  400. package/dist/utils/gitignore-updater.js +0 -158
  401. package/dist/utils/ide-detection.js +0 -133
  402. package/dist/utils/lifecycle-events.js +0 -94
  403. package/dist/utils/project-analysis.js +0 -367
  404. package/dist/utils/promise-utils.js +0 -72
  405. package/dist/utils/quality-gates-errors.js +0 -520
  406. package/dist/utils/quality-gates-utils.js +0 -387
  407. package/dist/utils/schema-validator.js +0 -50
  408. package/dist/utils/spec-resolver.js +0 -711
  409. package/dist/utils/typescript-detector.js +0 -369
  410. package/dist/utils/working-state.js +0 -530
  411. package/dist/utils/yaml-validation.js +0 -156
  412. package/dist/validation/spec-validation.js +0 -924
  413. package/dist/waivers-manager.js +0 -732
  414. package/dist/worktree/worktree-manager.js +0 -1735
  415. package/templates/.caws/schemas/policy.schema.json +0 -117
  416. package/templates/.caws/schemas/scope.schema.json +0 -52
  417. package/templates/.caws/schemas/waivers.schema.json +0 -106
  418. package/templates/.caws/schemas/working-spec.schema.json +0 -340
  419. package/templates/.caws/schemas/worktrees.schema.json +0 -38
  420. package/templates/.caws/templates/working-spec.template.yml +0 -80
  421. package/templates/.caws/tools/README.md +0 -18
  422. package/templates/.caws/tools/scope-guard.js +0 -203
  423. package/templates/.caws/tools-allow.json +0 -331
  424. package/templates/.caws/waivers.yml +0 -19
  425. package/templates/.claude/README.md +0 -190
  426. package/templates/.claude/hooks/audit.sh +0 -121
  427. package/templates/.claude/hooks/block-dangerous.sh +0 -203
  428. package/templates/.claude/hooks/classify_command.py +0 -592
  429. package/templates/.claude/hooks/doc-frontmatter-check.sh +0 -173
  430. package/templates/.claude/hooks/lite-sprawl-check.sh +0 -145
  431. package/templates/.claude/hooks/naming-check.sh +0 -100
  432. package/templates/.claude/hooks/protected-paths.sh +0 -39
  433. package/templates/.claude/hooks/quality-check.sh +0 -81
  434. package/templates/.claude/hooks/scan-secrets.sh +0 -85
  435. package/templates/.claude/hooks/scope-guard.sh +0 -381
  436. package/templates/.claude/hooks/session-caws-status.sh +0 -117
  437. package/templates/.claude/hooks/session-log.sh +0 -634
  438. package/templates/.claude/hooks/simplification-guard.sh +0 -92
  439. package/templates/.claude/hooks/stop-worktree-check.sh +0 -46
  440. package/templates/.claude/hooks/test_classify_command.py +0 -370
  441. package/templates/.claude/hooks/test_wrapper_smoke.sh +0 -96
  442. package/templates/.claude/hooks/validate-spec.sh +0 -76
  443. package/templates/.claude/hooks/worktree-guard.sh +0 -220
  444. package/templates/.claude/hooks/worktree-write-guard.sh +0 -190
  445. package/templates/.claude/rules/git-safety.md +0 -26
  446. package/templates/.claude/rules/worktree-isolation.md +0 -101
  447. package/templates/.claude/settings.json +0 -141
  448. package/templates/.cursor/README.md +0 -299
  449. package/templates/.cursor/hooks/audit.sh +0 -55
  450. package/templates/.cursor/hooks/block-dangerous.sh +0 -84
  451. package/templates/.cursor/hooks/caws-quality-check.sh +0 -52
  452. package/templates/.cursor/hooks/caws-scope-guard.sh +0 -130
  453. package/templates/.cursor/hooks/format.sh +0 -38
  454. package/templates/.cursor/hooks/naming-check.sh +0 -64
  455. package/templates/.cursor/hooks/scan-secrets.sh +0 -51
  456. package/templates/.cursor/hooks/scope-guard.sh +0 -52
  457. package/templates/.cursor/hooks/session-log.sh +0 -924
  458. package/templates/.cursor/hooks/validate-spec.sh +0 -83
  459. package/templates/.cursor/hooks.json +0 -76
  460. package/templates/.cursor/rules/00-claims-verification.mdc +0 -144
  461. package/templates/.cursor/rules/01-working-style.mdc +0 -50
  462. package/templates/.cursor/rules/02-quality-gates.mdc +0 -368
  463. package/templates/.cursor/rules/03-naming-and-refactor.mdc +0 -33
  464. package/templates/.cursor/rules/04-logging-language-style.mdc +0 -23
  465. package/templates/.cursor/rules/05-safe-defaults-guards.mdc +0 -23
  466. package/templates/.cursor/rules/06-typescript-conventions.mdc +0 -36
  467. package/templates/.cursor/rules/07-process-ops.mdc +0 -20
  468. package/templates/.cursor/rules/08-solid-and-architecture.mdc +0 -16
  469. package/templates/.cursor/rules/09-docstrings.mdc +0 -89
  470. package/templates/.cursor/rules/10-documentation-quality-standards.mdc +0 -385
  471. package/templates/.cursor/rules/11-scope-management-waivers.mdc +0 -381
  472. package/templates/.cursor/rules/12-implementation-completeness.mdc +0 -516
  473. package/templates/.cursor/rules/13-language-agnostic-standards.mdc +0 -578
  474. package/templates/.cursor/rules/README.md +0 -148
  475. package/templates/.github/copilot-instructions.md +0 -82
  476. package/templates/.idea/runConfigurations/CAWS_Evaluate.xml +0 -5
  477. package/templates/.idea/runConfigurations/CAWS_Validate.xml +0 -5
  478. package/templates/.junie/guidelines.md +0 -73
  479. package/templates/.vscode/launch.json +0 -17
  480. package/templates/.vscode/settings.json +0 -95
  481. package/templates/.windsurf/rules/caws-quality-standards.md +0 -54
  482. package/templates/.windsurf/workflows/caws-guided-development.md +0 -92
  483. package/templates/CLAUDE.md +0 -196
  484. package/templates/COMMIT_CONVENTIONS.md +0 -86
  485. package/templates/OIDC_SETUP.md +0 -300
  486. package/templates/agents.md +0 -171
  487. package/templates/codemod/README.md +0 -1
  488. package/templates/codemod/test.js +0 -93
  489. package/templates/docs/README.md +0 -151
  490. package/templates/scripts/new_feature.sh +0 -80
  491. package/templates/scripts/quality-gates/check-god-objects.js +0 -146
  492. package/templates/scripts/quality-gates/run-quality-gates.js +0 -50
  493. package/templates/scripts/v3/analysis/todo_analyzer.py +0 -1997
@@ -0,0 +1,18 @@
1
+ import type { AgentSurface } from './hook-packs/types';
2
+ export type HarnessDetectionResult = {
3
+ readonly kind: 'single';
4
+ readonly surface: Exclude<AgentSurface, 'none'>;
5
+ } | {
6
+ readonly kind: 'ambiguous';
7
+ readonly candidates: readonly Exclude<AgentSurface, 'none'>[];
8
+ } | {
9
+ readonly kind: 'none';
10
+ };
11
+ /**
12
+ * Detect the harness(es) in use in `repoRoot`.
13
+ *
14
+ * Returns `single` when exactly one harness has signals, `ambiguous`
15
+ * when multiple do, and `none` when no harness signal is present.
16
+ */
17
+ export declare function detectAgentHarness(repoRoot: string): HarnessDetectionResult;
18
+ //# sourceMappingURL=harness-detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-detect.d.ts","sourceRoot":"","sources":["../../src/init/harness-detect.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;CAAE,GAC5E;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;CAC/D,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AA6B9B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CAc3E"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ // Detect which agent harness is in use for a given repo, so `caws init`
3
+ // can suggest or auto-select an appropriate hook pack.
4
+ //
5
+ // Detection is intentionally simple: filesystem signals only, no
6
+ // process introspection. False negatives (the user has the harness but
7
+ // the signal file isn't present yet) are expected and acceptable — the
8
+ // caller can always pass --agent-surface explicitly.
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.detectAgentHarness = detectAgentHarness;
44
+ const fs = __importStar(require("fs"));
45
+ const path = __importStar(require("path"));
46
+ const SIGNALS = [
47
+ {
48
+ surface: 'claude-code',
49
+ markers: ['.claude', '.claude/settings.json', '.claude/hooks'],
50
+ },
51
+ {
52
+ surface: 'cursor',
53
+ markers: ['.cursor', '.cursor/settings.json', '.cursor/rules'],
54
+ },
55
+ {
56
+ surface: 'windsurf',
57
+ markers: ['.windsurf', '.windsurf/settings.json'],
58
+ },
59
+ ];
60
+ function anyMarkerExists(repoRoot, markers) {
61
+ for (const m of markers) {
62
+ if (fs.existsSync(path.join(repoRoot, m)))
63
+ return true;
64
+ }
65
+ return false;
66
+ }
67
+ /**
68
+ * Detect the harness(es) in use in `repoRoot`.
69
+ *
70
+ * Returns `single` when exactly one harness has signals, `ambiguous`
71
+ * when multiple do, and `none` when no harness signal is present.
72
+ */
73
+ function detectAgentHarness(repoRoot) {
74
+ const present = [];
75
+ for (const signal of SIGNALS) {
76
+ if (anyMarkerExists(repoRoot, signal.markers)) {
77
+ present.push(signal.surface);
78
+ }
79
+ }
80
+ if (present.length === 0)
81
+ return { kind: 'none' };
82
+ if (present.length === 1) {
83
+ const surface = present[0];
84
+ if (surface === undefined)
85
+ return { kind: 'none' };
86
+ return { kind: 'single', surface };
87
+ }
88
+ return { kind: 'ambiguous', candidates: present };
89
+ }
90
+ //# sourceMappingURL=harness-detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-detect.js","sourceRoot":"","sources":["../../src/init/harness-detect.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,uDAAuD;AACvD,EAAE;AACF,iEAAiE;AACjE,uEAAuE;AACvE,uEAAuE;AACvE,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDrD,gDAcC;AA5DD,uCAAyB;AACzB,2CAA6B;AAiB7B,MAAM,OAAO,GAA6B;IACxC;QACE,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,CAAC,SAAS,EAAE,uBAAuB,EAAE,eAAe,CAAC;KAC/D;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,CAAC,SAAS,EAAE,uBAAuB,EAAE,eAAe,CAAC;KAC/D;IACD;QACE,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAClD;CACF,CAAC;AAEF,SAAS,eAAe,CAAC,QAAgB,EAAE,OAA0B;IACnE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAoC,EAAE,CAAC;IACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { HookPackInstallResult, HookPackV1, ManagedHeader } from './hook-packs/types';
2
+ /** Parse a managed header from file content. Returns null when not
3
+ * present. Tolerant of leading shebang and of `<!--`/`-->`-style
4
+ * comment wrappers (for Markdown). */
5
+ export declare function parseManagedHeader(content: string): ManagedHeader | null;
6
+ export interface HookPackInstallOptions {
7
+ readonly repoRoot: string;
8
+ /** When true, allow overwriting unmanaged or drifted files. */
9
+ readonly overwrite?: boolean;
10
+ /** When true, leave drifted/unmanaged files in place and report. */
11
+ readonly adopt?: boolean;
12
+ /** Override the pack template root (used by tests). */
13
+ readonly packRootOverride?: string;
14
+ }
15
+ /** Install a pack into repoRoot. Pure with respect to its inputs except
16
+ * for the filesystem writes it performs. Returns a typed result the
17
+ * caller renders. */
18
+ export declare function installHookPack(pack: HookPackV1, options: HookPackInstallOptions): HookPackInstallResult;
19
+ /** Result of inspecting `.claude/settings.json` for hook wiring. */
20
+ export type SettingsWiringStatus =
21
+ /** settings.json is absent. Caller should print the canonical snippet
22
+ * and instruct the user to create the file. */
23
+ {
24
+ readonly kind: 'absent';
25
+ }
26
+ /** settings.json exists and references all four canonical dispatch
27
+ * entrypoints. No action needed. */
28
+ | {
29
+ readonly kind: 'wired';
30
+ }
31
+ /** settings.json exists but is missing one or more canonical entries.
32
+ * Caller should print which entries are missing and the snippet to add. */
33
+ | {
34
+ readonly kind: 'partial';
35
+ readonly missing: readonly string[];
36
+ }
37
+ /** settings.json exists but could not be parsed as JSON. Caller should
38
+ * surface the parse error and refuse to suggest changes. */
39
+ | {
40
+ readonly kind: 'invalid';
41
+ readonly error: string;
42
+ };
43
+ /**
44
+ * Inspect `.claude/settings.json` and report whether the canonical
45
+ * Claude Code hook wiring is present. Install is non-destructive on
46
+ * settings.json — this function just surfaces the state so the CLI can
47
+ * tell the user exactly what to add.
48
+ */
49
+ export declare function inspectClaudeSettings(repoRoot: string): SettingsWiringStatus;
50
+ /** Canonical settings.json wiring snippet, returned as a JSON string
51
+ * ready to print or copy. Mirrors the snippet in CLAUDE.md. */
52
+ export declare const CANONICAL_SETTINGS_SNIPPET: string;
53
+ //# sourceMappingURL=hook-install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-install.d.ts","sourceRoot":"","sources":["../../src/init/hook-install.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAGV,qBAAqB,EACrB,UAAU,EAEV,aAAa,EACd,MAAM,oBAAoB,CAAC;AAgC5B;;uCAEuC;AACvC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAmExE;AAoED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAsFD;;sBAEsB;AACtB,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAyCvB;AAED,oEAAoE;AACpE,MAAM,MAAM,oBAAoB;AAC9B;gDACgD;AAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE;AAC7B;qCACqC;GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE;AAC5B;4EAC4E;GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AACnE;6DAC6D;GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,GACf,oBAAoB,CAoDtB;AAED;gEACgE;AAChE,eAAO,MAAM,0BAA0B,QAyDtC,CAAC"}
@@ -0,0 +1,421 @@
1
+ "use strict";
2
+ // Hook-pack install logic. Managed-marker aware; non-destructive by default.
3
+ //
4
+ // Install policy:
5
+ // - absent → create the file from the pack's bundled template.
6
+ // - managed_clean → no-op (same pack/version, content matches).
7
+ // - managed_old_version → update (replace with new bundled content).
8
+ // - managed_drift → refuse unless adopt/overwrite is passed.
9
+ // - unmanaged_collision → refuse unless adopt/overwrite is passed.
10
+ //
11
+ // settings.json is intentionally NOT in the pack manifest. If a user
12
+ // already has .claude/settings.json, this module surfaces the canonical
13
+ // wiring snippet for them to merge by hand. If they have no settings.json,
14
+ // it emits the snippet to put into a new file.
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.CANONICAL_SETTINGS_SNIPPET = void 0;
50
+ exports.parseManagedHeader = parseManagedHeader;
51
+ exports.installHookPack = installHookPack;
52
+ exports.inspectClaudeSettings = inspectClaudeSettings;
53
+ const fs = __importStar(require("fs"));
54
+ const path = __importStar(require("path"));
55
+ /** Location of the pack templates relative to the caws-cli package root.
56
+ * Resolved at runtime from __dirname so it works both in dev (running
57
+ * ts-node against src/) and from the dist build. */
58
+ function packTemplateRoot(packId) {
59
+ // The templates live alongside the built dist/ at the package root.
60
+ // From dist/, walk up to the package root and down into templates.
61
+ // From src/init/hook-install.ts ts-node mode, the same walk works.
62
+ // We tolerate both: src/init -> package root is two levels up;
63
+ // dist -> package root is one level up.
64
+ const here = __dirname;
65
+ const candidates = [
66
+ path.resolve(here, '..', '..', 'templates', 'hook-packs', packId),
67
+ path.resolve(here, '..', 'templates', 'hook-packs', packId),
68
+ path.resolve(here, '..', '..', '..', 'templates', 'hook-packs', packId),
69
+ ];
70
+ for (const c of candidates) {
71
+ if (fs.existsSync(c))
72
+ return c;
73
+ }
74
+ // Fall through to the first candidate even if missing; downstream will
75
+ // emit a clean "template file missing" diagnostic.
76
+ return candidates[0] ?? '';
77
+ }
78
+ // ─── Managed header parsing ──────────────────────────────────────────────
79
+ /** Match a managed-header block at the top of a file. The block consists
80
+ * of consecutive `# CAWS-...` lines after an optional shebang or
81
+ * HTML/JSDoc comment opener. */
82
+ const HEADER_MARKER = 'CAWS-MANAGED-HOOK';
83
+ /** Parse a managed header from file content. Returns null when not
84
+ * present. Tolerant of leading shebang and of `<!--`/`-->`-style
85
+ * comment wrappers (for Markdown). */
86
+ function parseManagedHeader(content) {
87
+ // Search the first ~30 lines for the marker. This is large enough to
88
+ // tolerate shebang + HTML comment wrapper but small enough to stay
89
+ // fast on big files.
90
+ const lines = content.split('\n').slice(0, 30);
91
+ let inBlock = false;
92
+ let hookPack = '';
93
+ let hookPackVersion = 0;
94
+ let cawsMinMajor = 0;
95
+ let lineageRefs = [];
96
+ let sawMarker = false;
97
+ for (const raw of lines) {
98
+ const line = raw.trim().replace(/^<!--\s*/, '').replace(/\s*-->\s*$/, '');
99
+ if (!line)
100
+ continue;
101
+ if (line.includes(HEADER_MARKER)) {
102
+ sawMarker = true;
103
+ inBlock = true;
104
+ continue;
105
+ }
106
+ if (!inBlock)
107
+ continue;
108
+ // The block consists of `# key: value` lines. First non-comment
109
+ // line ends the block.
110
+ if (!line.startsWith('#'))
111
+ break;
112
+ const stripped = line.replace(/^#\s*/, '');
113
+ const colon = stripped.indexOf(':');
114
+ if (colon < 0)
115
+ continue;
116
+ const key = stripped.slice(0, colon).trim();
117
+ const value = stripped.slice(colon + 1).trim();
118
+ switch (key) {
119
+ case 'hook_pack':
120
+ hookPack = value;
121
+ break;
122
+ case 'hook_pack_version': {
123
+ const n = Number.parseInt(value, 10);
124
+ if (!Number.isNaN(n))
125
+ hookPackVersion = n;
126
+ break;
127
+ }
128
+ case 'caws_min_major': {
129
+ const n = Number.parseInt(value, 10);
130
+ if (!Number.isNaN(n))
131
+ cawsMinMajor = n;
132
+ break;
133
+ }
134
+ case 'lineage_refs': {
135
+ lineageRefs = value
136
+ .split(',')
137
+ .map((s) => s.trim())
138
+ .filter((s) => s.length > 0)
139
+ .map((s) => Number.parseInt(s, 10))
140
+ .filter((n) => !Number.isNaN(n));
141
+ break;
142
+ }
143
+ // 'do_not_edit_directly' is informational; ignored here.
144
+ }
145
+ }
146
+ if (!sawMarker || !hookPack || hookPackVersion <= 0)
147
+ return null;
148
+ return {
149
+ hookPack,
150
+ hookPackVersion,
151
+ cawsMinMajor,
152
+ lineageRefs,
153
+ };
154
+ }
155
+ // ─── Per-file state evaluation ───────────────────────────────────────────
156
+ function readBytes(p) {
157
+ try {
158
+ return fs.readFileSync(p);
159
+ }
160
+ catch {
161
+ return null;
162
+ }
163
+ }
164
+ function bytesEqual(a, b) {
165
+ if (a.length !== b.length)
166
+ return false;
167
+ return a.compare(b) === 0;
168
+ }
169
+ function evaluateFileState(repoRoot, packRoot, packId, packVersion, file) {
170
+ const destAbs = path.join(repoRoot, file.destPath);
171
+ const localBytes = readBytes(destAbs);
172
+ if (localBytes === null)
173
+ return { kind: 'absent' };
174
+ if (!file.managed) {
175
+ // Non-managed pack file (none currently exist, but we model the case).
176
+ // Treat any existing content as a collision; let the policy decide.
177
+ return { kind: 'unmanaged_collision' };
178
+ }
179
+ const localContent = localBytes.toString('utf8');
180
+ const header = parseManagedHeader(localContent);
181
+ if (!header)
182
+ return { kind: 'unmanaged_collision' };
183
+ if (header.hookPack !== packId) {
184
+ // A managed file from a different pack at our destPath. Treat as
185
+ // unmanaged collision so the user sees a clear refusal.
186
+ return { kind: 'unmanaged_collision' };
187
+ }
188
+ const sourceAbs = path.join(packRoot, file.sourcePath);
189
+ const sourceBytes = readBytes(sourceAbs);
190
+ if (sourceBytes === null) {
191
+ // Source template missing — this is a bug in the install, not a
192
+ // collision. Surface as drift so we don't silently no-op.
193
+ return { kind: 'managed_drift', header };
194
+ }
195
+ if (header.hookPackVersion < packVersion) {
196
+ return {
197
+ kind: 'managed_old_version',
198
+ header,
199
+ currentVersion: header.hookPackVersion,
200
+ };
201
+ }
202
+ if (bytesEqual(localBytes, sourceBytes)) {
203
+ return { kind: 'managed_clean', header };
204
+ }
205
+ return { kind: 'managed_drift', header };
206
+ }
207
+ function ensureDir(target) {
208
+ fs.mkdirSync(target, { recursive: true });
209
+ }
210
+ function writeFile(destAbs, sourceAbs, executable) {
211
+ ensureDir(path.dirname(destAbs));
212
+ fs.copyFileSync(sourceAbs, destAbs);
213
+ if (executable) {
214
+ try {
215
+ fs.chmodSync(destAbs, 0o755);
216
+ }
217
+ catch {
218
+ // chmod can fail on some filesystems (Windows). Non-fatal.
219
+ }
220
+ }
221
+ }
222
+ function applyOne(ctx, file) {
223
+ const destAbs = path.join(ctx.repoRoot, file.destPath);
224
+ const sourceAbs = path.join(ctx.packRoot, file.sourcePath);
225
+ const state = evaluateFileState(ctx.repoRoot, ctx.packRoot, ctx.pack.id, ctx.pack.packVersion, file);
226
+ switch (state.kind) {
227
+ case 'absent':
228
+ writeFile(destAbs, sourceAbs, file.executable);
229
+ return { destPath: file.destPath, action: 'created' };
230
+ case 'managed_clean':
231
+ return { destPath: file.destPath, action: 'unchanged' };
232
+ case 'managed_old_version':
233
+ writeFile(destAbs, sourceAbs, file.executable);
234
+ return { destPath: file.destPath, action: 'updated' };
235
+ case 'managed_drift':
236
+ if (ctx.overwrite) {
237
+ writeFile(destAbs, sourceAbs, file.executable);
238
+ return { destPath: file.destPath, action: 'updated' };
239
+ }
240
+ if (ctx.adopt) {
241
+ return { destPath: file.destPath, action: 'unchanged' };
242
+ }
243
+ return {
244
+ destPath: file.destPath,
245
+ action: 'refused',
246
+ refusalReason: 'managed_drift',
247
+ };
248
+ case 'unmanaged_collision':
249
+ if (ctx.overwrite) {
250
+ writeFile(destAbs, sourceAbs, file.executable);
251
+ return { destPath: file.destPath, action: 'updated' };
252
+ }
253
+ if (ctx.adopt) {
254
+ return { destPath: file.destPath, action: 'unchanged' };
255
+ }
256
+ return {
257
+ destPath: file.destPath,
258
+ action: 'refused',
259
+ refusalReason: 'unmanaged_collision',
260
+ };
261
+ }
262
+ }
263
+ /** Install a pack into repoRoot. Pure with respect to its inputs except
264
+ * for the filesystem writes it performs. Returns a typed result the
265
+ * caller renders. */
266
+ function installHookPack(pack, options) {
267
+ const ctx = {
268
+ repoRoot: options.repoRoot,
269
+ packRoot: options.packRootOverride ?? packTemplateRoot(pack.id),
270
+ pack,
271
+ overwrite: options.overwrite === true,
272
+ adopt: options.adopt === true,
273
+ };
274
+ const actions = [];
275
+ for (const file of pack.installedFiles) {
276
+ actions.push(applyOne(ctx, file));
277
+ }
278
+ // Determine outcome.
279
+ const anyRefused = actions.some((a) => a.action === 'refused');
280
+ const allUnchanged = actions.every((a) => a.action === 'unchanged');
281
+ let outcome;
282
+ if (anyRefused) {
283
+ // Even a single refusal blocks the outcome from being clean —
284
+ // 'installed' on partial success would imply more than was done.
285
+ // Caller reads action[].refusalReason to decide diagnostic.
286
+ outcome = 'installed';
287
+ }
288
+ else if (allUnchanged) {
289
+ outcome = 'already_installed';
290
+ }
291
+ else if (actions.some((a) => a.action === 'updated') &&
292
+ !actions.some((a) => a.action === 'created')) {
293
+ outcome = 'updated';
294
+ }
295
+ else {
296
+ outcome = 'installed';
297
+ }
298
+ return {
299
+ outcome,
300
+ pack,
301
+ actions,
302
+ activation: pack.activation,
303
+ };
304
+ }
305
+ /**
306
+ * Inspect `.claude/settings.json` and report whether the canonical
307
+ * Claude Code hook wiring is present. Install is non-destructive on
308
+ * settings.json — this function just surfaces the state so the CLI can
309
+ * tell the user exactly what to add.
310
+ */
311
+ function inspectClaudeSettings(repoRoot) {
312
+ const settingsPath = path.join(repoRoot, '.claude', 'settings.json');
313
+ if (!fs.existsSync(settingsPath)) {
314
+ return { kind: 'absent' };
315
+ }
316
+ let parsed;
317
+ try {
318
+ parsed = JSON.parse(fs.readFileSync(settingsPath, 'utf8'));
319
+ }
320
+ catch (e) {
321
+ return { kind: 'invalid', error: e.message };
322
+ }
323
+ if (!parsed || typeof parsed !== 'object') {
324
+ return { kind: 'invalid', error: 'settings.json root is not an object' };
325
+ }
326
+ const hooks = parsed.hooks;
327
+ if (!hooks || typeof hooks !== 'object') {
328
+ return {
329
+ kind: 'partial',
330
+ missing: ['PreToolUse', 'PostToolUse', 'SessionStart', 'Stop'],
331
+ };
332
+ }
333
+ const required = ['PreToolUse', 'PostToolUse', 'SessionStart', 'Stop'];
334
+ const missing = [];
335
+ for (const key of required) {
336
+ const entry = hooks[key];
337
+ if (!Array.isArray(entry) || entry.length === 0) {
338
+ missing.push(key);
339
+ continue;
340
+ }
341
+ // A canonical entry has a hook whose command path references
342
+ // .claude/hooks/dispatch/<key snake_case>.sh
343
+ const snake = key
344
+ .replace(/([a-z])([A-Z])/g, '$1_$2')
345
+ .toLowerCase();
346
+ const expectedTail = `.claude/hooks/dispatch/${snake}.sh`;
347
+ let found = false;
348
+ for (const block of entry) {
349
+ const hookList = block.hooks;
350
+ if (!Array.isArray(hookList))
351
+ continue;
352
+ for (const h of hookList) {
353
+ const cmd = h.command;
354
+ if (typeof cmd === 'string' && cmd.includes(expectedTail)) {
355
+ found = true;
356
+ break;
357
+ }
358
+ }
359
+ if (found)
360
+ break;
361
+ }
362
+ if (!found)
363
+ missing.push(key);
364
+ }
365
+ if (missing.length === 0)
366
+ return { kind: 'wired' };
367
+ return { kind: 'partial', missing };
368
+ }
369
+ /** Canonical settings.json wiring snippet, returned as a JSON string
370
+ * ready to print or copy. Mirrors the snippet in CLAUDE.md. */
371
+ exports.CANONICAL_SETTINGS_SNIPPET = JSON.stringify({
372
+ hooks: {
373
+ PreToolUse: [
374
+ {
375
+ matcher: 'Bash|Read|Write|Edit|Glob|Grep|NotebookEdit',
376
+ hooks: [
377
+ {
378
+ type: 'command',
379
+ command: '"$CLAUDE_PROJECT_DIR"/.claude/hooks/dispatch/pre_tool_use.sh',
380
+ timeout: 45,
381
+ },
382
+ ],
383
+ },
384
+ ],
385
+ PostToolUse: [
386
+ {
387
+ matcher: 'Write|Edit|Bash|ExitPlanMode',
388
+ hooks: [
389
+ {
390
+ type: 'command',
391
+ command: '"$CLAUDE_PROJECT_DIR"/.claude/hooks/dispatch/post_tool_use.sh',
392
+ timeout: 60,
393
+ },
394
+ ],
395
+ },
396
+ ],
397
+ SessionStart: [
398
+ {
399
+ hooks: [
400
+ {
401
+ type: 'command',
402
+ command: '"$CLAUDE_PROJECT_DIR"/.claude/hooks/dispatch/session_start.sh',
403
+ timeout: 30,
404
+ },
405
+ ],
406
+ },
407
+ ],
408
+ Stop: [
409
+ {
410
+ hooks: [
411
+ {
412
+ type: 'command',
413
+ command: '"$CLAUDE_PROJECT_DIR"/.claude/hooks/dispatch/stop.sh',
414
+ timeout: 30,
415
+ },
416
+ ],
417
+ },
418
+ ],
419
+ },
420
+ }, null, 2);
421
+ //# sourceMappingURL=hook-install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-install.js","sourceRoot":"","sources":["../../src/init/hook-install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { HookPackV1 } from './types';
2
+ export declare const CLAUDE_CODE_PACK_VERSION = 2;
3
+ export declare const CLAUDE_CODE_PACK: HookPackV1;
4
+ //# sourceMappingURL=manifest-claude-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-claude-code.d.ts","sourceRoot":"","sources":["../../../src/init/hook-packs/manifest-claude-code.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAO1C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,eAAO,MAAM,gBAAgB,EAAE,UA2K9B,CAAC"}