@dewtech/dare-cli 2.17.0 → 3.0.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 (344) hide show
  1. package/README.md +98 -3
  2. package/dist/__tests__/confidence.test.d.ts +2 -0
  3. package/dist/__tests__/confidence.test.d.ts.map +1 -0
  4. package/dist/__tests__/confidence.test.js +73 -0
  5. package/dist/__tests__/confidence.test.js.map +1 -0
  6. package/dist/__tests__/datamodel.test.d.ts +2 -0
  7. package/dist/__tests__/datamodel.test.d.ts.map +1 -0
  8. package/dist/__tests__/datamodel.test.js +131 -0
  9. package/dist/__tests__/datamodel.test.js.map +1 -0
  10. package/dist/__tests__/dna-detector.test.d.ts +2 -0
  11. package/dist/__tests__/dna-detector.test.d.ts.map +1 -0
  12. package/dist/__tests__/dna-detector.test.js +97 -0
  13. package/dist/__tests__/dna-detector.test.js.map +1 -0
  14. package/dist/__tests__/dna-facts.test.d.ts +2 -0
  15. package/dist/__tests__/dna-facts.test.d.ts.map +1 -0
  16. package/dist/__tests__/dna-facts.test.js +44 -0
  17. package/dist/__tests__/dna-facts.test.js.map +1 -0
  18. package/dist/__tests__/graph-renderer.test.d.ts +2 -0
  19. package/dist/__tests__/graph-renderer.test.d.ts.map +1 -0
  20. package/dist/__tests__/graph-renderer.test.js +85 -0
  21. package/dist/__tests__/graph-renderer.test.js.map +1 -0
  22. package/dist/__tests__/migration.test.d.ts +2 -0
  23. package/dist/__tests__/migration.test.d.ts.map +1 -0
  24. package/dist/__tests__/migration.test.js +77 -0
  25. package/dist/__tests__/migration.test.js.map +1 -0
  26. package/dist/__tests__/module-detector.test.d.ts +2 -0
  27. package/dist/__tests__/module-detector.test.d.ts.map +1 -0
  28. package/dist/__tests__/module-detector.test.js +83 -0
  29. package/dist/__tests__/module-detector.test.js.map +1 -0
  30. package/dist/__tests__/refine.test.js +49 -49
  31. package/dist/__tests__/reverse-facts.test.d.ts +2 -0
  32. package/dist/__tests__/reverse-facts.test.d.ts.map +1 -0
  33. package/dist/__tests__/reverse-facts.test.js +78 -0
  34. package/dist/__tests__/reverse-facts.test.js.map +1 -0
  35. package/dist/__tests__/review.test.js +38 -38
  36. package/dist/__tests__/validate.test.js +65 -65
  37. package/dist/bin/dare.js +32 -3
  38. package/dist/bin/dare.js.map +1 -1
  39. package/dist/commands/blueprint.js +122 -122
  40. package/dist/commands/dag.d.ts.map +1 -1
  41. package/dist/commands/dag.js +43 -79
  42. package/dist/commands/dag.js.map +1 -1
  43. package/dist/commands/dna.d.ts +3 -0
  44. package/dist/commands/dna.d.ts.map +1 -0
  45. package/dist/commands/dna.js +69 -0
  46. package/dist/commands/dna.js.map +1 -0
  47. package/dist/commands/migrate.d.ts +3 -0
  48. package/dist/commands/migrate.d.ts.map +1 -0
  49. package/dist/commands/migrate.js +101 -0
  50. package/dist/commands/migrate.js.map +1 -0
  51. package/dist/commands/new.d.ts +16 -0
  52. package/dist/commands/new.d.ts.map +1 -0
  53. package/dist/commands/new.js +103 -0
  54. package/dist/commands/new.js.map +1 -0
  55. package/dist/commands/reverse.d.ts +3 -0
  56. package/dist/commands/reverse.d.ts.map +1 -0
  57. package/dist/commands/reverse.js +201 -0
  58. package/dist/commands/reverse.js.map +1 -0
  59. package/dist/commands/welcome.d.ts +14 -0
  60. package/dist/commands/welcome.d.ts.map +1 -0
  61. package/dist/commands/welcome.js +29 -0
  62. package/dist/commands/welcome.js.map +1 -0
  63. package/dist/skills/commands/add.d.ts +23 -0
  64. package/dist/skills/commands/add.d.ts.map +1 -0
  65. package/dist/skills/commands/add.js +206 -0
  66. package/dist/skills/commands/add.js.map +1 -0
  67. package/dist/skills/commands/info.d.ts +14 -0
  68. package/dist/skills/commands/info.d.ts.map +1 -0
  69. package/dist/skills/commands/info.js +99 -0
  70. package/dist/skills/commands/info.js.map +1 -0
  71. package/dist/skills/commands/list.d.ts +19 -0
  72. package/dist/skills/commands/list.d.ts.map +1 -0
  73. package/dist/skills/commands/list.js +163 -0
  74. package/dist/skills/commands/list.js.map +1 -0
  75. package/dist/skills/commands/publish.d.ts +56 -0
  76. package/dist/skills/commands/publish.d.ts.map +1 -0
  77. package/dist/skills/commands/publish.js +272 -0
  78. package/dist/skills/commands/publish.js.map +1 -0
  79. package/dist/skills/commands/remove.d.ts +19 -0
  80. package/dist/skills/commands/remove.d.ts.map +1 -0
  81. package/dist/skills/commands/remove.js +96 -0
  82. package/dist/skills/commands/remove.js.map +1 -0
  83. package/dist/skills/commands/update.d.ts +31 -0
  84. package/dist/skills/commands/update.d.ts.map +1 -0
  85. package/dist/skills/commands/update.js +132 -0
  86. package/dist/skills/commands/update.js.map +1 -0
  87. package/dist/skills/index.d.ts +22 -0
  88. package/dist/skills/index.d.ts.map +1 -0
  89. package/dist/skills/index.js +33 -0
  90. package/dist/skills/index.js.map +1 -0
  91. package/dist/skills/manifest.d.ts +54 -0
  92. package/dist/skills/manifest.d.ts.map +1 -0
  93. package/dist/skills/manifest.js +162 -0
  94. package/dist/skills/manifest.js.map +1 -0
  95. package/dist/skills/registry-local.d.ts +67 -0
  96. package/dist/skills/registry-local.d.ts.map +1 -0
  97. package/dist/skills/registry-local.js +130 -0
  98. package/dist/skills/registry-local.js.map +1 -0
  99. package/dist/skills/registry-mock.json +109 -0
  100. package/dist/skills/registry-remote.d.ts +110 -0
  101. package/dist/skills/registry-remote.d.ts.map +1 -0
  102. package/dist/skills/registry-remote.js +246 -0
  103. package/dist/skills/registry-remote.js.map +1 -0
  104. package/dist/skills/registry.d.ts +49 -0
  105. package/dist/skills/registry.d.ts.map +1 -0
  106. package/dist/skills/registry.js +94 -0
  107. package/dist/skills/registry.js.map +1 -0
  108. package/dist/skills/tests/manifest.spec.d.ts +8 -0
  109. package/dist/skills/tests/manifest.spec.d.ts.map +1 -0
  110. package/dist/skills/tests/manifest.spec.js +176 -0
  111. package/dist/skills/tests/manifest.spec.js.map +1 -0
  112. package/dist/skills/tests/publish.spec.d.ts +12 -0
  113. package/dist/skills/tests/publish.spec.d.ts.map +1 -0
  114. package/dist/skills/tests/publish.spec.js +276 -0
  115. package/dist/skills/tests/publish.spec.js.map +1 -0
  116. package/dist/skills/tests/registry-local.spec.d.ts +8 -0
  117. package/dist/skills/tests/registry-local.spec.d.ts.map +1 -0
  118. package/dist/skills/tests/registry-local.spec.js +231 -0
  119. package/dist/skills/tests/registry-local.spec.js.map +1 -0
  120. package/dist/skills/tests/registry.spec.d.ts +7 -0
  121. package/dist/skills/tests/registry.spec.d.ts.map +1 -0
  122. package/dist/skills/tests/registry.spec.js +58 -0
  123. package/dist/skills/tests/registry.spec.js.map +1 -0
  124. package/dist/skills/tests/remote-registry.spec.d.ts +9 -0
  125. package/dist/skills/tests/remote-registry.spec.d.ts.map +1 -0
  126. package/dist/skills/tests/remote-registry.spec.js +357 -0
  127. package/dist/skills/tests/remote-registry.spec.js.map +1 -0
  128. package/dist/skills/tests/update.spec.d.ts +9 -0
  129. package/dist/skills/tests/update.spec.d.ts.map +1 -0
  130. package/dist/skills/tests/update.spec.js +166 -0
  131. package/dist/skills/tests/update.spec.js.map +1 -0
  132. package/dist/utils/banner.d.ts +28 -0
  133. package/dist/utils/banner.d.ts.map +1 -0
  134. package/dist/utils/banner.js +77 -0
  135. package/dist/utils/banner.js.map +1 -0
  136. package/dist/utils/banner.spec.d.ts +5 -0
  137. package/dist/utils/banner.spec.d.ts.map +1 -0
  138. package/dist/utils/banner.spec.js +253 -0
  139. package/dist/utils/banner.spec.js.map +1 -0
  140. package/dist/utils/confidence.d.ts +41 -0
  141. package/dist/utils/confidence.d.ts.map +1 -0
  142. package/dist/utils/confidence.js +101 -0
  143. package/dist/utils/confidence.js.map +1 -0
  144. package/dist/utils/datamodel.d.ts +41 -0
  145. package/dist/utils/datamodel.d.ts.map +1 -0
  146. package/dist/utils/datamodel.js +535 -0
  147. package/dist/utils/datamodel.js.map +1 -0
  148. package/dist/utils/dna-detector.d.ts +61 -0
  149. package/dist/utils/dna-detector.d.ts.map +1 -0
  150. package/dist/utils/dna-detector.js +354 -0
  151. package/dist/utils/dna-detector.js.map +1 -0
  152. package/dist/utils/dna-facts.d.ts +13 -0
  153. package/dist/utils/dna-facts.d.ts.map +1 -0
  154. package/dist/utils/dna-facts.js +109 -0
  155. package/dist/utils/dna-facts.js.map +1 -0
  156. package/dist/utils/excalidraw-renderer.d.ts +11 -71
  157. package/dist/utils/excalidraw-renderer.d.ts.map +1 -1
  158. package/dist/utils/excalidraw-renderer.js +29 -162
  159. package/dist/utils/excalidraw-renderer.js.map +1 -1
  160. package/dist/utils/graph-renderer.d.ts +115 -0
  161. package/dist/utils/graph-renderer.d.ts.map +1 -0
  162. package/dist/utils/graph-renderer.js +216 -0
  163. package/dist/utils/graph-renderer.js.map +1 -0
  164. package/dist/utils/migration.d.ts +64 -0
  165. package/dist/utils/migration.d.ts.map +1 -0
  166. package/dist/utils/migration.js +183 -0
  167. package/dist/utils/migration.js.map +1 -0
  168. package/dist/utils/module-detector.d.ts +46 -0
  169. package/dist/utils/module-detector.d.ts.map +1 -0
  170. package/dist/utils/module-detector.js +348 -0
  171. package/dist/utils/module-detector.js.map +1 -0
  172. package/dist/utils/project-generator.js +252 -252
  173. package/dist/utils/reverse-facts.d.ts +50 -0
  174. package/dist/utils/reverse-facts.d.ts.map +1 -0
  175. package/dist/utils/reverse-facts.js +291 -0
  176. package/dist/utils/reverse-facts.js.map +1 -0
  177. package/dist/utils/stack-bootstrap.js +371 -371
  178. package/package.json +8 -3
  179. package/templates/DARE-dag-example.yaml +280 -280
  180. package/templates/UPDATE-MANIFEST.json +48 -48
  181. package/templates/backend/node-nestjs/.env.example +9 -9
  182. package/templates/backend/node-nestjs/nest-cli.json +8 -8
  183. package/templates/backend/node-nestjs/package.json +50 -50
  184. package/templates/backend/node-nestjs/src/app.controller.ts +12 -12
  185. package/templates/backend/node-nestjs/src/app.module.ts +15 -15
  186. package/templates/backend/node-nestjs/src/app.service.ts +8 -8
  187. package/templates/backend/node-nestjs/src/main.ts +24 -24
  188. package/templates/backend/node-nestjs/tsconfig.json +21 -21
  189. package/templates/backend/php-laravel/.env.example +22 -22
  190. package/templates/backend/php-laravel/app/Http/Controllers/HealthController.php +15 -15
  191. package/templates/backend/php-laravel/composer.json +40 -40
  192. package/templates/backend/python-fastapi/.env.example +4 -4
  193. package/templates/backend/python-fastapi/app/api/router.py +8 -8
  194. package/templates/backend/python-fastapi/app/core/config.py +20 -20
  195. package/templates/backend/python-fastapi/main.py +35 -35
  196. package/templates/backend/python-fastapi/requirements.txt +13 -13
  197. package/templates/backend/rust-axum/.env.example +3 -3
  198. package/templates/backend/rust-axum/Cargo.toml +23 -23
  199. package/templates/backend/rust-axum/src/errors.rs +30 -30
  200. package/templates/backend/rust-axum/src/main.rs +32 -32
  201. package/templates/backend/rust-axum/src/routes.rs +6 -6
  202. package/templates/frontend/leptos-csr/.cargo/config.toml +2 -2
  203. package/templates/frontend/leptos-csr/Cargo.toml +16 -16
  204. package/templates/frontend/leptos-csr/Trunk.toml +10 -10
  205. package/templates/frontend/leptos-csr/index.html +11 -11
  206. package/templates/frontend/leptos-csr/src/lib.rs +20 -20
  207. package/templates/frontend/leptos-csr/style/main.scss +19 -19
  208. package/templates/frontend/leptos-fullstack/.cargo/config.toml +4 -4
  209. package/templates/frontend/leptos-fullstack/Cargo.toml +56 -56
  210. package/templates/frontend/leptos-fullstack/src/app.rs +49 -49
  211. package/templates/frontend/leptos-fullstack/src/lib.rs +9 -9
  212. package/templates/frontend/leptos-fullstack/src/main.rs +29 -29
  213. package/templates/frontend/leptos-fullstack/style/main.scss +19 -19
  214. package/templates/frontend/react/index.html +12 -12
  215. package/templates/frontend/react/package.json +35 -35
  216. package/templates/frontend/react/src/App.tsx +25 -25
  217. package/templates/frontend/react/src/main.tsx +9 -9
  218. package/templates/frontend/vue/package.json +32 -32
  219. package/templates/frontend/vue/src/App.vue +7 -7
  220. package/templates/frontend/vue/src/main.ts +10 -10
  221. package/templates/frontend/vue/src/router/index.ts +14 -14
  222. package/templates/frontend/vue/src/views/HomeView.vue +6 -6
  223. package/templates/hooks/pre-commit-dare-validate +24 -24
  224. package/templates/ide/antigravity/.agents/skills/dare-ax/SKILL.md +152 -0
  225. package/templates/ide/antigravity/.agents/skills/dare-dag-build/SKILL.md +154 -0
  226. package/templates/ide/antigravity/.agents/skills/dare-dag-run/SKILL.md +130 -0
  227. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +203 -203
  228. package/templates/ide/antigravity/.agents/skills/dare-dna/SKILL.md +63 -0
  229. package/templates/ide/antigravity/.agents/skills/dare-docker/SKILL.md +315 -0
  230. package/templates/ide/antigravity/.agents/skills/dare-frontend-design/SKILL.md +192 -0
  231. package/templates/ide/antigravity/.agents/skills/dare-laravel-api/SKILL.md +337 -0
  232. package/templates/ide/antigravity/.agents/skills/dare-layered-design/SKILL.md +166 -0
  233. package/templates/ide/antigravity/.agents/skills/dare-llm-integration/SKILL.md +217 -0
  234. package/templates/ide/antigravity/.agents/skills/dare-migrate/SKILL.md +61 -0
  235. package/templates/ide/antigravity/.agents/skills/dare-quality-telemetry/SKILL.md +187 -0
  236. package/templates/ide/antigravity/.agents/skills/dare-realtime/SKILL.md +217 -0
  237. package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -114
  238. package/templates/ide/antigravity/.agents/skills/dare-reverse/SKILL.md +108 -0
  239. package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -111
  240. package/templates/ide/antigravity/.agents/skills/dare-rust-leptos/SKILL.md +263 -0
  241. package/templates/ide/antigravity/.agents/skills/dare-rust-workspace/SKILL.md +275 -275
  242. package/templates/ide/antigravity/.agents/skills/dare-security/SKILL.md +274 -0
  243. package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +265 -265
  244. package/templates/ide/antigravity/.agents/skills/dare-telemetry/SKILL.md +188 -0
  245. package/templates/ide/antigravity/.agents/skills/skill-fastapi-api/SKILL.md +343 -0
  246. package/templates/ide/antigravity/.agents/skills/skill-go-gin-api/SKILL.md +377 -0
  247. package/templates/ide/antigravity/.agents/skills/skill-mcp-server/SKILL.md +382 -0
  248. package/templates/ide/antigravity/.agents/skills/skill-nestjs-api/SKILL.md +326 -0
  249. package/templates/ide/antigravity/.agents/skills/skill-rails-api/SKILL.md +393 -0
  250. package/templates/ide/antigravity/templates/BLUEPRINT-template.md +193 -193
  251. package/templates/ide/antigravity/templates/DESIGN-template.md +129 -129
  252. package/templates/ide/antigravity/templates/TASK-SPEC-template.md +141 -141
  253. package/templates/ide/claude/.claude/commands/dare-ax.md +131 -0
  254. package/templates/ide/claude/.claude/commands/dare-blueprint.md +134 -134
  255. package/templates/ide/claude/.claude/commands/dare-bugfix-design.md +119 -0
  256. package/templates/ide/claude/.claude/commands/dare-dag-build.md +151 -151
  257. package/templates/ide/claude/.claude/commands/dare-dag-run.md +109 -109
  258. package/templates/ide/claude/.claude/commands/dare-dag-runner.md +117 -0
  259. package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -197
  260. package/templates/ide/claude/.claude/commands/dare-design.md +69 -69
  261. package/templates/ide/claude/.claude/commands/dare-dna.md +75 -0
  262. package/templates/ide/claude/.claude/commands/dare-docker.md +207 -0
  263. package/templates/ide/claude/.claude/commands/dare-execute.md +152 -152
  264. package/templates/ide/claude/.claude/commands/dare-feature-design.md +147 -0
  265. package/templates/ide/claude/.claude/commands/dare-frontend-design.md +149 -0
  266. package/templates/ide/claude/.claude/commands/dare-laravel-api.md +211 -0
  267. package/templates/ide/claude/.claude/commands/dare-layered-design.md +124 -0
  268. package/templates/ide/claude/.claude/commands/dare-llm-integration.md +148 -0
  269. package/templates/ide/claude/.claude/commands/dare-migrate.md +72 -0
  270. package/templates/ide/claude/.claude/commands/dare-quality-telemetry.md +166 -0
  271. package/templates/ide/claude/.claude/commands/dare-realtime.md +159 -0
  272. package/templates/ide/claude/.claude/commands/dare-refine.md +145 -145
  273. package/templates/ide/claude/.claude/commands/dare-reverse.md +139 -0
  274. package/templates/ide/claude/.claude/commands/dare-review.md +113 -113
  275. package/templates/ide/claude/.claude/commands/dare-rust-leptos.md +269 -269
  276. package/templates/ide/claude/.claude/commands/dare-rust-workspace.md +209 -209
  277. package/templates/ide/claude/.claude/commands/dare-security.md +232 -232
  278. package/templates/ide/claude/.claude/commands/dare-tasks.md +70 -70
  279. package/templates/ide/claude/.claude/commands/dare-telemetry.md +132 -0
  280. package/templates/ide/claude/.claude/commands/skill-fastapi-api.md +205 -0
  281. package/templates/ide/claude/.claude/commands/skill-go-gin-api.md +232 -0
  282. package/templates/ide/claude/.claude/commands/skill-mcp-server.md +228 -0
  283. package/templates/ide/claude/.claude/commands/skill-nestjs-api.md +210 -0
  284. package/templates/ide/claude/.claude/commands/skill-rails-api.md +236 -0
  285. package/templates/ide/claude/.claude/settings.example.json +35 -35
  286. package/templates/ide/claude/CLAUDE.md +146 -146
  287. package/templates/ide/claude/templates/BLUEPRINT-template.md +193 -193
  288. package/templates/ide/claude/templates/DESIGN-template.md +129 -129
  289. package/templates/ide/claude/templates/TASK-SPEC-template.md +141 -141
  290. package/templates/ide/cursor/.cursor/commands/dag-viz.md +139 -0
  291. package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +86 -86
  292. package/templates/ide/cursor/.cursor/commands/generate-design.md +35 -35
  293. package/templates/ide/cursor/.cursor/commands/generate-tasks.md +184 -184
  294. package/templates/ide/cursor/.cursor/commands/refine-task.md +107 -107
  295. package/templates/ide/cursor/.cursor/commands/review-task.md +91 -91
  296. package/templates/ide/cursor/.cursor/commands/run-dag.md +110 -110
  297. package/templates/ide/cursor/.cursor/rules/skill-ax.mdc +263 -0
  298. package/templates/ide/cursor/.cursor/rules/skill-dag-build.mdc +173 -0
  299. package/templates/ide/cursor/.cursor/rules/skill-dag-run.mdc +134 -0
  300. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +221 -221
  301. package/templates/ide/cursor/.cursor/rules/skill-dna.mdc +63 -0
  302. package/templates/ide/cursor/.cursor/rules/skill-fastapi-api.mdc +352 -0
  303. package/templates/ide/cursor/.cursor/rules/skill-frontend-design.mdc +244 -0
  304. package/templates/ide/cursor/.cursor/rules/skill-go-gin-api.mdc +371 -0
  305. package/templates/ide/cursor/.cursor/rules/skill-layered-design.mdc +266 -0
  306. package/templates/ide/cursor/.cursor/rules/skill-llm-integration.mdc +295 -0
  307. package/templates/ide/cursor/.cursor/rules/skill-mcp-server.mdc +367 -0
  308. package/templates/ide/cursor/.cursor/rules/skill-migrate.mdc +58 -0
  309. package/templates/ide/cursor/.cursor/rules/skill-nestjs-api.mdc +346 -0
  310. package/templates/ide/cursor/.cursor/rules/skill-quality-telemetry.mdc +248 -0
  311. package/templates/ide/cursor/.cursor/rules/skill-rails-api.mdc +400 -0
  312. package/templates/ide/cursor/.cursor/rules/skill-realtime.mdc +262 -0
  313. package/templates/ide/cursor/.cursor/rules/skill-reverse.mdc +107 -0
  314. package/templates/ide/cursor/.cursor/rules/skill-rust-leptos.mdc +281 -0
  315. package/templates/ide/cursor/.cursor/rules/skill-rust-workspace.mdc +312 -312
  316. package/templates/ide/cursor/.cursor/rules/skill-security.mdc +245 -245
  317. package/templates/ide/cursor/templates/BLUEPRINT-template.md +193 -193
  318. package/templates/ide/cursor/templates/DESIGN-template.md +129 -129
  319. package/templates/ide/cursor/templates/TASK-SPEC-template.md +141 -141
  320. package/templates/shared/docker-compose.yml +41 -41
  321. package/dist/__tests__/dag-runner/adapters.test.d.ts +0 -2
  322. package/dist/__tests__/dag-runner/adapters.test.d.ts.map +0 -1
  323. package/dist/__tests__/dag-runner/adapters.test.js +0 -134
  324. package/dist/__tests__/dag-runner/adapters.test.js.map +0 -1
  325. package/dist/dag-runner/adapters/antigravity.d.ts +0 -6
  326. package/dist/dag-runner/adapters/antigravity.d.ts.map +0 -1
  327. package/dist/dag-runner/adapters/antigravity.js +0 -54
  328. package/dist/dag-runner/adapters/antigravity.js.map +0 -1
  329. package/dist/dag-runner/adapters/claude.d.ts +0 -6
  330. package/dist/dag-runner/adapters/claude.d.ts.map +0 -1
  331. package/dist/dag-runner/adapters/claude.js +0 -48
  332. package/dist/dag-runner/adapters/claude.js.map +0 -1
  333. package/dist/dag-runner/adapters/cursor.d.ts +0 -6
  334. package/dist/dag-runner/adapters/cursor.d.ts.map +0 -1
  335. package/dist/dag-runner/adapters/cursor.js +0 -58
  336. package/dist/dag-runner/adapters/cursor.js.map +0 -1
  337. package/dist/dag-runner/adapters/index.d.ts +0 -46
  338. package/dist/dag-runner/adapters/index.d.ts.map +0 -1
  339. package/dist/dag-runner/adapters/index.js +0 -55
  340. package/dist/dag-runner/adapters/index.js.map +0 -1
  341. package/dist/dag-runner/utils/timeout.d.ts +0 -27
  342. package/dist/dag-runner/utils/timeout.d.ts.map +0 -1
  343. package/dist/dag-runner/utils/timeout.js +0 -55
  344. package/dist/dag-runner/utils/timeout.js.map +0 -1
@@ -0,0 +1,291 @@
1
+ /**
2
+ * Reverse-engineering fact assembly + artifact skeletons for `dare reverse`.
3
+ *
4
+ * The CLI half of `dare reverse`: it composes deterministic facts (stack +
5
+ * module graph) into `reverse-facts.json`, an `IDEIA.md` index (Phase 0
6
+ * pre-architecture) with an embedded Mermaid module map, one
7
+ * `REVERSE/module-*.md` per module, and an editable `architecture.excalidraw`.
8
+ *
9
+ * Everything semantic — inferred purpose, responsibilities, flow diagrams — is
10
+ * left as `<!-- AGENT: … -->` placeholders for the `/dare-reverse` skill to
11
+ * fill in the IDE. The CLI never calls an LLM.
12
+ *
13
+ * License: MIT (part of DARE CLI).
14
+ */
15
+ import { renderGraphMermaid, renderGraphExcalidraw, serializeExcalidraw, } from './graph-renderer.js';
16
+ /** Same palette as the DAG complexity legend, repurposed for module size. */
17
+ const SIZE_COLORS = {
18
+ LOW: { bg: '#e3f2fd', stroke: '#1976d2' }, // small — azure
19
+ MED: { bg: '#fff3e0', stroke: '#e65100' }, // medium — orange
20
+ HIGH: { bg: '#fce4ec', stroke: '#c2185b' }, // large/hotspot — pink
21
+ };
22
+ export function buildFacts(detected, graph, generatedAt) {
23
+ const totalFiles = graph.modules.reduce((s, m) => s + m.fileCount, 0);
24
+ const totalTestFiles = graph.modules.reduce((s, m) => s + m.testFileCount, 0);
25
+ const totalLoc = graph.modules.reduce((s, m) => s + m.loc, 0);
26
+ return {
27
+ generatedAt,
28
+ project: {
29
+ name: detected.name,
30
+ structure: detected.structure,
31
+ backend: detected.backend,
32
+ frontend: detected.frontend,
33
+ confidence: detected.confidence,
34
+ evidence: detected.evidence,
35
+ },
36
+ strategy: graph.strategy,
37
+ summary: {
38
+ moduleCount: graph.modules.length,
39
+ totalFiles,
40
+ totalTestFiles,
41
+ totalLoc,
42
+ },
43
+ modules: graph.modules,
44
+ };
45
+ }
46
+ // ── Diagram helpers ────────────────────────────────────────────────────────────
47
+ function moduleToGraphNode(m) {
48
+ const colors = SIZE_COLORS[m.size];
49
+ return {
50
+ id: m.id,
51
+ depends_on: m.depends_on,
52
+ labelLines: [m.name, `${m.loc} LOC · ${m.fileCount} files`, `[${m.size}]`],
53
+ bg: colors.bg,
54
+ stroke: colors.stroke,
55
+ };
56
+ }
57
+ export function renderModuleMapMermaid(facts) {
58
+ if (facts.modules.length === 0)
59
+ return '%% (no modules detected)';
60
+ return renderGraphMermaid(facts.modules.map(moduleToGraphNode), {
61
+ headerComment: `DARE reverse — ${facts.project.name} module map`,
62
+ direction: 'LR',
63
+ styling: 'inline',
64
+ });
65
+ }
66
+ export function renderArchitectureExcalidraw(facts) {
67
+ const data = renderGraphExcalidraw(facts.modules.map(moduleToGraphNode), {
68
+ source: 'dare-reverse',
69
+ });
70
+ return serializeExcalidraw(data);
71
+ }
72
+ // ── Markdown skeletons ──────────────────────────────────────────────────────────
73
+ /** Kebab id → numbered module spec filename, e.g. `module-01-auth.md`. */
74
+ export function moduleSpecFilename(index, mod) {
75
+ const num = String(index + 1).padStart(2, '0');
76
+ return `module-${num}-${mod.id}.md`;
77
+ }
78
+ export function renderIdeiaSkeleton(facts, withExcalidraw) {
79
+ const { project, summary } = facts;
80
+ const lines = [
81
+ `# IDEIA — ${project.name}`,
82
+ '',
83
+ '> ⚠️ **Rascunho INFERIDO por engenharia reversa (`dare reverse`).**',
84
+ '> Esta é a Fase 0 / pré-arquitetura. Revise e corrija antes de promover a `DESIGN.md`.',
85
+ '> Seções marcadas `<!-- AGENT -->` devem ser preenchidas por `/dare-reverse` na sua IDE.',
86
+ '> Confiança por claim: 🟢 CONFIRMED · 🟡 INFERRED · 🔴 GAP. Após marcar, rode `dare reverse --report`.',
87
+ '',
88
+ `*Gerado: ${facts.generatedAt}*`,
89
+ '',
90
+ '## Propósito Inferido',
91
+ '<!-- AGENT: descreva, em 2-4 frases, o que este software faz e por quê, com base nos módulos abaixo. -->',
92
+ '',
93
+ '## Domínio & Conceitos',
94
+ '<!-- AGENT: liste as entidades de negócio e o glossário do domínio inferidos do modelo de dados e dos nomes. -->',
95
+ '',
96
+ '## Stack Detectada',
97
+ '',
98
+ `- **Estrutura:** ${project.structure} (confiança: ${project.confidence})`,
99
+ project.backend ? `- **Backend:** ${project.backend}` : '',
100
+ project.frontend ? `- **Frontend:** ${project.frontend}` : '',
101
+ '',
102
+ '<details><summary>Evidências da detecção</summary>',
103
+ '',
104
+ ...project.evidence.map((e) => `- ${e}`),
105
+ '',
106
+ '</details>',
107
+ '',
108
+ '## Mapa de Módulos',
109
+ '',
110
+ `Estratégia de fronteira: \`${facts.strategy}\` · `
111
+ + `${summary.moduleCount} módulos · ${summary.totalFiles} arquivos · `
112
+ + `${summary.totalLoc} LOC · ${summary.totalTestFiles} arquivos de teste`,
113
+ '',
114
+ '> Cor = tamanho do módulo: 🔵 LOW · 🟠 MED · 🔴 HIGH.',
115
+ '',
116
+ '```mermaid',
117
+ renderModuleMapMermaid(facts),
118
+ '```',
119
+ '',
120
+ '| Módulo | Caminho | Tamanho | Arquivos | LOC | Depende de | Spec |',
121
+ '|---|---|---|---|---|---|---|',
122
+ ...facts.modules.map((m, i) => {
123
+ const deps = m.depends_on.length ? m.depends_on.join(', ') : '—';
124
+ const spec = moduleSpecFilename(i, m);
125
+ return `| ${m.name} | \`${m.path}\` | ${m.size} | ${m.fileCount} | ${m.loc} | ${deps} | [${spec}](./REVERSE/${spec}) |`;
126
+ }),
127
+ '',
128
+ '## Fluxo do Sistema',
129
+ '<!-- AGENT: desenhe um flowchart Mermaid (flowchart TD) do fluxo principal de request/dados ' +
130
+ 'atravessando os módulos — ex.: request → auth → domínio → persistência. -->',
131
+ '',
132
+ '```mermaid',
133
+ 'flowchart TD',
134
+ ' %% AGENT: substitua pelo fluxo real do sistema',
135
+ '```',
136
+ '',
137
+ '## Modelo de Dados (reconstruído)',
138
+ '<!-- AGENT: liste as entidades, campos-chave e relacionamentos inferidos de migrations/models. -->',
139
+ '',
140
+ '## Superfície de API',
141
+ '<!-- AGENT: liste os endpoints/contratos inferidos de rotas/controllers (método, rota, propósito). -->',
142
+ '',
143
+ '## ⚠️ Incertezas / Gaps',
144
+ '<!-- AGENT: liste o que NÃO foi possível inferir com segurança e perguntas que o humano precisa responder. -->',
145
+ '',
146
+ '## Próximos Passos',
147
+ '',
148
+ '1. Revisar este `IDEIA.md` e os specs em `REVERSE/` (marcar 🟢/🟡/🔴) e rodar `dare reverse --report`.',
149
+ withExcalidraw
150
+ ? '2. Abrir `REVERSE/architecture.excalidraw` em https://excalidraw.com para editar o mapa.'
151
+ : '2. (Diagrama Excalidraw não gerado — rode sem `--no-excalidraw` para criá-lo.)',
152
+ '3. Promover a `DESIGN.md` com `dare design` e seguir o fluxo DARE normal.',
153
+ '',
154
+ '---',
155
+ '*Fase 0 (brownfield) — DARE Method. Gerado por `dare reverse`. License: MIT.*',
156
+ ];
157
+ // Conditional lines above push '' when absent; collapse the resulting gaps.
158
+ return lines.join('\n').replace(/\n{3,}/g, '\n\n') + '\n';
159
+ }
160
+ // ── Deep (Fase 3) skeletons ─────────────────────────────────────────────────
161
+ /** C4 component view — deterministic from the module map. */
162
+ export function renderC4Component(facts) {
163
+ return [
164
+ '# C4 — Nível 3: Componentes',
165
+ '',
166
+ `*Gerado: ${facts.generatedAt}*`,
167
+ '',
168
+ '> 🟢 Derivado deterministicamente do mapa de módulos do `dare reverse`.',
169
+ '',
170
+ '```mermaid',
171
+ renderModuleMapMermaid(facts),
172
+ '```',
173
+ '',
174
+ '| Componente (módulo) | Caminho | Tamanho | Depende de |',
175
+ '|---|---|---|---|',
176
+ ...facts.modules.map((m) => `| ${m.name} | \`${m.path}\` | ${m.size} | ${m.depends_on.join(', ') || '—'} |`),
177
+ '',
178
+ '---',
179
+ '*DARE Method — C4 componentes (determinístico). License: MIT.*',
180
+ ].join('\n') + '\n';
181
+ }
182
+ function deepSkeleton(title, generatedAt, body) {
183
+ return [
184
+ `# ${title}`,
185
+ '',
186
+ `*Gerado: ${generatedAt}*`,
187
+ '',
188
+ '> ⚠️ Esqueleto inferido — preenchido por `/dare-reverse` (Fase 3). Marque 🟢/🟡/🔴 com evidência.',
189
+ '',
190
+ ...body,
191
+ '',
192
+ '---',
193
+ '*DARE Method — Fase 3 brownfield. License: MIT.*',
194
+ ].join('\n') + '\n';
195
+ }
196
+ export function renderDomainRulesSkeleton(generatedAt) {
197
+ return deepSkeleton('Regras de Negócio', generatedAt, [
198
+ '<!-- AGENT: liste as regras de negócio inferidas do código — validações, invariantes, cálculos, '
199
+ + 'políticas. Uma por linha, marcada 🟢/🟡/🔴 com `arquivo:linha`. -->',
200
+ ]);
201
+ }
202
+ export function renderStateMachinesSkeleton(generatedAt) {
203
+ return deepSkeleton('State Machines', generatedAt, [
204
+ '<!-- AGENT: para cada entidade/fluxo com estados, desenhe um stateDiagram com os estados e '
205
+ + 'transições observados no código. -->',
206
+ '',
207
+ '```mermaid',
208
+ 'stateDiagram-v2',
209
+ ' %% AGENT: substitua pelos estados/transições reais',
210
+ ' [*] --> Estado1',
211
+ '```',
212
+ ]);
213
+ }
214
+ export function renderPermissionsSkeleton(generatedAt) {
215
+ return deepSkeleton('Permissões & Autorização', generatedAt, [
216
+ '<!-- AGENT: mapeie papéis, recursos e regras de autorização (quem pode o quê), inferidos do código. -->',
217
+ '',
218
+ '| Papel | Recurso | Ação permitida | Evidência |',
219
+ '|---|---|---|---|',
220
+ '| <!-- AGENT --> | | | |',
221
+ ]);
222
+ }
223
+ export function renderC4ContextSkeleton(generatedAt) {
224
+ return deepSkeleton('C4 — Nível 1: Contexto', generatedAt, [
225
+ '<!-- AGENT: atores (usuários/sistemas) e sistemas externos que interagem com este software. -->',
226
+ '',
227
+ '```mermaid',
228
+ 'flowchart TD',
229
+ ' %% AGENT: ator --> Sistema --> sistemas externos',
230
+ '```',
231
+ ]);
232
+ }
233
+ export function renderC4ContainerSkeleton(generatedAt) {
234
+ return deepSkeleton('C4 — Nível 2: Containers', generatedAt, [
235
+ '<!-- AGENT: containers executáveis/deploys (app, API, worker, DB, cache...) e protocolos entre eles. -->',
236
+ '',
237
+ '```mermaid',
238
+ 'flowchart TD',
239
+ ' %% AGENT: containers e comunicações',
240
+ '```',
241
+ ]);
242
+ }
243
+ export function renderModuleSpecSkeleton(mod, index, total, generatedAt) {
244
+ const sampleFiles = mod.files.slice(0, 30);
245
+ const more = mod.files.length - sampleFiles.length;
246
+ const lines = [
247
+ `# Módulo: ${mod.name}`,
248
+ '',
249
+ `> Spec de engenharia reversa (${index + 1}/${total}). Parte de [\`../IDEIA.md\`](../IDEIA.md).`,
250
+ `> ⚠️ Inferido por máquina — revise. Seções \`<!-- AGENT -->\` são preenchidas por \`/dare-reverse\`.`,
251
+ '',
252
+ `*Gerado: ${generatedAt}*`,
253
+ '',
254
+ '## Fatos (determinísticos)',
255
+ '',
256
+ '> 🟢 CONFIRMED (extraído pelo scan) · 🟡 INFERRED · 🔴 GAP — marque os claims semânticos abaixo.',
257
+ '',
258
+ `- 🟢 **Caminho:** \`${mod.path}\``,
259
+ `- 🟢 **Tamanho:** ${mod.size} (${mod.loc} LOC, ${mod.fileCount} arquivos, ${mod.testFileCount} de teste)`,
260
+ `- 🟢 **Linguagens:** ${mod.languages.join(', ') || '—'}`,
261
+ `- 🟢 **Depende de:** ${mod.depends_on.length ? mod.depends_on.join(', ') : '—'}`,
262
+ '',
263
+ '## Responsabilidade',
264
+ '<!-- AGENT: em 1-3 frases, qual a responsabilidade deste módulo no sistema? -->',
265
+ '',
266
+ '## Superfície Pública',
267
+ '<!-- AGENT: liste o que este módulo expõe para os outros (funções/classes/endpoints/tipos exportados). -->',
268
+ '',
269
+ '## Como Funciona (fluxo)',
270
+ '<!-- AGENT: desenhe um sequenceDiagram do fluxo de execução típico do módulo ' +
271
+ '(entrypoint → service → repository → DB/externo). -->',
272
+ '',
273
+ '```mermaid',
274
+ 'sequenceDiagram',
275
+ ' %% AGENT: substitua pelo fluxo real do módulo',
276
+ '```',
277
+ '',
278
+ '## Dependências & Acoplamento',
279
+ '<!-- AGENT: comente o acoplamento com os módulos listados em "Depende de" e possíveis riscos. -->',
280
+ '',
281
+ '## Arquivos',
282
+ '',
283
+ ...sampleFiles.map((f) => `- \`${f}\``),
284
+ more > 0 ? `- … e mais ${more} arquivo(s) (lista completa em \`reverse-facts.json\`).` : '',
285
+ '',
286
+ '---',
287
+ '*DARE Method — engenharia reversa. License: MIT.*',
288
+ ];
289
+ return lines.join('\n').replace(/\n{3,}/g, '\n\n') + '\n';
290
+ }
291
+ //# sourceMappingURL=reverse-facts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reverse-facts.js","sourceRoot":"","sources":["../../src/utils/reverse-facts.ts"],"names":[],"mappings":"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"}