@dewtech/dare-cli 3.1.0 → 3.3.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 (345) hide show
  1. package/README.md +5 -1
  2. package/dist/__tests__/dag-runner/ralph-loop.test.js +107 -45
  3. package/dist/__tests__/dag-runner/ralph-loop.test.js.map +1 -1
  4. package/dist/__tests__/dag-runner/state-store.test.d.ts +2 -0
  5. package/dist/__tests__/dag-runner/state-store.test.d.ts.map +1 -0
  6. package/dist/__tests__/dag-runner/state-store.test.js +74 -0
  7. package/dist/__tests__/dag-runner/state-store.test.js.map +1 -0
  8. package/dist/__tests__/ensure-skills.test.d.ts +2 -0
  9. package/dist/__tests__/ensure-skills.test.d.ts.map +1 -0
  10. package/dist/__tests__/ensure-skills.test.js +67 -0
  11. package/dist/__tests__/ensure-skills.test.js.map +1 -0
  12. package/dist/__tests__/ide-command-parity.test.d.ts +2 -0
  13. package/dist/__tests__/ide-command-parity.test.d.ts.map +1 -0
  14. package/dist/__tests__/ide-command-parity.test.js +59 -0
  15. package/dist/__tests__/ide-command-parity.test.js.map +1 -0
  16. package/dist/__tests__/project-generator.test.d.ts +2 -0
  17. package/dist/__tests__/project-generator.test.d.ts.map +1 -0
  18. package/dist/__tests__/project-generator.test.js +56 -0
  19. package/dist/__tests__/project-generator.test.js.map +1 -0
  20. package/dist/__tests__/reverse-collection.test.d.ts +2 -0
  21. package/dist/__tests__/reverse-collection.test.d.ts.map +1 -0
  22. package/dist/__tests__/reverse-collection.test.js +87 -0
  23. package/dist/__tests__/reverse-collection.test.js.map +1 -0
  24. package/dist/bin/dare.js +2 -0
  25. package/dist/bin/dare.js.map +1 -1
  26. package/dist/commands/__tests__/bench.spec.d.ts +2 -0
  27. package/dist/commands/__tests__/bench.spec.d.ts.map +1 -0
  28. package/dist/commands/__tests__/bench.spec.js +106 -0
  29. package/dist/commands/__tests__/bench.spec.js.map +1 -0
  30. package/dist/commands/__tests__/execute.best-of.spec.d.ts +2 -0
  31. package/dist/commands/__tests__/execute.best-of.spec.d.ts.map +1 -0
  32. package/dist/commands/__tests__/execute.best-of.spec.js +24 -0
  33. package/dist/commands/__tests__/execute.best-of.spec.js.map +1 -0
  34. package/dist/commands/__tests__/execute.telemetry.spec.d.ts +2 -0
  35. package/dist/commands/__tests__/execute.telemetry.spec.d.ts.map +1 -0
  36. package/dist/commands/__tests__/execute.telemetry.spec.js +93 -0
  37. package/dist/commands/__tests__/execute.telemetry.spec.js.map +1 -0
  38. package/dist/commands/__tests__/execute.verify.spec.d.ts +2 -0
  39. package/dist/commands/__tests__/execute.verify.spec.d.ts.map +1 -0
  40. package/dist/commands/__tests__/execute.verify.spec.js +150 -0
  41. package/dist/commands/__tests__/execute.verify.spec.js.map +1 -0
  42. package/dist/commands/bench.d.ts +10 -0
  43. package/dist/commands/bench.d.ts.map +1 -0
  44. package/dist/commands/bench.js +64 -0
  45. package/dist/commands/bench.js.map +1 -0
  46. package/dist/commands/dna.d.ts.map +1 -1
  47. package/dist/commands/dna.js +4 -0
  48. package/dist/commands/dna.js.map +1 -1
  49. package/dist/commands/execute-verification.d.ts +51 -0
  50. package/dist/commands/execute-verification.d.ts.map +1 -0
  51. package/dist/commands/execute-verification.js +201 -0
  52. package/dist/commands/execute-verification.js.map +1 -0
  53. package/dist/commands/execute.d.ts.map +1 -1
  54. package/dist/commands/execute.js +139 -2
  55. package/dist/commands/execute.js.map +1 -1
  56. package/dist/commands/migrate.d.ts.map +1 -1
  57. package/dist/commands/migrate.js +4 -0
  58. package/dist/commands/migrate.js.map +1 -1
  59. package/dist/commands/reverse.d.ts.map +1 -1
  60. package/dist/commands/reverse.js +27 -8
  61. package/dist/commands/reverse.js.map +1 -1
  62. package/dist/dag-runner/ralph-loop.d.ts +9 -9
  63. package/dist/dag-runner/ralph-loop.d.ts.map +1 -1
  64. package/dist/dag-runner/ralph-loop.js +89 -113
  65. package/dist/dag-runner/ralph-loop.js.map +1 -1
  66. package/dist/dag-runner/state-store.d.ts +14 -1
  67. package/dist/dag-runner/state-store.d.ts.map +1 -1
  68. package/dist/dag-runner/state-store.js +39 -8
  69. package/dist/dag-runner/state-store.js.map +1 -1
  70. package/dist/exec/npm-invoke.d.ts +8 -0
  71. package/dist/exec/npm-invoke.d.ts.map +1 -0
  72. package/dist/exec/npm-invoke.js +45 -0
  73. package/dist/exec/npm-invoke.js.map +1 -0
  74. package/dist/exec/safe-spawn.d.ts +21 -0
  75. package/dist/exec/safe-spawn.d.ts.map +1 -0
  76. package/dist/exec/safe-spawn.js +108 -0
  77. package/dist/exec/safe-spawn.js.map +1 -0
  78. package/dist/graphrag/types.d.ts +2 -2
  79. package/dist/graphrag/types.d.ts.map +1 -1
  80. package/dist/stacks/dna-emitter.d.ts.map +1 -1
  81. package/dist/stacks/dna-emitter.js +1 -10
  82. package/dist/stacks/dna-emitter.js.map +1 -1
  83. package/dist/utils/UpdateApplier.d.ts.map +1 -1
  84. package/dist/utils/UpdateApplier.js +8 -0
  85. package/dist/utils/UpdateApplier.js.map +1 -1
  86. package/dist/utils/datamodel.d.ts.map +1 -1
  87. package/dist/utils/datamodel.js +97 -20
  88. package/dist/utils/datamodel.js.map +1 -1
  89. package/dist/utils/logger.d.ts +7 -0
  90. package/dist/utils/logger.d.ts.map +1 -0
  91. package/dist/utils/logger.js +23 -0
  92. package/dist/utils/logger.js.map +1 -0
  93. package/dist/utils/path-safety.d.ts +22 -0
  94. package/dist/utils/path-safety.d.ts.map +1 -0
  95. package/dist/utils/path-safety.js +83 -0
  96. package/dist/utils/path-safety.js.map +1 -0
  97. package/dist/utils/project-generator.d.ts +21 -0
  98. package/dist/utils/project-generator.d.ts.map +1 -1
  99. package/dist/utils/project-generator.js +71 -0
  100. package/dist/utils/project-generator.js.map +1 -1
  101. package/dist/utils/reverse-facts.d.ts +3 -2
  102. package/dist/utils/reverse-facts.d.ts.map +1 -1
  103. package/dist/utils/reverse-facts.js +89 -8
  104. package/dist/utils/reverse-facts.js.map +1 -1
  105. package/dist/utils/stack-bootstrap.js +2 -2
  106. package/dist/utils/stack-bootstrap.js.map +1 -1
  107. package/dist/verification/__tests__/anti-tamper.test.d.ts +2 -0
  108. package/dist/verification/__tests__/anti-tamper.test.d.ts.map +1 -0
  109. package/dist/verification/__tests__/anti-tamper.test.js +73 -0
  110. package/dist/verification/__tests__/anti-tamper.test.js.map +1 -0
  111. package/dist/verification/__tests__/bench-fixtures.test.d.ts +2 -0
  112. package/dist/verification/__tests__/bench-fixtures.test.d.ts.map +1 -0
  113. package/dist/verification/__tests__/bench-fixtures.test.js +35 -0
  114. package/dist/verification/__tests__/bench-fixtures.test.js.map +1 -0
  115. package/dist/verification/__tests__/bench-harness.test.d.ts +2 -0
  116. package/dist/verification/__tests__/bench-harness.test.d.ts.map +1 -0
  117. package/dist/verification/__tests__/bench-harness.test.js +75 -0
  118. package/dist/verification/__tests__/bench-harness.test.js.map +1 -0
  119. package/dist/verification/__tests__/bench-report.test.d.ts +2 -0
  120. package/dist/verification/__tests__/bench-report.test.d.ts.map +1 -0
  121. package/dist/verification/__tests__/bench-report.test.js +73 -0
  122. package/dist/verification/__tests__/bench-report.test.js.map +1 -0
  123. package/dist/verification/__tests__/best-of-n-runner.test.d.ts +2 -0
  124. package/dist/verification/__tests__/best-of-n-runner.test.d.ts.map +1 -0
  125. package/dist/verification/__tests__/best-of-n-runner.test.js +94 -0
  126. package/dist/verification/__tests__/best-of-n-runner.test.js.map +1 -0
  127. package/dist/verification/__tests__/config.test.d.ts +2 -0
  128. package/dist/verification/__tests__/config.test.d.ts.map +1 -0
  129. package/dist/verification/__tests__/config.test.js +50 -0
  130. package/dist/verification/__tests__/config.test.js.map +1 -0
  131. package/dist/verification/__tests__/decay-policy.test.d.ts +2 -0
  132. package/dist/verification/__tests__/decay-policy.test.d.ts.map +1 -0
  133. package/dist/verification/__tests__/decay-policy.test.js +130 -0
  134. package/dist/verification/__tests__/decay-policy.test.js.map +1 -0
  135. package/dist/verification/__tests__/fail-to-pass.test.d.ts +2 -0
  136. package/dist/verification/__tests__/fail-to-pass.test.d.ts.map +1 -0
  137. package/dist/verification/__tests__/fail-to-pass.test.js +107 -0
  138. package/dist/verification/__tests__/fail-to-pass.test.js.map +1 -0
  139. package/dist/verification/__tests__/failure-signature.test.d.ts +2 -0
  140. package/dist/verification/__tests__/failure-signature.test.d.ts.map +1 -0
  141. package/dist/verification/__tests__/failure-signature.test.js +40 -0
  142. package/dist/verification/__tests__/failure-signature.test.js.map +1 -0
  143. package/dist/verification/__tests__/logger.test.d.ts +2 -0
  144. package/dist/verification/__tests__/logger.test.d.ts.map +1 -0
  145. package/dist/verification/__tests__/logger.test.js +23 -0
  146. package/dist/verification/__tests__/logger.test.js.map +1 -0
  147. package/dist/verification/__tests__/mutation-cargo-mutants.test.d.ts +2 -0
  148. package/dist/verification/__tests__/mutation-cargo-mutants.test.d.ts.map +1 -0
  149. package/dist/verification/__tests__/mutation-cargo-mutants.test.js +96 -0
  150. package/dist/verification/__tests__/mutation-cargo-mutants.test.js.map +1 -0
  151. package/dist/verification/__tests__/mutation-infection.test.d.ts +2 -0
  152. package/dist/verification/__tests__/mutation-infection.test.d.ts.map +1 -0
  153. package/dist/verification/__tests__/mutation-infection.test.js +101 -0
  154. package/dist/verification/__tests__/mutation-infection.test.js.map +1 -0
  155. package/dist/verification/__tests__/mutation-mutmut.test.d.ts +2 -0
  156. package/dist/verification/__tests__/mutation-mutmut.test.d.ts.map +1 -0
  157. package/dist/verification/__tests__/mutation-mutmut.test.js +102 -0
  158. package/dist/verification/__tests__/mutation-mutmut.test.js.map +1 -0
  159. package/dist/verification/__tests__/mutation-registry.test.d.ts +2 -0
  160. package/dist/verification/__tests__/mutation-registry.test.d.ts.map +1 -0
  161. package/dist/verification/__tests__/mutation-registry.test.js +28 -0
  162. package/dist/verification/__tests__/mutation-registry.test.js.map +1 -0
  163. package/dist/verification/__tests__/mutation-stryker.test.d.ts +2 -0
  164. package/dist/verification/__tests__/mutation-stryker.test.d.ts.map +1 -0
  165. package/dist/verification/__tests__/mutation-stryker.test.js +88 -0
  166. package/dist/verification/__tests__/mutation-stryker.test.js.map +1 -0
  167. package/dist/verification/__tests__/no-shell-true.test.d.ts +2 -0
  168. package/dist/verification/__tests__/no-shell-true.test.d.ts.map +1 -0
  169. package/dist/verification/__tests__/no-shell-true.test.js +43 -0
  170. package/dist/verification/__tests__/no-shell-true.test.js.map +1 -0
  171. package/dist/verification/__tests__/path-safety.test.d.ts +2 -0
  172. package/dist/verification/__tests__/path-safety.test.d.ts.map +1 -0
  173. package/dist/verification/__tests__/path-safety.test.js +59 -0
  174. package/dist/verification/__tests__/path-safety.test.js.map +1 -0
  175. package/dist/verification/__tests__/prerank.test.d.ts +2 -0
  176. package/dist/verification/__tests__/prerank.test.d.ts.map +1 -0
  177. package/dist/verification/__tests__/prerank.test.js +44 -0
  178. package/dist/verification/__tests__/prerank.test.js.map +1 -0
  179. package/dist/verification/__tests__/runner.test.d.ts +2 -0
  180. package/dist/verification/__tests__/runner.test.d.ts.map +1 -0
  181. package/dist/verification/__tests__/runner.test.js +200 -0
  182. package/dist/verification/__tests__/runner.test.js.map +1 -0
  183. package/dist/verification/__tests__/safe-spawn.test.d.ts +2 -0
  184. package/dist/verification/__tests__/safe-spawn.test.d.ts.map +1 -0
  185. package/dist/verification/__tests__/safe-spawn.test.js +36 -0
  186. package/dist/verification/__tests__/safe-spawn.test.js.map +1 -0
  187. package/dist/verification/__tests__/security.test.d.ts +2 -0
  188. package/dist/verification/__tests__/security.test.d.ts.map +1 -0
  189. package/dist/verification/__tests__/security.test.js +79 -0
  190. package/dist/verification/__tests__/security.test.js.map +1 -0
  191. package/dist/verification/__tests__/selector-pareto.test.d.ts +2 -0
  192. package/dist/verification/__tests__/selector-pareto.test.d.ts.map +1 -0
  193. package/dist/verification/__tests__/selector-pareto.test.js +77 -0
  194. package/dist/verification/__tests__/selector-pareto.test.js.map +1 -0
  195. package/dist/verification/__tests__/telemetry.test.d.ts +2 -0
  196. package/dist/verification/__tests__/telemetry.test.d.ts.map +1 -0
  197. package/dist/verification/__tests__/telemetry.test.js +116 -0
  198. package/dist/verification/__tests__/telemetry.test.js.map +1 -0
  199. package/dist/verification/__tests__/type-check.test.d.ts +2 -0
  200. package/dist/verification/__tests__/type-check.test.d.ts.map +1 -0
  201. package/dist/verification/__tests__/type-check.test.js +52 -0
  202. package/dist/verification/__tests__/type-check.test.js.map +1 -0
  203. package/dist/verification/__tests__/worktree.test.d.ts +2 -0
  204. package/dist/verification/__tests__/worktree.test.d.ts.map +1 -0
  205. package/dist/verification/__tests__/worktree.test.js +41 -0
  206. package/dist/verification/__tests__/worktree.test.js.map +1 -0
  207. package/dist/verification/bench/fixtures.d.ts +11 -0
  208. package/dist/verification/bench/fixtures.d.ts.map +1 -0
  209. package/dist/verification/bench/fixtures.js +66 -0
  210. package/dist/verification/bench/fixtures.js.map +1 -0
  211. package/dist/verification/bench/harness.d.ts +19 -0
  212. package/dist/verification/bench/harness.d.ts.map +1 -0
  213. package/dist/verification/bench/harness.js +138 -0
  214. package/dist/verification/bench/harness.js.map +1 -0
  215. package/dist/verification/bench/report.d.ts +53 -0
  216. package/dist/verification/bench/report.d.ts.map +1 -0
  217. package/dist/verification/bench/report.js +47 -0
  218. package/dist/verification/bench/report.js.map +1 -0
  219. package/dist/verification/best-of-n/runner.d.ts +29 -0
  220. package/dist/verification/best-of-n/runner.d.ts.map +1 -0
  221. package/dist/verification/best-of-n/runner.js +76 -0
  222. package/dist/verification/best-of-n/runner.js.map +1 -0
  223. package/dist/verification/best-of-n/selector/pareto.d.ts +10 -0
  224. package/dist/verification/best-of-n/selector/pareto.d.ts.map +1 -0
  225. package/dist/verification/best-of-n/selector/pareto.js +65 -0
  226. package/dist/verification/best-of-n/selector/pareto.js.map +1 -0
  227. package/dist/verification/best-of-n/selector/prerank.d.ts +23 -0
  228. package/dist/verification/best-of-n/selector/prerank.d.ts.map +1 -0
  229. package/dist/verification/best-of-n/selector/prerank.js +32 -0
  230. package/dist/verification/best-of-n/selector/prerank.js.map +1 -0
  231. package/dist/verification/best-of-n/worktree.d.ts +9 -0
  232. package/dist/verification/best-of-n/worktree.d.ts.map +1 -0
  233. package/dist/verification/best-of-n/worktree.js +100 -0
  234. package/dist/verification/best-of-n/worktree.js.map +1 -0
  235. package/dist/verification/config.d.ts +24 -0
  236. package/dist/verification/config.d.ts.map +1 -0
  237. package/dist/verification/config.js +168 -0
  238. package/dist/verification/config.js.map +1 -0
  239. package/dist/verification/decay/policy.d.ts +16 -0
  240. package/dist/verification/decay/policy.d.ts.map +1 -0
  241. package/dist/verification/decay/policy.js +64 -0
  242. package/dist/verification/decay/policy.js.map +1 -0
  243. package/dist/verification/decay/signature.d.ts +6 -0
  244. package/dist/verification/decay/signature.d.ts.map +1 -0
  245. package/dist/verification/decay/signature.js +18 -0
  246. package/dist/verification/decay/signature.js.map +1 -0
  247. package/dist/verification/gates/anti-tamper.d.ts +16 -0
  248. package/dist/verification/gates/anti-tamper.d.ts.map +1 -0
  249. package/dist/verification/gates/anti-tamper.js +142 -0
  250. package/dist/verification/gates/anti-tamper.js.map +1 -0
  251. package/dist/verification/gates/fail-to-pass.d.ts +39 -0
  252. package/dist/verification/gates/fail-to-pass.d.ts.map +1 -0
  253. package/dist/verification/gates/fail-to-pass.js +173 -0
  254. package/dist/verification/gates/fail-to-pass.js.map +1 -0
  255. package/dist/verification/gates/mutation/adapter.d.ts +34 -0
  256. package/dist/verification/gates/mutation/adapter.d.ts.map +1 -0
  257. package/dist/verification/gates/mutation/adapter.js +22 -0
  258. package/dist/verification/gates/mutation/adapter.js.map +1 -0
  259. package/dist/verification/gates/mutation/cargo-mutants.d.ts +28 -0
  260. package/dist/verification/gates/mutation/cargo-mutants.d.ts.map +1 -0
  261. package/dist/verification/gates/mutation/cargo-mutants.js +170 -0
  262. package/dist/verification/gates/mutation/cargo-mutants.js.map +1 -0
  263. package/dist/verification/gates/mutation/infection.d.ts +28 -0
  264. package/dist/verification/gates/mutation/infection.d.ts.map +1 -0
  265. package/dist/verification/gates/mutation/infection.js +149 -0
  266. package/dist/verification/gates/mutation/infection.js.map +1 -0
  267. package/dist/verification/gates/mutation/mutmut.d.ts +23 -0
  268. package/dist/verification/gates/mutation/mutmut.d.ts.map +1 -0
  269. package/dist/verification/gates/mutation/mutmut.js +148 -0
  270. package/dist/verification/gates/mutation/mutmut.js.map +1 -0
  271. package/dist/verification/gates/mutation/stryker.d.ts +19 -0
  272. package/dist/verification/gates/mutation/stryker.d.ts.map +1 -0
  273. package/dist/verification/gates/mutation/stryker.js +103 -0
  274. package/dist/verification/gates/mutation/stryker.js.map +1 -0
  275. package/dist/verification/gates/type-check.d.ts +11 -0
  276. package/dist/verification/gates/type-check.d.ts.map +1 -0
  277. package/dist/verification/gates/type-check.js +84 -0
  278. package/dist/verification/gates/type-check.js.map +1 -0
  279. package/dist/verification/registry.d.ts +6 -0
  280. package/dist/verification/registry.d.ts.map +1 -0
  281. package/dist/verification/registry.js +49 -0
  282. package/dist/verification/registry.js.map +1 -0
  283. package/dist/verification/runner.d.ts +27 -0
  284. package/dist/verification/runner.d.ts.map +1 -0
  285. package/dist/verification/runner.js +173 -0
  286. package/dist/verification/runner.js.map +1 -0
  287. package/dist/verification/telemetry.d.ts +18 -0
  288. package/dist/verification/telemetry.d.ts.map +1 -0
  289. package/dist/verification/telemetry.js +71 -0
  290. package/dist/verification/telemetry.js.map +1 -0
  291. package/dist/verification/types.d.ts +89 -0
  292. package/dist/verification/types.d.ts.map +1 -0
  293. package/dist/verification/types.js +3 -0
  294. package/dist/verification/types.js.map +1 -0
  295. package/package.json +5 -3
  296. package/templates/UPDATE-MANIFEST.json +20 -0
  297. package/templates/ide/antigravity/.agents/skills/dare-bench/SKILL.md +21 -0
  298. package/templates/ide/antigravity/.agents/skills/dare-bootstrap/SKILL.md +32 -0
  299. package/templates/ide/antigravity/.agents/skills/dare-dag/SKILL.md +32 -0
  300. package/templates/ide/antigravity/.agents/skills/dare-discover/SKILL.md +33 -0
  301. package/templates/ide/antigravity/.agents/skills/dare-graph/SKILL.md +35 -0
  302. package/templates/ide/antigravity/.agents/skills/dare-info/SKILL.md +31 -0
  303. package/templates/ide/antigravity/.agents/skills/dare-init/SKILL.md +35 -0
  304. package/templates/ide/antigravity/.agents/skills/dare-skill/SKILL.md +35 -0
  305. package/templates/ide/antigravity/.agents/skills/dare-update/SKILL.md +33 -0
  306. package/templates/ide/antigravity/.agents/skills/dare-validate/SKILL.md +33 -0
  307. package/templates/ide/antigravity/.agents/skills/dare-welcome/SKILL.md +30 -0
  308. package/templates/ide/claude/.claude/commands/dare-bench.md +18 -0
  309. package/templates/ide/claude/.claude/commands/dare-bootstrap.md +27 -0
  310. package/templates/ide/claude/.claude/commands/dare-dag.md +27 -0
  311. package/templates/ide/claude/.claude/commands/dare-discover.md +28 -0
  312. package/templates/ide/claude/.claude/commands/dare-graph.md +30 -0
  313. package/templates/ide/claude/.claude/commands/dare-info.md +26 -0
  314. package/templates/ide/claude/.claude/commands/dare-init.md +30 -0
  315. package/templates/ide/claude/.claude/commands/dare-skill.md +30 -0
  316. package/templates/ide/claude/.claude/commands/dare-update.md +28 -0
  317. package/templates/ide/claude/.claude/commands/dare-validate.md +28 -0
  318. package/templates/ide/claude/.claude/commands/dare-welcome.md +25 -0
  319. package/templates/ide/cursor/.cursor/commands/dare-bench.md +18 -0
  320. package/templates/ide/cursor/.cursor/commands/{generate-blueprint.md → dare-blueprint.md} +1 -1
  321. package/templates/ide/cursor/.cursor/commands/dare-bootstrap.md +27 -0
  322. package/templates/ide/cursor/.cursor/commands/{run-dag.md → dare-dag-run.md} +1 -1
  323. package/templates/ide/cursor/.cursor/commands/{dag-viz.md → dare-dag-viz.md} +1 -1
  324. package/templates/ide/cursor/.cursor/commands/dare-dag.md +27 -0
  325. package/templates/ide/cursor/.cursor/commands/{generate-design.md → dare-design.md} +1 -1
  326. package/templates/ide/cursor/.cursor/commands/dare-discover.md +28 -0
  327. package/templates/ide/cursor/.cursor/commands/dare-dna.md +75 -0
  328. package/templates/ide/cursor/.cursor/commands/{generate-docker-compose.md → dare-docker-compose.md} +1 -1
  329. package/templates/ide/cursor/.cursor/commands/{generate-dockerfile.md → dare-dockerfile.md} +1 -1
  330. package/templates/ide/cursor/.cursor/commands/{execute-task.md → dare-execute.md} +1 -1
  331. package/templates/ide/cursor/.cursor/commands/dare-graph.md +30 -0
  332. package/templates/ide/cursor/.cursor/commands/dare-info.md +26 -0
  333. package/templates/ide/cursor/.cursor/commands/dare-init.md +30 -0
  334. package/templates/ide/cursor/.cursor/commands/dare-migrate.md +72 -0
  335. package/templates/ide/cursor/.cursor/commands/{refine-task.md → dare-refine.md} +1 -1
  336. package/templates/ide/cursor/.cursor/commands/dare-reverse.md +139 -0
  337. package/templates/ide/cursor/.cursor/commands/{review-task.md → dare-review.md} +1 -1
  338. package/templates/ide/cursor/.cursor/commands/dare-skill.md +30 -0
  339. package/templates/ide/cursor/.cursor/commands/{generate-tasks.md → dare-tasks.md} +1 -1
  340. package/templates/ide/cursor/.cursor/commands/{telemetry-report.md → dare-telemetry.md} +1 -1
  341. package/templates/ide/cursor/.cursor/commands/dare-update.md +28 -0
  342. package/templates/ide/cursor/.cursor/commands/dare-validate.md +28 -0
  343. package/templates/ide/cursor/.cursor/commands/dare-welcome.md +25 -0
  344. /package/templates/ide/cursor/.cursor/commands/{generate-bugfix-design.md → dare-bugfix-design.md} +0 -0
  345. /package/templates/ide/cursor/.cursor/commands/{generate-feature-design.md → dare-feature-design.md} +0 -0
@@ -21,8 +21,39 @@ const IGNORE_DIRS = new Set([
21
21
  const SCAN_EXT = new Set([
22
22
  '.sql', '.prisma', '.ts', '.tsx', '.js', '.mjs', '.cjs', '.py', '.php', '.rb', '.go', '.rs',
23
23
  ]);
24
- /** Directories whose classes/types are treated as domain entities (framework-agnostic). */
25
- const DATA_DIR_RE = /(^|\/)(models?|entities|entity|domain|dto|dtos|schemas?)\//i;
24
+ /**
25
+ * Directories whose classes/types are treated as domain entities
26
+ * (framework-agnostic). NOTE: `dto`/`dtos` are deliberately excluded — DTOs are
27
+ * API request/response shapes, not persistence entities. Filenames ending in
28
+ * `.entity.*` / `.model.*` are always treated as entities (see extractDataModel).
29
+ */
30
+ const DATA_DIR_RE = /(^|\/)(models?|entities|entity|domain|schemas?)\//i;
31
+ /** A `*.entity.*` / `*.model.*` file is a persistence entity regardless of dir. */
32
+ const ENTITY_FILE_RE = /\.(entity|model)\.(ts|tsx|js|py|php|rb|go|rs)$/i;
33
+ /**
34
+ * Names that look like transport/value shapes, not persistence entities.
35
+ * Used to drop false positives that leak in via `domain/` type scans.
36
+ */
37
+ const NON_ENTITY_NAME_RE = /(Dto|Request|Response|Input|Output|Payload|Params?|Query|Filter|Options?|Props|Config|Args?|Result|Mapper|Factory|Builder|Handler|Service|Controller|Module|Guard|Interceptor|Pipe|Middleware|Resolver|Strategy|Adapter|Port|UseCase|Command|Event|Query)$/;
38
+ /** SQL keywords that leak in as "table refs" from DDL clauses. */
39
+ const SQL_KEYWORDS = new Set([
40
+ 'CASCADE', 'SET', 'NULL', 'DEFAULT', 'RESTRICT', 'ACTION', 'NO', 'KEY',
41
+ 'PRIMARY', 'FOREIGN', 'REFERENCES', 'UNIQUE', 'INDEX', 'CONSTRAINT', 'TABLE',
42
+ 'EXISTS', 'IF', 'AND', 'OR', 'NOT', 'TRUE', 'FALSE',
43
+ ]);
44
+ function looksLikeEntity(name) {
45
+ if (name.length < 3)
46
+ return false; // single/double-char generics like "a"
47
+ if (!/^[A-Z]/.test(name))
48
+ return false; // entities are PascalCase
49
+ if (/^[A-Z][A-Z0-9_]*$/.test(name))
50
+ return false; // ALL-CAPS → SQL keyword/constant, not a class
51
+ if (SQL_KEYWORDS.has(name.toUpperCase()))
52
+ return false;
53
+ if (NON_ENTITY_NAME_RE.test(name))
54
+ return false;
55
+ return true;
56
+ }
26
57
  async function collectFiles(root) {
27
58
  const out = [];
28
59
  async function recurse(dir) {
@@ -57,18 +88,25 @@ export async function extractDataModel(root) {
57
88
  for (const f of files) {
58
89
  const base = path.basename(f.rel);
59
90
  const lower = f.rel.toLowerCase();
91
+ // A `*.dto.*` file is never a persistence entity — skip its type scan.
92
+ const isDtoFile = /\.dto\.(ts|tsx|js|py|php|rb)$/i.test(f.rel) || /(^|\/)dtos?\//i.test(lower);
93
+ // High-confidence sources — kept regardless of name casing (SQL tables are
94
+ // often lowercase like `produtos` / `users`).
60
95
  if (base === 'schema.prisma')
61
96
  entities.push(...parsePrisma(f));
62
- // Inline SQL DDL anywhere — migrations, .sql, or SQL inside code strings (PDO/mysqli/etc).
63
- entities.push(...parseSql(f));
64
- // Table names referenced in queries covers legacy whose schema lives only in the DB.
65
- entities.push(...parseSqlTableRefs(f));
66
- // ORM relations (framework enrichment).
97
+ entities.push(...parseSql(f)); // CREATE TABLE DDL
98
+ // Table names referenced in queries — drop SQL keywords (CASCADE, SET, …)
99
+ // that leak from DDL clauses, but keep real (lowercase) table names.
100
+ entities.push(...parseSqlTableRefs(f).filter((e) => !SQL_KEYWORDS.has(e.name.toUpperCase())));
67
101
  if (/\.(ts|js|php|rb|py)$/.test(f.rel))
68
- entities.push(...parseOrm(f));
69
- // Plain types/classes/structs in data dirs framework-agnostic baseline (no ORM needed).
70
- if (DATA_DIR_RE.test(lower))
71
- entities.push(...parseTypes(f));
102
+ entities.push(...parseOrm(f)); // @Entity/Eloquent/…
103
+ // Broad type/class scan: data dirs or *.entity.*/*.model.* files, never a
104
+ // DTO. `*.entity.*` files are trusted; loose `domain/` types are name-filtered
105
+ // to drop transport/value shapes (DTOs, generics, all-caps constants).
106
+ if (!isDtoFile && (DATA_DIR_RE.test(lower) || ENTITY_FILE_RE.test(f.rel))) {
107
+ const typed = parseTypes(f);
108
+ entities.push(...(ENTITY_FILE_RE.test(f.rel) ? typed : typed.filter((e) => looksLikeEntity(e.name))));
109
+ }
72
110
  endpoints.push(...parseEndpoints(f));
73
111
  }
74
112
  return { entities: dedupeEntities(entities), endpoints: dedupeEndpoints(endpoints) };
@@ -164,20 +202,32 @@ function parseOrm(f) {
164
202
  if (!name)
165
203
  continue;
166
204
  const entity = { name, fields: [], relations: [], source: `${f.rel}:${i + 1}` };
167
- // Scan the next ~40 lines for relations.
168
- for (let j = i + 1; j < Math.min(i + 40, lines.length); j++) {
169
- const rel = /\b(belongsTo|hasMany|hasOne|belongsToMany)\s*\(\s*([A-Za-z_]\w*)/.exec(lines[j]) ||
170
- /\b(belongs_to|has_many|has_one)\s+:(\w+)/.exec(lines[j]) ||
171
- /@(ManyToOne|OneToMany|OneToOne|ManyToMany)\s*\(\s*\(\)\s*=>\s*(\w+)/.exec(lines[j]) ||
172
- /relationship\(\s*["'](\w+)["']/.exec(lines[j]);
205
+ // Scan the next ~60 lines for relations AND column/property fields, until
206
+ // the class body closes.
207
+ let depth = 0;
208
+ for (let j = i; j < Math.min(i + 60, lines.length); j++) {
209
+ const lj = lines[j];
210
+ depth += (lj.match(/\{/g) || []).length - (lj.match(/\}/g) || []).length;
211
+ const rel = /\b(belongsTo|hasMany|hasOne|belongsToMany)\s*\(\s*([A-Za-z_]\w*)/.exec(lj) ||
212
+ /\b(belongs_to|has_many|has_one)\s+:(\w+)/.exec(lj) ||
213
+ /@(ManyToOne|OneToMany|OneToOne|ManyToMany)\s*\(\s*\(\)\s*=>\s*(\w+)/.exec(lj) ||
214
+ /relationship\(\s*["'](\w+)["']/.exec(lj);
173
215
  if (rel) {
174
216
  const to = rel[2] ?? rel[1];
175
217
  const kind = (rel[1] || 'relation').toString();
176
218
  entity.relations.push({ to: capitalize(to.replace(/Model$|::class/g, '')), kind: normalizeKind(kind) });
177
219
  }
220
+ else if (j > i) {
221
+ // Property/column field: `name: type` (TS), optionally @Column-decorated.
222
+ const fm = /^\s*(?:@\w+\([^)]*\)\s*)?(\w+)\??\s*:\s*([\w[\]<>., |]+)/.exec(lj);
223
+ if (fm && !/^(constructor|function|async|public|private|protected|static|get|set)$/.test(fm[1])) {
224
+ entity.fields.push({ name: fm[1], type: fm[2].trim().replace(/[;,].*$/, '') });
225
+ }
226
+ }
227
+ if (j > i && depth <= 0)
228
+ break; // class body closed
178
229
  }
179
- if (entity.relations.length > 0)
180
- out.push(entity);
230
+ out.push(entity); // confirmed entity by @Entity / extends Model / etc.
181
231
  }
182
232
  return out;
183
233
  }
@@ -199,6 +249,20 @@ function parseEndpoints(f) {
199
249
  const out = [];
200
250
  const lines = f.content.split(/\r?\n/);
201
251
  const isRuby = f.rel.endsWith('.rb');
252
+ // Class-level route prefix for frameworks that split it from the method
253
+ // decorator: NestJS @Controller('x'), Spring @RequestMapping("/x"). A file
254
+ // usually hosts one controller; we apply its prefix to method-decorator
255
+ // routes (NestJS @Get/@Post …). Full-path frameworks (Express/Laravel/…) are
256
+ // unaffected.
257
+ const ctrlMatch = /@Controller\(\s*['"`]([^'"`]*)['"`]/.exec(f.content) ||
258
+ /@RequestMapping\(\s*(?:value\s*=\s*)?['"]([^'"]*)['"]/.exec(f.content);
259
+ const classPrefix = ctrlMatch ? ctrlMatch[1] : '';
260
+ const joinRoute = (prefix, route) => {
261
+ const a = prefix.replace(/^\/+|\/+$/g, '');
262
+ const b = route.replace(/^\/+|\/+$/g, '');
263
+ const joined = [a, b].filter(Boolean).join('/');
264
+ return '/' + joined;
265
+ };
202
266
  // 1. Per-method, single-line patterns.
203
267
  for (let i = 0; i < lines.length; i++) {
204
268
  for (const re of ENDPOINT_PATTERNS) {
@@ -208,10 +272,23 @@ function parseEndpoints(f) {
208
272
  // Axum captures (path, method); the others capture (method, path).
209
273
  const axum = re.source.startsWith('\\.route');
210
274
  const method = (axum ? m[2] : m[1]).toUpperCase();
211
- const route = axum ? m[1] : m[2];
275
+ const rawRoute = axum ? m[1] : m[2];
276
+ // Only NestJS method decorators (first pattern, starts with @Get/@Post)
277
+ // need the controller prefix composed in.
278
+ const isNestDecorator = re.source.startsWith('@(Get');
279
+ const route = isNestDecorator ? joinRoute(classPrefix, rawRoute) : rawRoute;
212
280
  out.push({ method, route, source: `${f.rel}:${i + 1}` });
213
281
  }
214
282
  }
283
+ // Bare NestJS decorators `@Get()` / `@Post()` (no path arg) → controller-root route.
284
+ const bareNest = /@(Get|Post|Put|Patch|Delete|Options|Head)\(\s*\)/.exec(lines[i]);
285
+ if (bareNest) {
286
+ out.push({
287
+ method: bareNest[1].toUpperCase(),
288
+ route: joinRoute(classPrefix, ''),
289
+ source: `${f.rel}:${i + 1}`,
290
+ });
291
+ }
215
292
  // Ruby Sinatra / Rails routes.rb: `get '/x'`.
216
293
  if (isRuby) {
217
294
  const rm = /^\s*(get|post|put|patch|delete|match)\s+['"]([^'"]+)['"]/.exec(lines[i]);
@@ -1 +1 @@
1
- {"version":3,"file":"datamodel.js","sourceRoot":"","sources":["../../src/utils/datamodel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datamodel.js","sourceRoot":"","sources":["../../src/utils/datamodel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type Logger } from 'pino';
2
+ export declare const logger: Logger;
3
+ /**
4
+ * Child logger with a fixed scope binding (RNF-04).
5
+ */
6
+ export declare function createLogger(scope: string): Logger;
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAgBzC,eAAO,MAAM,MAAM,EAAE,MAEc,CAAC;AAEpC;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -0,0 +1,23 @@
1
+ import pino from 'pino';
2
+ function resolveLevel() {
3
+ return process.env.DARE_LOG_LEVEL ?? 'info';
4
+ }
5
+ function buildTransport() {
6
+ if (!process.stdout.isTTY)
7
+ return undefined;
8
+ return {
9
+ target: 'pino-pretty',
10
+ options: { colorize: true },
11
+ };
12
+ }
13
+ const transport = buildTransport();
14
+ export const logger = transport
15
+ ? pino({ level: resolveLevel(), transport })
16
+ : pino({ level: resolveLevel() });
17
+ /**
18
+ * Child logger with a fixed scope binding (RNF-04).
19
+ */
20
+ export function createLogger(scope) {
21
+ return logger.child({ scope });
22
+ }
23
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAqB,MAAM,MAAM,CAAC;AAEzC,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO;QACL,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;AAEnC,MAAM,CAAC,MAAM,MAAM,GAAW,SAAS;IACrC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,CAAC;IAC5C,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /** Stable message for tests and CLI error handling. */
2
+ export declare const PATH_ESCAPE_MESSAGE = "Path escape: resolved path is outside allowed root";
3
+ /**
4
+ * Thrown when a resolved path leaves the allowed project root.
5
+ */
6
+ export declare class PathEscapeError extends Error {
7
+ readonly code: "PATH_ESCAPE";
8
+ constructor(message?: string);
9
+ }
10
+ /**
11
+ * Ensures a path is relative and does not escape via '..' (RS-01).
12
+ */
13
+ export declare function assertRelativeSafe(targetPath: string): void;
14
+ /**
15
+ * Garante que `resolved` está sob `root` (prefixo realpath quando possível).
16
+ */
17
+ export declare function assertWithinRoot(root: string, resolved: string): void;
18
+ /**
19
+ * Junta root + segmentos relativos e valida confinamento.
20
+ */
21
+ export declare function resolveSafePath(root: string, ...segments: string[]): string;
22
+ //# sourceMappingURL=path-safety.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-safety.d.ts","sourceRoot":"","sources":["../../src/utils/path-safety.ts"],"names":[],"mappings":"AAGA,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,uDACsB,CAAC;AAEvD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;gBAE3B,OAAO,GAAE,MAA4B;CAIlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAQ3D;AA6BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAWrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAgB3E"}
@@ -0,0 +1,83 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ /** Stable message for tests and CLI error handling. */
4
+ export const PATH_ESCAPE_MESSAGE = 'Path escape: resolved path is outside allowed root';
5
+ /**
6
+ * Thrown when a resolved path leaves the allowed project root.
7
+ */
8
+ export class PathEscapeError extends Error {
9
+ constructor(message = PATH_ESCAPE_MESSAGE) {
10
+ super(message);
11
+ this.code = 'PATH_ESCAPE';
12
+ this.name = 'PathEscapeError';
13
+ }
14
+ }
15
+ /**
16
+ * Ensures a path is relative and does not escape via '..' (RS-01).
17
+ */
18
+ export function assertRelativeSafe(targetPath) {
19
+ if (path.isAbsolute(targetPath)) {
20
+ throw new Error(`targetPath must be relative, got absolute: ${targetPath}`);
21
+ }
22
+ const norm = path.posix.normalize(targetPath.replace(/\\/g, '/'));
23
+ if (norm.startsWith('..') || norm.includes('/../')) {
24
+ throw new Error(`targetPath must not contain '..': ${targetPath}`);
25
+ }
26
+ }
27
+ function isUncPath(p) {
28
+ const normalized = p.replace(/\//g, '\\');
29
+ return normalized.startsWith('\\\\');
30
+ }
31
+ function tryRealpath(p) {
32
+ try {
33
+ return fs.realpathSync(p);
34
+ }
35
+ catch {
36
+ return path.resolve(p);
37
+ }
38
+ }
39
+ function normalizeForPrefixCheck(p) {
40
+ const resolved = tryRealpath(p);
41
+ if (process.platform === 'win32') {
42
+ return resolved.replace(/\//g, '\\').toLowerCase();
43
+ }
44
+ return resolved;
45
+ }
46
+ function isUnderRoot(rootNorm, targetNorm) {
47
+ if (targetNorm === rootNorm)
48
+ return true;
49
+ const sep = process.platform === 'win32' ? '\\' : path.sep;
50
+ return targetNorm.startsWith(rootNorm + sep);
51
+ }
52
+ /**
53
+ * Garante que `resolved` está sob `root` (prefixo realpath quando possível).
54
+ */
55
+ export function assertWithinRoot(root, resolved) {
56
+ if (isUncPath(root)) {
57
+ throw new PathEscapeError('Path escape: UNC paths are not allowed as root');
58
+ }
59
+ const rootNorm = normalizeForPrefixCheck(root);
60
+ const targetNorm = normalizeForPrefixCheck(resolved);
61
+ if (!isUnderRoot(rootNorm, targetNorm)) {
62
+ throw new PathEscapeError(PATH_ESCAPE_MESSAGE);
63
+ }
64
+ }
65
+ /**
66
+ * Junta root + segmentos relativos e valida confinamento.
67
+ */
68
+ export function resolveSafePath(root, ...segments) {
69
+ if (isUncPath(root)) {
70
+ throw new PathEscapeError('Path escape: UNC paths are not allowed as root');
71
+ }
72
+ for (const segment of segments) {
73
+ const norm = path.posix.normalize(segment.replace(/\\/g, '/'));
74
+ if (norm === '..' || norm.startsWith('../') || norm.includes('/../')) {
75
+ throw new PathEscapeError(PATH_ESCAPE_MESSAGE);
76
+ }
77
+ assertRelativeSafe(segment);
78
+ }
79
+ const resolved = path.resolve(root, ...segments);
80
+ assertWithinRoot(root, resolved);
81
+ return resolved;
82
+ }
83
+ //# sourceMappingURL=path-safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-safety.js","sourceRoot":"","sources":["../../src/utils/path-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAC9B,oDAAoD,CAAC;AAEvD;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGxC,YAAY,UAAkB,mBAAmB;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAG,aAAsB,CAAC;QAIrC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,CAAS;IACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,UAAkB;IACvD,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3D,OAAO,UAAU,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAgB;IAC7D,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CAAC,gDAAgD,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,GAAG,QAAkB;IACjE,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CAAC,gDAAgD,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACjD,CAAC;QACD,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;IACjD,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -31,4 +31,25 @@ export interface ProjectConfig {
31
31
  }
32
32
  export declare function generateProjectStructure(config: ProjectConfig): Promise<void>;
33
33
  export declare function installDareToExistingProject(projectDir: string, config: Omit<ProjectConfig, 'outputDir'>): Promise<void>;
34
+ /**
35
+ * Installs the IDE-specific rules + the full set of DARE slash-commands/skills
36
+ * for the configured IDE. Idempotent — safe to call repeatedly. Extracted so
37
+ * brownfield commands (reverse/dna/migrate) can ensure the agent-side skills
38
+ * exist without re-running a full init.
39
+ */
40
+ export declare function installIdeFiles(outputDir: string, config: Omit<ProjectConfig, 'outputDir'>): Promise<void>;
41
+ /**
42
+ * Ensures the DARE slash-commands/skills are installed for the project at
43
+ * `targetDir`, so the two-layer workflow (CLI command + IDE skill) works.
44
+ *
45
+ * - If `dare.config.json` exists → refreshes the IDE files for the configured
46
+ * IDE (idempotent). No prompt.
47
+ * - If it does NOT exist (brownfield project never touched by DARE) → installs
48
+ * for ALL supported IDEs (cursor + antigravity + claude) and writes a minimal
49
+ * `dare.config.json`, so the workflow works regardless of which IDE is used.
50
+ *
51
+ * Brownfield commands (`dare reverse` / `dna` / `migrate`) call this before
52
+ * their analysis. `dare init` / `discover` already install skills themselves.
53
+ */
54
+ export declare function ensureDareSkills(targetDir: string): Promise<void>;
34
55
  //# sourceMappingURL=project-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-generator.d.ts","sourceRoot":"","sources":["../../src/utils/project-generator.ts"],"names":[],"mappings":"AAuBA,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAC/C,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,CAAC,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IACpD,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;IAC3E,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJnF;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAwCf"}
1
+ {"version":3,"file":"project-generator.d.ts","sourceRoot":"","sources":["../../src/utils/project-generator.ts"],"names":[],"mappings":"AAuBA,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IAC/C,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IACnD,WAAW,CAAC,EAAE,CAAC,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;IACpD,GAAG,EAAE,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;IAC3E,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsJnF;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDvE"}
@@ -10,6 +10,7 @@ function getFrameworkVersion() {
10
10
  }
11
11
  import { generateCursorRules, generateAntigravityRules, generateSharedConfig, generateMcpCursorRules, generateMcpAntigravityRules, generateClaudeCodeRules, generateMcpClaudeCodeRules, generateClaudeCommands, generateClaudeSettings, } from './templates.js';
12
12
  import { bootstrapBackend, bootstrapFrontend, bootstrapMcp, } from './stack-bootstrap.js';
13
+ import { defaultVerificationConfigForProject } from '../verification/config.js';
13
14
  export async function generateProjectStructure(config) {
14
15
  const { outputDir, name, structure, backend, frontend, ide, graphrag, mcp } = config;
15
16
  await fs.ensureDir(outputDir);
@@ -45,6 +46,7 @@ export async function generateProjectStructure(config) {
45
46
  // `complexity-analyzer.ts` for defaults; override per project here.
46
47
  thresholds: { low: 5, med: 12, high: 20 },
47
48
  },
49
+ verification: defaultVerificationConfigForProject(),
48
50
  };
49
51
  if (structure === 'mcp-server') {
50
52
  configData.mcpTransport = config.mcpTransport;
@@ -158,6 +160,16 @@ export async function installDareToExistingProject(projectDir, config) {
158
160
  await fs.writeFile(path.join(outputDir, 'DARE', 'README.md'), generateSharedConfig(name));
159
161
  await writeDareTemplates(outputDir);
160
162
  await writeGraphragConfig(outputDir, { ...config, outputDir });
163
+ await installIdeFiles(outputDir, config);
164
+ }
165
+ /**
166
+ * Installs the IDE-specific rules + the full set of DARE slash-commands/skills
167
+ * for the configured IDE. Idempotent — safe to call repeatedly. Extracted so
168
+ * brownfield commands (reverse/dna/migrate) can ensure the agent-side skills
169
+ * exist without re-running a full init.
170
+ */
171
+ export async function installIdeFiles(outputDir, config) {
172
+ const { structure, backend, frontend, ide, graphrag, mcp } = config;
161
173
  if (ide === 'cursor' || ide === 'hybrid') {
162
174
  const cursorRulesContent = structure === 'mcp-server'
163
175
  ? generateMcpCursorRules({ mcpTransport: config.mcpTransport, mcpLanguage: config.mcpLanguage, mcpFeatures: config.mcpFeatures, graphrag, mcp })
@@ -176,6 +188,65 @@ export async function installDareToExistingProject(projectDir, config) {
176
188
  await generateClaudeFiles(outputDir, { ...config, outputDir });
177
189
  }
178
190
  }
191
+ /**
192
+ * Ensures the DARE slash-commands/skills are installed for the project at
193
+ * `targetDir`, so the two-layer workflow (CLI command + IDE skill) works.
194
+ *
195
+ * - If `dare.config.json` exists → refreshes the IDE files for the configured
196
+ * IDE (idempotent). No prompt.
197
+ * - If it does NOT exist (brownfield project never touched by DARE) → installs
198
+ * for ALL supported IDEs (cursor + antigravity + claude) and writes a minimal
199
+ * `dare.config.json`, so the workflow works regardless of which IDE is used.
200
+ *
201
+ * Brownfield commands (`dare reverse` / `dna` / `migrate`) call this before
202
+ * their analysis. `dare init` / `discover` already install skills themselves.
203
+ */
204
+ export async function ensureDareSkills(targetDir) {
205
+ const cfgPath = path.join(targetDir, 'dare.config.json');
206
+ if (await fs.pathExists(cfgPath)) {
207
+ const cfg = (await fs.readJSON(cfgPath));
208
+ const ide = (cfg.ide ?? 'hybrid');
209
+ await fs.ensureDir(path.join(targetDir, 'DARE', 'EXECUTION'));
210
+ await installIdeFiles(targetDir, {
211
+ name: cfg.name ?? path.basename(targetDir),
212
+ structure: cfg.structure ?? 'backend',
213
+ backend: cfg.backend,
214
+ frontend: cfg.frontend,
215
+ ide,
216
+ graphrag: cfg.graphrag ?? 'sqlite',
217
+ mcp: cfg.mcp ?? false,
218
+ mcpTransport: cfg.mcpTransport,
219
+ mcpLanguage: cfg.mcpLanguage,
220
+ mcpFeatures: cfg.mcpFeatures,
221
+ });
222
+ return;
223
+ }
224
+ // No DARE config yet — install for every IDE so the agent-side skills exist
225
+ // no matter which editor the user runs. Writes a minimal config marker.
226
+ const name = path.basename(targetDir);
227
+ await fs.ensureDir(path.join(targetDir, 'DARE', 'EXECUTION'));
228
+ await fs.writeFile(path.join(targetDir, 'DARE', 'README.md'), generateSharedConfig(name));
229
+ await writeDareTemplates(targetDir);
230
+ for (const ide of ['hybrid', 'claude-code']) {
231
+ await installIdeFiles(targetDir, {
232
+ name,
233
+ structure: 'backend',
234
+ ide,
235
+ graphrag: 'sqlite',
236
+ mcp: false,
237
+ });
238
+ }
239
+ await fs.writeJSON(cfgPath, {
240
+ name,
241
+ structure: 'backend',
242
+ ide: 'hybrid',
243
+ graphrag: 'sqlite',
244
+ mcp: false,
245
+ version: getFrameworkVersion(),
246
+ installedAt: new Date().toISOString(),
247
+ installedBy: 'ensureDareSkills (brownfield command)',
248
+ }, { spaces: 2 });
249
+ }
179
250
  async function generateMcpTemplate(dir, config) {
180
251
  const { mcpLanguage = 'node-ts', mcpTransport = 'stdio', mcpFeatures = ['tools'] } = config;
181
252
  await fs.ensureDir(path.join(dir, 'src'));