@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
@@ -1,480 +0,0 @@
1
- /**
2
- * @fileoverview CAWS Tutorial Command
3
- * Interactive guided learning for AI agents and developers
4
- * @author @darianrosebrook
5
- */
6
-
7
- const chalk = require('chalk');
8
- const { safeAsync, outputResult } = require('../error-handler');
9
-
10
- /**
11
- * Tutorial steps for different user types
12
- */
13
- const TUTORIALS = {
14
- agent: {
15
- name: 'AI Agent Onboarding',
16
- description: 'Complete guide for AI agents working with CAWS',
17
- icon: '',
18
- steps: [
19
- {
20
- id: 'welcome',
21
- title: 'Welcome to CAWS',
22
- content: `
23
- Welcome to CAWS (Coding Agent Workflow System)!
24
-
25
- CAWS helps AI agents and developers collaborate effectively by providing:
26
- - Structured specifications and requirements
27
- - Automated validation and quality gates
28
- - Progress tracking and status monitoring
29
- - Change management and archival
30
- - Multi-tier complexity modes
31
-
32
- This tutorial will guide you through the essential CAWS workflow.
33
- `,
34
- action: 'Press Enter to continue...',
35
- },
36
- {
37
- id: 'first-steps',
38
- title: 'Your First Steps',
39
- content: `
40
- Every CAWS session should start with validation:
41
-
42
- 1. Always validate first: \`caws validate\`
43
- 2. Check current status: \`caws status --visual\`
44
- 3. Get guidance: \`caws iterate --current-state "Starting implementation"\`
45
-
46
- These commands ensure you're working with validated specifications and understand the current project state.
47
- `,
48
- action: 'Try: caws validate',
49
- verify: 'validation',
50
- },
51
- {
52
- id: 'modes',
53
- title: 'Understanding Modes',
54
- content: `
55
- CAWS adapts to your project needs with three complexity tiers:
56
-
57
- **Simple Mode** (70% coverage, 30% mutation)
58
- - Perfect for small projects and prototyping
59
- - Minimal commands and features
60
- - Quick setup and iteration
61
-
62
- **Standard Mode** (80% coverage, 50% mutation)
63
- - Balanced approach for most projects
64
- - Quality gates and provenance tracking
65
- - Change management and archival
66
-
67
- **Enterprise Mode** (90% coverage, 70% mutation)
68
- - Full compliance and audit trails
69
- - Advanced monitoring and reporting
70
- - Maximum quality assurance
71
-
72
- Check your current mode: \`caws mode current\`
73
- Switch modes: \`caws mode set --interactive\`
74
- `,
75
- action: 'Try: caws mode current',
76
- verify: 'mode_check',
77
- },
78
- {
79
- id: 'specs-system',
80
- title: 'Multi-Spec Organization',
81
- content: `
82
- CAWS uses a multi-spec system for better organization:
83
-
84
- **Individual spec files** instead of monolithic specs
85
- **Type-based organization** (feature, fix, refactor, etc.)
86
- **Visual progress tracking** across all specs
87
- **Concurrent development** support
88
-
89
- Commands:
90
- - \`caws specs list\` - View all specs
91
- - \`caws specs create <id>\` - Create new spec
92
- - \`caws specs show <id>\` - View spec details
93
- - \`caws specs update <id>\` - Update spec status
94
-
95
- Each spec contains:
96
- - Acceptance criteria with progress tracking
97
- - Risk tier and complexity mode
98
- - Contract definitions and validation
99
- `,
100
- action: 'Try: caws specs list',
101
- verify: 'specs_list',
102
- },
103
- {
104
- id: 'workflow',
105
- title: 'Development Workflow',
106
- content: `
107
- Follow this proven TDD workflow:
108
-
109
- 1. **Plan**: Create/update specs with acceptance criteria
110
- 2. **Validate**: Ensure specs are valid and complete
111
- 3. **Test First**: Write failing tests for each criterion
112
- 4. **Implement**: Make tests pass incrementally
113
- 5. **Track Progress**: Update acceptance criteria status
114
- 6. **Quality Gates**: Run validation and quality checks
115
- 7. **Archive**: Complete and archive finished work
116
-
117
- Key commands:
118
- - \`caws validate --spec-id FEAT-001\` - Validate current work
119
- - \`caws status --spec-id FEAT-001\` - Check progress
120
- - \`caws evaluate --spec-id FEAT-001\` - Quality/readiness scoring
121
- - \`caws burnup --spec-id FEAT-001\` - Budget burn-up report
122
- - \`caws archive <change-id>\` - Complete work
123
- `,
124
- action: 'Try: caws status --visual',
125
- verify: 'status_check',
126
- },
127
- {
128
- id: 'quality-gates',
129
- title: 'Quality Assurance',
130
- content: `
131
- CAWS enforces quality through multiple gates:
132
-
133
- **Validation Gates**
134
- - Spec format and completeness
135
- - Contract compliance
136
- - Risk tier requirements
137
-
138
- **Testing Gates**
139
- - Test coverage thresholds
140
- - Mutation testing scores
141
- - Integration test passing
142
-
143
- **Progress Gates**
144
- - Acceptance criteria completion
145
- - Spec status validation
146
- - Change budget compliance
147
-
148
- **Quick Checks**
149
- - \`caws validate\` - Spec validation
150
- - \`caws diagnose\` - Health checks (if in standard/enterprise mode)
151
- - \`caws evaluate\` - Quality evaluation
152
- `,
153
- action: 'Try: caws validate',
154
- verify: 'quality_check',
155
- },
156
- {
157
- id: 'common-patterns',
158
- title: 'Common Patterns & Best Practices',
159
- content: `
160
- **Avoid These**:
161
- - Don't start implementation before validation
162
- - Don't create duplicate files (enhanced-*, new-*)
163
- - Don't exceed change budgets
164
- - Don't skip quality gates
165
-
166
- **Do These**:
167
- - Always validate first: \`caws validate\`
168
- - Use multi-spec system for organization
169
- - Write tests before implementation (TDD)
170
- - Update progress: \`caws progress update\`
171
- - Archive completed work: \`caws archive\`
172
-
173
- **Get Help**:
174
- - \`caws --help\` - All commands
175
- - \`caws workflow guidance\` - Workflow-specific help
176
- - \`docs/agents/full-guide.md\` - Complete documentation
177
- `,
178
- action: 'Try: caws --help',
179
- verify: 'help_check',
180
- },
181
- {
182
- id: 'completion',
183
- title: 'Tutorial Complete!',
184
- content: `
185
- Congratulations! You've completed the CAWS agent tutorial.
186
-
187
- **Key Takeaways**:
188
- - CAWS provides structure and validation for AI-human collaboration
189
- - Start every session with validation and status checks
190
- - Use the multi-spec system for better organization
191
- - Follow TDD practices with comprehensive testing
192
- - Respect quality gates and change budgets
193
- - Archive completed work for clean project history
194
-
195
- **Next Steps**:
196
- 1. Explore the multi-spec system: \`caws specs create my-feature\`
197
- 2. Practice the workflow with a small feature
198
- 3. Use mode switching to match your project needs
199
- 4. Read the full documentation for advanced features
200
-
201
- Remember: CAWS exists to make AI-human collaboration reliable and high-quality. Follow the rules, validate often, and deliver excellent results!
202
-
203
- Pro tip: Use \`caws status --visual\` regularly to stay oriented
204
- `,
205
- action: 'Tutorial complete! Try: caws specs create my-feature',
206
- },
207
- ],
208
- },
209
-
210
- developer: {
211
- name: 'Developer Quick Start',
212
- description: 'Fast track for developers new to CAWS',
213
- icon: '',
214
- steps: [
215
- {
216
- id: 'welcome-dev',
217
- title: 'Welcome Developer!',
218
- content: `
219
- Welcome to CAWS! This quick start will get you up and running fast.
220
-
221
- CAWS helps development teams by providing:
222
- - Clear specification management
223
- - Structured change workflows
224
- - Progress visibility for stakeholders
225
- - Quality gates and validation
226
- - Better AI-human collaboration
227
-
228
- Let's get you started!
229
- `,
230
- action: 'Press Enter to continue...',
231
- },
232
- {
233
- id: 'setup',
234
- title: 'Project Setup',
235
- content: `
236
- First, ensure CAWS is properly initialized:
237
-
238
- 1. Initialize CAWS: \`caws init .\`
239
- 2. Create a feature spec: \`caws specs create FEAT-001 --type feature --title "My Feature"\`
240
- 3. Set up git hooks: \`caws hooks install\`
241
- 4. Initialize provenance: \`caws provenance init\`
242
-
243
- For existing projects, use: \`caws scaffold\`
244
-
245
- All commands support \`--spec-id\` to target a specific feature spec:
246
- - \`caws validate --spec-id FEAT-001\`
247
- - \`caws status --spec-id FEAT-001\`
248
- - \`caws evaluate --spec-id FEAT-001\`
249
- `,
250
- action: 'Try: caws specs list',
251
- verify: 'mode_setup',
252
- },
253
- {
254
- id: 'create-spec',
255
- title: 'Create Your First Spec',
256
- content: `
257
- Create a spec for your feature or fix:
258
-
259
- \`caws specs create user-login --type feature --title "User Login System"\`
260
-
261
- This creates:
262
- - A new spec file in \`.caws/specs/user-login.yaml\`
263
- - Basic structure with acceptance criteria template
264
- - Automatic registration in the specs registry
265
-
266
- View all specs: \`caws specs list\`
267
- View spec details: \`caws specs show user-login\`
268
- `,
269
- action: 'Try: caws specs list',
270
- verify: 'first_spec',
271
- },
272
- {
273
- id: 'define-criteria',
274
- title: 'Define Acceptance Criteria',
275
- content: `
276
- Edit your spec file to add acceptance criteria:
277
-
278
- \`\`\`yaml
279
- # .caws/specs/user-login.yaml
280
- acceptance_criteria:
281
- - id: A1
282
- title: User can login with valid credentials
283
- description: Users should be able to authenticate using email/password
284
- completed: false
285
- - id: A2
286
- title: Invalid credentials show error
287
- description: Invalid login attempts should display appropriate error messages
288
- completed: false
289
- \`\`\`
290
-
291
- Each criterion should be:
292
- - Testable and verifiable
293
- - Specific and measurable
294
- - Focused on user value
295
- `,
296
- action: 'Edit your spec file and add acceptance criteria',
297
- verify: 'criteria_defined',
298
- },
299
- {
300
- id: 'workflow',
301
- title: 'Development Workflow',
302
- content: `
303
- Follow this workflow for each acceptance criterion:
304
-
305
- 1. **Write failing tests first** (TDD approach)
306
- 2. **Implement the minimum** to make tests pass
307
- 3. **Update progress**: \`caws progress update --criterion-id A1 --status completed\`
308
- 4. **Validate**: \`caws validate\`
309
- 5. **Run quality gates** (if in standard/enterprise mode)
310
-
311
- Repeat for each criterion until the spec is complete.
312
-
313
- Track progress: \`caws status --visual\`
314
- Get guidance: \`caws iterate --current-state "Working on A1"\`
315
- `,
316
- action: 'Try: caws progress update --criterion-id A1 --status in_progress',
317
- verify: 'workflow_started',
318
- },
319
- {
320
- id: 'completion',
321
- title: 'Complete and Archive',
322
- content: `
323
- When all acceptance criteria are completed:
324
-
325
- 1. **Final validation**: \`caws validate\`
326
- 2. **Quality checks**: \`caws diagnose\` (if enabled)
327
- 3. **Archive the work**: \`caws archive user-login\`
328
-
329
- This:
330
- - Validates all criteria are met
331
- - Moves completed work to archive
332
- - Updates provenance chain
333
- - Provides completion summary
334
-
335
- View archived work: Check \`.caws/archive/\` directory
336
- `,
337
- action: 'Complete your spec and try: caws archive <spec-id>',
338
- verify: 'archival_complete',
339
- },
340
- ],
341
- },
342
- };
343
-
344
- /**
345
- * Display tutorial step
346
- * @param {Object} step - Tutorial step
347
- * @param {number} stepNumber - Step number (1-based)
348
- * @param {number} totalSteps - Total number of steps
349
- */
350
- function displayTutorialStep(step, stepNumber, totalSteps) {
351
- console.log(chalk.bold.cyan(`\nStep ${stepNumber}/${totalSteps}: ${step.title}`));
352
- console.log(chalk.cyan('='.repeat(60)));
353
-
354
- // Display content with proper formatting
355
- const lines = step.content.trim().split('\n');
356
- lines.forEach((line) => {
357
- if (
358
- line.startsWith('-') ||
359
- line.startsWith('') ||
360
- line.startsWith('') ||
361
- line.startsWith('') ||
362
- line.startsWith('')
363
- ) {
364
- console.log(chalk.gray(line));
365
- } else if (line.includes('`')) {
366
- console.log(chalk.cyan(line));
367
- } else {
368
- console.log(line);
369
- }
370
- });
371
-
372
- if (step.action) {
373
- console.log(chalk.yellow(`\n${step.action}`));
374
- }
375
-
376
- console.log('');
377
- }
378
-
379
- /**
380
- * Interactive tutorial session
381
- * @param {string} tutorialType - Type of tutorial (agent, developer)
382
- * @returns {Promise<void>}
383
- */
384
- async function runInteractiveTutorial(tutorialType) {
385
- const tutorial = TUTORIALS[tutorialType];
386
- if (!tutorial) {
387
- throw new Error(
388
- `Unknown tutorial type: ${tutorialType}. Available: ${Object.keys(TUTORIALS).join(', ')}`
389
- );
390
- }
391
-
392
- const readline = require('readline');
393
- const rl = readline.createInterface({
394
- input: process.stdin,
395
- output: process.stdout,
396
- });
397
-
398
- console.log(chalk.bold.green(`\nStarting ${tutorial.icon} ${tutorial.name}`));
399
- console.log(chalk.green(tutorial.description));
400
- console.log(chalk.gray(`Total steps: ${tutorial.steps.length}\n`));
401
-
402
- for (let i = 0; i < tutorial.steps.length; i++) {
403
- const step = tutorial.steps[i];
404
- const stepNumber = i + 1;
405
-
406
- displayTutorialStep(step, stepNumber, tutorial.steps.length);
407
-
408
- // Wait for user input (except for the last step)
409
- if (i < tutorial.steps.length - 1) {
410
- await new Promise((resolve) => {
411
- console.log(chalk.blue('Press Enter to continue...'));
412
- rl.on('line', () => {
413
- resolve();
414
- });
415
- });
416
- }
417
- }
418
-
419
- rl.close();
420
-
421
- // Final message
422
- console.log(chalk.bold.green(`\n${tutorial.icon} ${tutorial.name} Complete!`));
423
- console.log(chalk.green('You can always run this tutorial again with:'));
424
- console.log(chalk.cyan(`caws tutorial ${tutorialType}`));
425
- console.log('');
426
- }
427
-
428
- /**
429
- * Tutorial command handler
430
- * @param {string} tutorialType - Type of tutorial to run
431
- * @param {Object} options - Command options
432
- */
433
- async function tutorialCommand(tutorialType, _options = {}) {
434
- return safeAsync(
435
- async () => {
436
- if (!tutorialType) {
437
- // Show available tutorials
438
- console.log(chalk.bold.cyan('\nAvailable CAWS Tutorials'));
439
- console.log(chalk.cyan('==================================================\n'));
440
-
441
- Object.entries(TUTORIALS).forEach(([type, tutorial]) => {
442
- console.log(`${tutorial.icon} ${chalk.green(type.padEnd(12))} - ${tutorial.description}`);
443
- });
444
-
445
- console.log(chalk.gray('\nUsage: caws tutorial <type>'));
446
- console.log(chalk.gray('Example: caws tutorial agent'));
447
-
448
- return outputResult({
449
- command: 'tutorial',
450
- action: 'list',
451
- available: Object.keys(TUTORIALS),
452
- });
453
- }
454
-
455
- if (!TUTORIALS[tutorialType]) {
456
- throw new Error(
457
- `Unknown tutorial: ${tutorialType}. Available: ${Object.keys(TUTORIALS).join(', ')}`
458
- );
459
- }
460
-
461
- // Run the interactive tutorial
462
- await runInteractiveTutorial(tutorialType);
463
-
464
- return outputResult({
465
- command: 'tutorial',
466
- tutorial: tutorialType,
467
- steps: TUTORIALS[tutorialType].steps.length,
468
- completed: true,
469
- });
470
- },
471
- `tutorial ${tutorialType}`,
472
- true
473
- );
474
- }
475
-
476
- module.exports = {
477
- tutorialCommand,
478
- TUTORIALS,
479
- runInteractiveTutorial,
480
- };