@hivehub/rulebook 1.2.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 (379) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +539 -0
  3. package/dist/agents/claude-code.d.ts +69 -0
  4. package/dist/agents/claude-code.d.ts.map +1 -0
  5. package/dist/agents/claude-code.js +180 -0
  6. package/dist/agents/claude-code.js.map +1 -0
  7. package/dist/agents/cursor-agent.d.ts +184 -0
  8. package/dist/agents/cursor-agent.d.ts.map +1 -0
  9. package/dist/agents/cursor-agent.js +299 -0
  10. package/dist/agents/cursor-agent.js.map +1 -0
  11. package/dist/agents/gemini-cli.d.ts +69 -0
  12. package/dist/agents/gemini-cli.d.ts.map +1 -0
  13. package/dist/agents/gemini-cli.js +180 -0
  14. package/dist/agents/gemini-cli.js.map +1 -0
  15. package/dist/cli/commands.d.ts +57 -0
  16. package/dist/cli/commands.d.ts.map +1 -0
  17. package/dist/cli/commands.js +1370 -0
  18. package/dist/cli/commands.js.map +1 -0
  19. package/dist/cli/docs-prompts.d.ts +3 -0
  20. package/dist/cli/docs-prompts.d.ts.map +1 -0
  21. package/dist/cli/docs-prompts.js +45 -0
  22. package/dist/cli/docs-prompts.js.map +1 -0
  23. package/dist/cli/prompts.d.ts +6 -0
  24. package/dist/cli/prompts.d.ts.map +1 -0
  25. package/dist/cli/prompts.js +376 -0
  26. package/dist/cli/prompts.js.map +1 -0
  27. package/dist/core/agent-manager.d.ts +89 -0
  28. package/dist/core/agent-manager.d.ts.map +1 -0
  29. package/dist/core/agent-manager.js +546 -0
  30. package/dist/core/agent-manager.js.map +1 -0
  31. package/dist/core/auto-fixer.d.ts +14 -0
  32. package/dist/core/auto-fixer.d.ts.map +1 -0
  33. package/dist/core/auto-fixer.js +207 -0
  34. package/dist/core/auto-fixer.js.map +1 -0
  35. package/dist/core/changelog-generator.d.ts +44 -0
  36. package/dist/core/changelog-generator.d.ts.map +1 -0
  37. package/dist/core/changelog-generator.js +222 -0
  38. package/dist/core/changelog-generator.js.map +1 -0
  39. package/dist/core/cli-bridge.d.ts +113 -0
  40. package/dist/core/cli-bridge.d.ts.map +1 -0
  41. package/dist/core/cli-bridge.js +1094 -0
  42. package/dist/core/cli-bridge.js.map +1 -0
  43. package/dist/core/config-manager.d.ts +65 -0
  44. package/dist/core/config-manager.d.ts.map +1 -0
  45. package/dist/core/config-manager.js +266 -0
  46. package/dist/core/config-manager.js.map +1 -0
  47. package/dist/core/coverage-checker.d.ts +14 -0
  48. package/dist/core/coverage-checker.d.ts.map +1 -0
  49. package/dist/core/coverage-checker.js +176 -0
  50. package/dist/core/coverage-checker.js.map +1 -0
  51. package/dist/core/custom-templates.d.ts +27 -0
  52. package/dist/core/custom-templates.d.ts.map +1 -0
  53. package/dist/core/custom-templates.js +122 -0
  54. package/dist/core/custom-templates.js.map +1 -0
  55. package/dist/core/dependency-checker.d.ts +21 -0
  56. package/dist/core/dependency-checker.d.ts.map +1 -0
  57. package/dist/core/dependency-checker.js +247 -0
  58. package/dist/core/dependency-checker.js.map +1 -0
  59. package/dist/core/detector.d.ts +3 -0
  60. package/dist/core/detector.d.ts.map +1 -0
  61. package/dist/core/detector.js +1443 -0
  62. package/dist/core/detector.js.map +1 -0
  63. package/dist/core/docs-generator.d.ts +9 -0
  64. package/dist/core/docs-generator.d.ts.map +1 -0
  65. package/dist/core/docs-generator.js +531 -0
  66. package/dist/core/docs-generator.js.map +1 -0
  67. package/dist/core/generator.d.ts +16 -0
  68. package/dist/core/generator.d.ts.map +1 -0
  69. package/dist/core/generator.js +561 -0
  70. package/dist/core/generator.js.map +1 -0
  71. package/dist/core/gitignore-generator.d.ts +13 -0
  72. package/dist/core/gitignore-generator.d.ts.map +1 -0
  73. package/dist/core/gitignore-generator.js +307 -0
  74. package/dist/core/gitignore-generator.js.map +1 -0
  75. package/dist/core/health-scorer.d.ts +22 -0
  76. package/dist/core/health-scorer.d.ts.map +1 -0
  77. package/dist/core/health-scorer.js +395 -0
  78. package/dist/core/health-scorer.js.map +1 -0
  79. package/dist/core/logger.d.ts +116 -0
  80. package/dist/core/logger.d.ts.map +1 -0
  81. package/dist/core/logger.js +289 -0
  82. package/dist/core/logger.js.map +1 -0
  83. package/dist/core/merger.d.ts +6 -0
  84. package/dist/core/merger.d.ts.map +1 -0
  85. package/dist/core/merger.js +131 -0
  86. package/dist/core/merger.js.map +1 -0
  87. package/dist/core/migrator.d.ts +19 -0
  88. package/dist/core/migrator.d.ts.map +1 -0
  89. package/dist/core/migrator.js +102 -0
  90. package/dist/core/migrator.js.map +1 -0
  91. package/dist/core/minimal-scaffolder.d.ts +8 -0
  92. package/dist/core/minimal-scaffolder.d.ts.map +1 -0
  93. package/dist/core/minimal-scaffolder.js +51 -0
  94. package/dist/core/minimal-scaffolder.js.map +1 -0
  95. package/dist/core/modern-console-new.d.ts +81 -0
  96. package/dist/core/modern-console-new.d.ts.map +1 -0
  97. package/dist/core/modern-console-new.js +340 -0
  98. package/dist/core/modern-console-new.js.map +1 -0
  99. package/dist/core/modern-console.d.ts +99 -0
  100. package/dist/core/modern-console.d.ts.map +1 -0
  101. package/dist/core/modern-console.js +568 -0
  102. package/dist/core/modern-console.js.map +1 -0
  103. package/dist/core/openspec-manager.d.ts +133 -0
  104. package/dist/core/openspec-manager.d.ts.map +1 -0
  105. package/dist/core/openspec-manager.js +605 -0
  106. package/dist/core/openspec-manager.js.map +1 -0
  107. package/dist/core/openspec-migrator.d.ts +27 -0
  108. package/dist/core/openspec-migrator.d.ts.map +1 -0
  109. package/dist/core/openspec-migrator.js +255 -0
  110. package/dist/core/openspec-migrator.js.map +1 -0
  111. package/dist/core/task-manager.d.ts +65 -0
  112. package/dist/core/task-manager.d.ts.map +1 -0
  113. package/dist/core/task-manager.js +318 -0
  114. package/dist/core/task-manager.js.map +1 -0
  115. package/dist/core/test-task-manager.d.ts +49 -0
  116. package/dist/core/test-task-manager.d.ts.map +1 -0
  117. package/dist/core/test-task-manager.js +121 -0
  118. package/dist/core/test-task-manager.js.map +1 -0
  119. package/dist/core/validator.d.ts +21 -0
  120. package/dist/core/validator.d.ts.map +1 -0
  121. package/dist/core/validator.js +177 -0
  122. package/dist/core/validator.js.map +1 -0
  123. package/dist/core/version-bumper.d.ts +19 -0
  124. package/dist/core/version-bumper.d.ts.map +1 -0
  125. package/dist/core/version-bumper.js +180 -0
  126. package/dist/core/version-bumper.js.map +1 -0
  127. package/dist/core/watcher.d.ts +9 -0
  128. package/dist/core/watcher.d.ts.map +1 -0
  129. package/dist/core/watcher.js +22 -0
  130. package/dist/core/watcher.js.map +1 -0
  131. package/dist/core/workflow-generator.d.ts +10 -0
  132. package/dist/core/workflow-generator.d.ts.map +1 -0
  133. package/dist/core/workflow-generator.js +279 -0
  134. package/dist/core/workflow-generator.js.map +1 -0
  135. package/dist/index.d.ts +3 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +159 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/mcp/handlers/archive-task.d.ts +17 -0
  140. package/dist/mcp/handlers/archive-task.d.ts.map +1 -0
  141. package/dist/mcp/handlers/archive-task.js +36 -0
  142. package/dist/mcp/handlers/archive-task.js.map +1 -0
  143. package/dist/mcp/handlers/create-task.d.ts +17 -0
  144. package/dist/mcp/handlers/create-task.d.ts.map +1 -0
  145. package/dist/mcp/handlers/create-task.js +56 -0
  146. package/dist/mcp/handlers/create-task.js.map +1 -0
  147. package/dist/mcp/handlers/list-tasks.d.ts +22 -0
  148. package/dist/mcp/handlers/list-tasks.d.ts.map +1 -0
  149. package/dist/mcp/handlers/list-tasks.js +42 -0
  150. package/dist/mcp/handlers/list-tasks.js.map +1 -0
  151. package/dist/mcp/handlers/show-task.d.ts +25 -0
  152. package/dist/mcp/handlers/show-task.d.ts.map +1 -0
  153. package/dist/mcp/handlers/show-task.js +43 -0
  154. package/dist/mcp/handlers/show-task.js.map +1 -0
  155. package/dist/mcp/handlers/update-task.d.ts +17 -0
  156. package/dist/mcp/handlers/update-task.d.ts.map +1 -0
  157. package/dist/mcp/handlers/update-task.js +35 -0
  158. package/dist/mcp/handlers/update-task.js.map +1 -0
  159. package/dist/mcp/handlers/validate-task.d.ts +15 -0
  160. package/dist/mcp/handlers/validate-task.d.ts.map +1 -0
  161. package/dist/mcp/handlers/validate-task.js +27 -0
  162. package/dist/mcp/handlers/validate-task.js.map +1 -0
  163. package/dist/mcp/rulebook-config.d.ts +22 -0
  164. package/dist/mcp/rulebook-config.d.ts.map +1 -0
  165. package/dist/mcp/rulebook-config.js +65 -0
  166. package/dist/mcp/rulebook-config.js.map +1 -0
  167. package/dist/mcp/rulebook-server.d.ts +4 -0
  168. package/dist/mcp/rulebook-server.d.ts.map +1 -0
  169. package/dist/mcp/rulebook-server.js +246 -0
  170. package/dist/mcp/rulebook-server.js.map +1 -0
  171. package/dist/types.d.ts +190 -0
  172. package/dist/types.d.ts.map +1 -0
  173. package/dist/types.js +2 -0
  174. package/dist/types.js.map +1 -0
  175. package/dist/utils/file-system.d.ts +9 -0
  176. package/dist/utils/file-system.d.ts.map +1 -0
  177. package/dist/utils/file-system.js +51 -0
  178. package/dist/utils/file-system.js.map +1 -0
  179. package/dist/utils/git-hooks.d.ts +8 -0
  180. package/dist/utils/git-hooks.d.ts.map +1 -0
  181. package/dist/utils/git-hooks.js +440 -0
  182. package/dist/utils/git-hooks.js.map +1 -0
  183. package/dist/utils/rulesignore.d.ts +9 -0
  184. package/dist/utils/rulesignore.d.ts.map +1 -0
  185. package/dist/utils/rulesignore.js +42 -0
  186. package/dist/utils/rulesignore.js.map +1 -0
  187. package/package.json +106 -0
  188. package/templates/cli/AIDER.md +49 -0
  189. package/templates/cli/AMAZON_Q.md +25 -0
  190. package/templates/cli/AUGGIE.md +32 -0
  191. package/templates/cli/CLAUDE.md +32 -0
  192. package/templates/cli/CLAUDE_CODE.md +35 -0
  193. package/templates/cli/CLINE.md +32 -0
  194. package/templates/cli/CODEBUDDY.md +20 -0
  195. package/templates/cli/CODEIUM.md +20 -0
  196. package/templates/cli/CODEX.md +21 -0
  197. package/templates/cli/CONTINUE.md +34 -0
  198. package/templates/cli/CURSOR_CLI.md +28 -0
  199. package/templates/cli/FACTORY.md +18 -0
  200. package/templates/cli/GEMINI.md +35 -0
  201. package/templates/cli/KILOCODE.md +18 -0
  202. package/templates/cli/OPENCODE.md +18 -0
  203. package/templates/cli/_GENERIC_TEMPLATE.md +29 -0
  204. package/templates/commands/rulebook-task-apply.md +67 -0
  205. package/templates/commands/rulebook-task-archive.md +70 -0
  206. package/templates/commands/rulebook-task-create.md +93 -0
  207. package/templates/commands/rulebook-task-list.md +42 -0
  208. package/templates/commands/rulebook-task-show.md +52 -0
  209. package/templates/commands/rulebook-task-validate.md +53 -0
  210. package/templates/core/AGENT_AUTOMATION.md +184 -0
  211. package/templates/core/DAG.md +304 -0
  212. package/templates/core/DOCUMENTATION_RULES.md +37 -0
  213. package/templates/core/QUALITY_ENFORCEMENT.md +68 -0
  214. package/templates/core/RULEBOOK.md +1874 -0
  215. package/templates/frameworks/ANGULAR.md +36 -0
  216. package/templates/frameworks/DJANGO.md +83 -0
  217. package/templates/frameworks/ELECTRON.md +147 -0
  218. package/templates/frameworks/FLASK.md +38 -0
  219. package/templates/frameworks/FLUTTER.md +55 -0
  220. package/templates/frameworks/JQUERY.md +32 -0
  221. package/templates/frameworks/LARAVEL.md +38 -0
  222. package/templates/frameworks/NESTJS.md +43 -0
  223. package/templates/frameworks/NEXTJS.md +127 -0
  224. package/templates/frameworks/NUXT.md +40 -0
  225. package/templates/frameworks/RAILS.md +66 -0
  226. package/templates/frameworks/REACT.md +38 -0
  227. package/templates/frameworks/REACT_NATIVE.md +47 -0
  228. package/templates/frameworks/SPRING.md +39 -0
  229. package/templates/frameworks/SYMFONY.md +36 -0
  230. package/templates/frameworks/VUE.md +36 -0
  231. package/templates/frameworks/ZEND.md +35 -0
  232. package/templates/git/CI_CD_PATTERNS.md +661 -0
  233. package/templates/git/GITHUB_ACTIONS.md +728 -0
  234. package/templates/git/GITLAB_CI.md +730 -0
  235. package/templates/git/GIT_WORKFLOW.md +1157 -0
  236. package/templates/git/SECRETS_MANAGEMENT.md +585 -0
  237. package/templates/hooks/COMMIT_MSG.md +530 -0
  238. package/templates/hooks/POST_CHECKOUT.md +546 -0
  239. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -0
  240. package/templates/hooks/PRE_COMMIT.md +414 -0
  241. package/templates/hooks/PRE_PUSH.md +601 -0
  242. package/templates/hooks/csharp-pre-commit.sh +23 -0
  243. package/templates/hooks/csharp-pre-push.sh +23 -0
  244. package/templates/hooks/dart-pre-commit.sh +30 -0
  245. package/templates/hooks/dart-pre-push.sh +25 -0
  246. package/templates/hooks/elixir-pre-commit.sh +32 -0
  247. package/templates/hooks/elixir-pre-push.sh +31 -0
  248. package/templates/hooks/erlang-pre-commit.sh +30 -0
  249. package/templates/hooks/erlang-pre-push.sh +37 -0
  250. package/templates/hooks/go-pre-commit.sh +40 -0
  251. package/templates/hooks/go-pre-push.sh +31 -0
  252. package/templates/hooks/haskell-pre-commit.sh +41 -0
  253. package/templates/hooks/haskell-pre-push.sh +37 -0
  254. package/templates/hooks/java-pre-commit.sh +34 -0
  255. package/templates/hooks/java-pre-push.sh +24 -0
  256. package/templates/hooks/kotlin-pre-commit.sh +32 -0
  257. package/templates/hooks/kotlin-pre-push.sh +16 -0
  258. package/templates/hooks/php-pre-commit.sh +36 -0
  259. package/templates/hooks/php-pre-push.sh +26 -0
  260. package/templates/hooks/python-pre-commit.sh +51 -0
  261. package/templates/hooks/python-pre-push.sh +25 -0
  262. package/templates/hooks/ruby-pre-commit.sh +33 -0
  263. package/templates/hooks/ruby-pre-push.sh +32 -0
  264. package/templates/hooks/rust-pre-commit.sh +30 -0
  265. package/templates/hooks/rust-pre-push.sh +30 -0
  266. package/templates/hooks/scala-pre-commit.sh +32 -0
  267. package/templates/hooks/scala-pre-push.sh +24 -0
  268. package/templates/hooks/swift-pre-commit.sh +25 -0
  269. package/templates/hooks/swift-pre-push.sh +23 -0
  270. package/templates/hooks/typescript-pre-commit.sh +37 -0
  271. package/templates/hooks/typescript-pre-push.sh +36 -0
  272. package/templates/ides/COPILOT.md +37 -0
  273. package/templates/ides/CURSOR.md +43 -0
  274. package/templates/ides/JETBRAINS_AI.md +35 -0
  275. package/templates/ides/REPLIT.md +36 -0
  276. package/templates/ides/TABNINE.md +29 -0
  277. package/templates/ides/VSCODE.md +40 -0
  278. package/templates/ides/WINDSURF.md +36 -0
  279. package/templates/ides/ZED.md +32 -0
  280. package/templates/languages/ADA.md +58 -0
  281. package/templates/languages/C.md +333 -0
  282. package/templates/languages/CPP.md +743 -0
  283. package/templates/languages/CSHARP.md +417 -0
  284. package/templates/languages/DART.md +332 -0
  285. package/templates/languages/ELIXIR.md +454 -0
  286. package/templates/languages/ERLANG.md +361 -0
  287. package/templates/languages/GO.md +645 -0
  288. package/templates/languages/HASKELL.md +177 -0
  289. package/templates/languages/JAVA.md +607 -0
  290. package/templates/languages/JAVASCRIPT.md +631 -0
  291. package/templates/languages/JULIA.md +97 -0
  292. package/templates/languages/KOTLIN.md +511 -0
  293. package/templates/languages/LISP.md +100 -0
  294. package/templates/languages/LUA.md +74 -0
  295. package/templates/languages/OBJECTIVEC.md +90 -0
  296. package/templates/languages/PHP.md +416 -0
  297. package/templates/languages/PYTHON.md +682 -0
  298. package/templates/languages/R.md +350 -0
  299. package/templates/languages/RUBY.md +421 -0
  300. package/templates/languages/RUST.md +477 -0
  301. package/templates/languages/SAS.md +73 -0
  302. package/templates/languages/SCALA.md +348 -0
  303. package/templates/languages/SOLIDITY.md +580 -0
  304. package/templates/languages/SQL.md +137 -0
  305. package/templates/languages/SWIFT.md +466 -0
  306. package/templates/languages/TYPESCRIPT.md +591 -0
  307. package/templates/languages/ZIG.md +265 -0
  308. package/templates/modules/ATLASSIAN.md +255 -0
  309. package/templates/modules/CONTEXT7.md +54 -0
  310. package/templates/modules/FIGMA.md +267 -0
  311. package/templates/modules/GITHUB_MCP.md +64 -0
  312. package/templates/modules/GRAFANA.md +328 -0
  313. package/templates/modules/NOTION.md +247 -0
  314. package/templates/modules/PLAYWRIGHT.md +90 -0
  315. package/templates/modules/RULEBOOK_MCP.md +156 -0
  316. package/templates/modules/SERENA.md +337 -0
  317. package/templates/modules/SUPABASE.md +223 -0
  318. package/templates/modules/SYNAP.md +69 -0
  319. package/templates/modules/VECTORIZER.md +63 -0
  320. package/templates/services/AZURE_BLOB.md +184 -0
  321. package/templates/services/CASSANDRA.md +239 -0
  322. package/templates/services/DYNAMODB.md +308 -0
  323. package/templates/services/ELASTICSEARCH.md +347 -0
  324. package/templates/services/GCS.md +178 -0
  325. package/templates/services/INFLUXDB.md +265 -0
  326. package/templates/services/KAFKA.md +341 -0
  327. package/templates/services/MARIADB.md +183 -0
  328. package/templates/services/MEMCACHED.md +242 -0
  329. package/templates/services/MINIO.md +201 -0
  330. package/templates/services/MONGODB.md +268 -0
  331. package/templates/services/MYSQL.md +358 -0
  332. package/templates/services/NEO4J.md +247 -0
  333. package/templates/services/ORACLE.md +290 -0
  334. package/templates/services/POSTGRESQL.md +326 -0
  335. package/templates/services/RABBITMQ.md +286 -0
  336. package/templates/services/REDIS.md +292 -0
  337. package/templates/services/S3.md +298 -0
  338. package/templates/services/SQLITE.md +294 -0
  339. package/templates/services/SQLSERVER.md +294 -0
  340. package/templates/workflows/codespell.yml +31 -0
  341. package/templates/workflows/cpp-lint.yml +47 -0
  342. package/templates/workflows/cpp-publish.yml +119 -0
  343. package/templates/workflows/cpp-test.yml +77 -0
  344. package/templates/workflows/dotnet-lint.yml +29 -0
  345. package/templates/workflows/dotnet-publish.yml +40 -0
  346. package/templates/workflows/dotnet-test.yml +41 -0
  347. package/templates/workflows/elixir-lint.yml +45 -0
  348. package/templates/workflows/elixir-publish.yml +49 -0
  349. package/templates/workflows/elixir-test.yml +54 -0
  350. package/templates/workflows/erlang-lint.yml +47 -0
  351. package/templates/workflows/erlang-test.yml +62 -0
  352. package/templates/workflows/go-lint.yml +39 -0
  353. package/templates/workflows/go-publish.yml +95 -0
  354. package/templates/workflows/go-test.yml +59 -0
  355. package/templates/workflows/java-lint.yml +60 -0
  356. package/templates/workflows/java-publish.yml +120 -0
  357. package/templates/workflows/java-test.yml +85 -0
  358. package/templates/workflows/kotlin-lint.yml +34 -0
  359. package/templates/workflows/kotlin-publish.yml +56 -0
  360. package/templates/workflows/kotlin-test.yml +48 -0
  361. package/templates/workflows/php-lint.yml +39 -0
  362. package/templates/workflows/php-publish.yml +50 -0
  363. package/templates/workflows/php-test.yml +54 -0
  364. package/templates/workflows/python-lint.yml +47 -0
  365. package/templates/workflows/python-publish.yml +91 -0
  366. package/templates/workflows/python-test.yml +59 -0
  367. package/templates/workflows/rust-lint.yml +54 -0
  368. package/templates/workflows/rust-publish.yml +66 -0
  369. package/templates/workflows/rust-test.yml +75 -0
  370. package/templates/workflows/solidity-lint.yml +41 -0
  371. package/templates/workflows/solidity-test.yml +47 -0
  372. package/templates/workflows/swift-lint.yml +32 -0
  373. package/templates/workflows/swift-publish.yml +58 -0
  374. package/templates/workflows/swift-test.yml +44 -0
  375. package/templates/workflows/typescript-lint.yml +61 -0
  376. package/templates/workflows/typescript-publish.yml +60 -0
  377. package/templates/workflows/typescript-test.yml +73 -0
  378. package/templates/workflows/zig-lint.yml +27 -0
  379. package/templates/workflows/zig-test.yml +40 -0
@@ -0,0 +1,14 @@
1
+ export interface AutoFixResult {
2
+ applied: string[];
3
+ failed: string[];
4
+ skipped: string[];
5
+ }
6
+ /**
7
+ * Auto-fix common issues in the project
8
+ */
9
+ export declare function autoFixProject(projectDir: string): Promise<AutoFixResult>;
10
+ /**
11
+ * Fix lint errors automatically
12
+ */
13
+ export declare function autoFixLint(projectDir: string): Promise<boolean>;
14
+ //# sourceMappingURL=auto-fixer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-fixer.d.ts","sourceRoot":"","sources":["../../src/core/auto-fixer.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAkK/E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA+BtE"}
@@ -0,0 +1,207 @@
1
+ import { fileExists, readFile, writeFile } from '../utils/file-system.js';
2
+ import path from 'path';
3
+ import { exec } from 'child_process';
4
+ import { promisify } from 'util';
5
+ const execAsync = promisify(exec);
6
+ /**
7
+ * Auto-fix common issues in the project
8
+ */
9
+ export async function autoFixProject(projectDir) {
10
+ const result = {
11
+ applied: [],
12
+ failed: [],
13
+ skipped: [],
14
+ };
15
+ // Fix 1: Add .gitignore if missing
16
+ const gitignorePath = path.join(projectDir, '.gitignore');
17
+ if (!(await fileExists(gitignorePath))) {
18
+ const gitignoreContent = `# Dependencies
19
+ node_modules/
20
+ target/
21
+ dist/
22
+ build/
23
+ *.egg-info/
24
+ __pycache__/
25
+
26
+ # IDEs
27
+ .vscode/
28
+ .idea/
29
+ *.swp
30
+ *.swo
31
+
32
+ # Environment
33
+ .env
34
+ .env.local
35
+
36
+ # OS
37
+ .DS_Store
38
+ Thumbs.db
39
+
40
+ # Logs
41
+ *.log
42
+ npm-debug.log*
43
+
44
+ # Coverage
45
+ coverage/
46
+ .nyc_output/
47
+ *.lcov
48
+
49
+ # Build outputs
50
+ *.o
51
+ *.so
52
+ *.dylib
53
+ *.dll
54
+ *.exe
55
+ `;
56
+ try {
57
+ await writeFile(gitignorePath, gitignoreContent);
58
+ result.applied.push('Created .gitignore');
59
+ }
60
+ catch {
61
+ result.failed.push('Failed to create .gitignore');
62
+ }
63
+ }
64
+ else {
65
+ result.skipped.push('.gitignore already exists');
66
+ }
67
+ // Fix 2: Add LICENSE if missing
68
+ const licensePath = path.join(projectDir, 'LICENSE');
69
+ if (!(await fileExists(licensePath))) {
70
+ const licenseContent = `Apache License
71
+ Version 2.0, January 2004
72
+ http://www.apache.org/licenses/
73
+
74
+ Copyright ${new Date().getFullYear()} [Project Name]
75
+
76
+ Licensed under the Apache License, Version 2.0 (the "License");
77
+ you may not use this file except in compliance with the License.
78
+ You may obtain a copy of the License at
79
+
80
+ http://www.apache.org/licenses/LICENSE-2.0
81
+
82
+ Unless required by applicable law or agreed to in writing, software
83
+ distributed under the License is distributed on an "AS IS" BASIS,
84
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
85
+ See the License for the specific language governing permissions and
86
+ limitations under the License.
87
+ `;
88
+ try {
89
+ await writeFile(licensePath, licenseContent);
90
+ result.applied.push('Created LICENSE (Apache-2.0)');
91
+ }
92
+ catch {
93
+ result.failed.push('Failed to create LICENSE');
94
+ }
95
+ }
96
+ else {
97
+ result.skipped.push('LICENSE already exists');
98
+ }
99
+ // Fix 3: Format code if formatters are available
100
+ const packageJsonPath = path.join(projectDir, 'package.json');
101
+ if (await fileExists(packageJsonPath)) {
102
+ try {
103
+ const packageContent = await readFile(packageJsonPath);
104
+ const pkg = JSON.parse(packageContent);
105
+ if (pkg.scripts?.format) {
106
+ await execAsync('npm run format', { cwd: projectDir });
107
+ result.applied.push('Formatted code with npm run format');
108
+ }
109
+ else {
110
+ result.skipped.push('No format script found in package.json');
111
+ }
112
+ }
113
+ catch (error) {
114
+ result.failed.push('Failed to format code: ' + error.message);
115
+ }
116
+ }
117
+ // Fix 4: Add README.md if missing
118
+ const readmePath = path.join(projectDir, 'README.md');
119
+ if (!(await fileExists(readmePath))) {
120
+ const readmeContent = `# Project Name
121
+
122
+ Brief description of your project.
123
+
124
+ ## Installation
125
+
126
+ \`\`\`bash
127
+ npm install
128
+ \`\`\`
129
+
130
+ ## Usage
131
+
132
+ \`\`\`bash
133
+ npm start
134
+ \`\`\`
135
+
136
+ ## Development
137
+
138
+ \`\`\`bash
139
+ npm test
140
+ npm run lint
141
+ npm run build
142
+ \`\`\`
143
+
144
+ ## License
145
+
146
+ MIT - See LICENSE file for details.
147
+ `;
148
+ try {
149
+ await writeFile(readmePath, readmeContent);
150
+ result.applied.push('Created README.md');
151
+ }
152
+ catch {
153
+ result.failed.push('Failed to create README.md');
154
+ }
155
+ }
156
+ else {
157
+ result.skipped.push('README.md already exists');
158
+ }
159
+ // Fix 5: Create /docs directory if strict docs enabled
160
+ const docsDir = path.join(projectDir, 'docs');
161
+ if (!(await fileExists(docsDir))) {
162
+ try {
163
+ await execAsync(`mkdir -p "${docsDir}"`, { cwd: projectDir });
164
+ result.applied.push('Created /docs directory');
165
+ }
166
+ catch {
167
+ result.failed.push('Failed to create /docs directory');
168
+ }
169
+ }
170
+ else {
171
+ result.skipped.push('/docs directory already exists');
172
+ }
173
+ return result;
174
+ }
175
+ /**
176
+ * Fix lint errors automatically
177
+ */
178
+ export async function autoFixLint(projectDir) {
179
+ const packageJsonPath = path.join(projectDir, 'package.json');
180
+ if (await fileExists(packageJsonPath)) {
181
+ try {
182
+ const packageContent = await readFile(packageJsonPath);
183
+ const pkg = JSON.parse(packageContent);
184
+ if (pkg.scripts?.['lint:fix']) {
185
+ await execAsync('npm run lint:fix', { cwd: projectDir });
186
+ return true;
187
+ }
188
+ if (pkg.scripts?.lint) {
189
+ await execAsync('npm run lint -- --fix', { cwd: projectDir });
190
+ return true;
191
+ }
192
+ }
193
+ catch {
194
+ return false;
195
+ }
196
+ }
197
+ // Try common fix commands
198
+ try {
199
+ await execAsync('npx eslint . --fix', { cwd: projectDir });
200
+ return true;
201
+ }
202
+ catch {
203
+ // Ignore
204
+ }
205
+ return false;
206
+ }
207
+ //# sourceMappingURL=auto-fixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-fixer.js","sourceRoot":"","sources":["../../src/core/auto-fixer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ export interface Commit {
2
+ hash: string;
3
+ type: string;
4
+ scope?: string;
5
+ subject: string;
6
+ body?: string;
7
+ breaking: boolean;
8
+ }
9
+ export interface ChangelogSection {
10
+ version: string;
11
+ date: string;
12
+ added: string[];
13
+ changed: string[];
14
+ fixed: string[];
15
+ removed: string[];
16
+ deprecated: string[];
17
+ security: string[];
18
+ breaking: string[];
19
+ }
20
+ /**
21
+ * Get commits since last tag
22
+ */
23
+ export declare function getCommitsSinceLastTag(projectDir: string): Promise<Commit[]>;
24
+ /**
25
+ * Generate changelog section from commits
26
+ */
27
+ export declare function generateChangelogSection(commits: Commit[], version: string): ChangelogSection;
28
+ /**
29
+ * Format changelog section as markdown
30
+ */
31
+ export declare function formatChangelogSection(section: ChangelogSection): string;
32
+ /**
33
+ * Update CHANGELOG.md with new version
34
+ */
35
+ export declare function updateChangelog(projectDir: string, section: ChangelogSection): Promise<void>;
36
+ /**
37
+ * Get current version from project
38
+ */
39
+ export declare function getCurrentVersion(projectDir: string): Promise<string | null>;
40
+ /**
41
+ * Generate changelog for current version
42
+ */
43
+ export declare function generateChangelog(projectDir: string, version: string): Promise<ChangelogSection>;
44
+ //# sourceMappingURL=changelog-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog-generator.d.ts","sourceRoot":"","sources":["../../src/core/changelog-generator.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAyBD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0ClF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAsD7F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAwDxE;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAElF;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAM3B"}
@@ -0,0 +1,222 @@
1
+ import { exec } from 'child_process';
2
+ import { promisify } from 'util';
3
+ import { readFile, writeFile, fileExists } from '../utils/file-system.js';
4
+ import { getCurrentVersion as getVersionFromBumper } from './version-bumper.js';
5
+ import path from 'path';
6
+ const execAsync = promisify(exec);
7
+ /**
8
+ * Parse conventional commit message
9
+ */
10
+ function parseCommit(message, hash) {
11
+ // Conventional commit format: type(scope): subject
12
+ const match = message.match(/^(\w+)(?:\(([^)]+)\))?: (.+)$/);
13
+ if (!match) {
14
+ return null;
15
+ }
16
+ const [, type, scope, subject] = match;
17
+ const breaking = message.includes('BREAKING CHANGE') || subject.startsWith('!');
18
+ return {
19
+ hash,
20
+ type,
21
+ scope,
22
+ subject: subject.replace(/^!/, '').trim(),
23
+ breaking,
24
+ };
25
+ }
26
+ /**
27
+ * Get commits since last tag
28
+ */
29
+ export async function getCommitsSinceLastTag(projectDir) {
30
+ try {
31
+ // Get last tag
32
+ const { stdout: lastTag } = await execAsync('git describe --tags --abbrev=0', {
33
+ cwd: projectDir,
34
+ });
35
+ // Get commits since last tag
36
+ const { stdout } = await execAsync(`git log ${lastTag.trim()}..HEAD --pretty=format:"%H|||%s"`, { cwd: projectDir });
37
+ if (!stdout.trim()) {
38
+ return [];
39
+ }
40
+ return stdout
41
+ .trim()
42
+ .split('\n')
43
+ .map((line) => {
44
+ const [hash, message] = line.split('|||');
45
+ return parseCommit(message, hash);
46
+ })
47
+ .filter((commit) => commit !== null);
48
+ }
49
+ catch {
50
+ // No tags yet, get all commits
51
+ try {
52
+ const { stdout } = await execAsync('git log --pretty=format:"%H|||%s"', { cwd: projectDir });
53
+ return stdout
54
+ .trim()
55
+ .split('\n')
56
+ .map((line) => {
57
+ const [hash, message] = line.split('|||');
58
+ return parseCommit(message, hash);
59
+ })
60
+ .filter((commit) => commit !== null);
61
+ }
62
+ catch {
63
+ return [];
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * Generate changelog section from commits
69
+ */
70
+ export function generateChangelogSection(commits, version) {
71
+ const section = {
72
+ version,
73
+ date: new Date().toISOString().split('T')[0],
74
+ added: [],
75
+ changed: [],
76
+ fixed: [],
77
+ removed: [],
78
+ deprecated: [],
79
+ security: [],
80
+ breaking: [],
81
+ };
82
+ for (const commit of commits) {
83
+ const entry = commit.scope ? `**${commit.scope}**: ${commit.subject}` : commit.subject;
84
+ if (commit.breaking) {
85
+ section.breaking.push(entry);
86
+ }
87
+ switch (commit.type) {
88
+ case 'feat':
89
+ section.added.push(entry);
90
+ break;
91
+ case 'fix':
92
+ section.fixed.push(entry);
93
+ break;
94
+ case 'refactor':
95
+ case 'perf':
96
+ section.changed.push(entry);
97
+ break;
98
+ case 'docs':
99
+ // Skip docs commits in changelog
100
+ break;
101
+ case 'style':
102
+ // Skip style commits
103
+ break;
104
+ case 'test':
105
+ // Skip test commits
106
+ break;
107
+ case 'build':
108
+ case 'ci':
109
+ case 'chore':
110
+ // Skip chore commits unless breaking
111
+ if (commit.breaking) {
112
+ section.changed.push(entry);
113
+ }
114
+ break;
115
+ default:
116
+ section.changed.push(entry);
117
+ }
118
+ }
119
+ return section;
120
+ }
121
+ /**
122
+ * Format changelog section as markdown
123
+ */
124
+ export function formatChangelogSection(section) {
125
+ const lines = [];
126
+ lines.push(`## [${section.version}] - ${section.date}`);
127
+ lines.push('');
128
+ if (section.breaking.length > 0) {
129
+ lines.push('### ⚠️ BREAKING CHANGES');
130
+ lines.push('');
131
+ section.breaking.forEach((item) => lines.push(`- ${item}`));
132
+ lines.push('');
133
+ }
134
+ if (section.added.length > 0) {
135
+ lines.push('### Added');
136
+ lines.push('');
137
+ section.added.forEach((item) => lines.push(`- ${item}`));
138
+ lines.push('');
139
+ }
140
+ if (section.changed.length > 0) {
141
+ lines.push('### Changed');
142
+ lines.push('');
143
+ section.changed.forEach((item) => lines.push(`- ${item}`));
144
+ lines.push('');
145
+ }
146
+ if (section.fixed.length > 0) {
147
+ lines.push('### Fixed');
148
+ lines.push('');
149
+ section.fixed.forEach((item) => lines.push(`- ${item}`));
150
+ lines.push('');
151
+ }
152
+ if (section.deprecated.length > 0) {
153
+ lines.push('### Deprecated');
154
+ lines.push('');
155
+ section.deprecated.forEach((item) => lines.push(`- ${item}`));
156
+ lines.push('');
157
+ }
158
+ if (section.removed.length > 0) {
159
+ lines.push('### Removed');
160
+ lines.push('');
161
+ section.removed.forEach((item) => lines.push(`- ${item}`));
162
+ lines.push('');
163
+ }
164
+ if (section.security.length > 0) {
165
+ lines.push('### Security');
166
+ lines.push('');
167
+ section.security.forEach((item) => lines.push(`- ${item}`));
168
+ lines.push('');
169
+ }
170
+ return lines.join('\n');
171
+ }
172
+ /**
173
+ * Update CHANGELOG.md with new version
174
+ */
175
+ export async function updateChangelog(projectDir, section) {
176
+ const changelogPath = path.join(projectDir, 'CHANGELOG.md');
177
+ let changelog = '';
178
+ if (await fileExists(changelogPath)) {
179
+ changelog = await readFile(changelogPath);
180
+ }
181
+ else {
182
+ changelog = `# Changelog
183
+
184
+ All notable changes to this project will be documented in this file.
185
+
186
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
187
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
188
+
189
+ ## [Unreleased]
190
+
191
+ `;
192
+ }
193
+ // Find where to insert new version
194
+ const newEntry = formatChangelogSection(section);
195
+ // Insert after [Unreleased] section
196
+ const unreleasedMatch = changelog.match(/## \[Unreleased\]\n/);
197
+ if (unreleasedMatch && unreleasedMatch.index !== undefined) {
198
+ const insertPos = unreleasedMatch.index + unreleasedMatch[0].length;
199
+ changelog = changelog.slice(0, insertPos) + '\n' + newEntry + '\n' + changelog.slice(insertPos);
200
+ }
201
+ else {
202
+ // No [Unreleased] section, prepend
203
+ changelog = newEntry + '\n\n' + changelog;
204
+ }
205
+ await writeFile(changelogPath, changelog);
206
+ }
207
+ /**
208
+ * Get current version from project
209
+ */
210
+ export async function getCurrentVersion(projectDir) {
211
+ return getVersionFromBumper(projectDir);
212
+ }
213
+ /**
214
+ * Generate changelog for current version
215
+ */
216
+ export async function generateChangelog(projectDir, version) {
217
+ const commits = await getCommitsSinceLastTag(projectDir);
218
+ const section = generateChangelogSection(commits, version);
219
+ await updateChangelog(projectDir, section);
220
+ return section;
221
+ }
222
+ //# sourceMappingURL=changelog-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog-generator.js","sourceRoot":"","sources":["../../src/core/changelog-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAuBlC;;GAEG;AACH,SAAS,WAAW,CAAC,OAAe,EAAE,IAAY;IAChD,mDAAmD;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE7D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEhF,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACzC,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,UAAkB;IAC7D,IAAI,CAAC;QACH,eAAe;QACf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,CAAC,gCAAgC,EAAE;YAC5E,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAChC,WAAW,OAAO,CAAC,IAAI,EAAE,kCAAkC,EAC3D,EAAE,GAAG,EAAE,UAAU,EAAE,CACpB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,MAAM;aACV,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;QAC/B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YAE7F,OAAO,MAAM;iBACV,IAAI,EAAE;iBACN,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAiB,EAAE,OAAe;IACzE,MAAM,OAAO,GAAqB;QAChC,OAAO;QACP,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5C,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEvF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,MAAM;gBACT,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,KAAK;gBACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,UAAU,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,MAAM;gBACT,iCAAiC;gBACjC,MAAM;YACR,KAAK,OAAO;gBACV,qBAAqB;gBACrB,MAAM;YACR,KAAK,MAAM;gBACT,oBAAoB;gBACpB,MAAM;YACR,KAAK,OAAO,CAAC;YACb,KAAK,IAAI,CAAC;YACV,KAAK,OAAO;gBACV,qCAAqC;gBACrC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACpB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBACD,MAAM;YACR;gBACE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAyB;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,OAAyB;IAEzB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE5D,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,SAAS,GAAG;;;;;;;;;CASf,CAAC;IACA,CAAC;IAED,mCAAmC;IACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEjD,oCAAoC;IACpC,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE/D,IAAI,eAAe,IAAI,eAAe,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClG,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAkB,EAClB,OAAe;IAEf,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAE3C,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,113 @@
1
+ import { createLogger } from './logger.js';
2
+ import type { RulebookConfig } from '../types.js';
3
+ export interface CLITool {
4
+ name: string;
5
+ command: string;
6
+ version?: string;
7
+ available: boolean;
8
+ }
9
+ export interface CLIResponse {
10
+ success: boolean;
11
+ output: string;
12
+ error?: string;
13
+ duration: number;
14
+ exitCode: number;
15
+ }
16
+ export declare class CLIBridge {
17
+ private logger;
18
+ private config;
19
+ private activeProcesses;
20
+ private onLog?;
21
+ private debugLogFile?;
22
+ private debugLogInitialized;
23
+ constructor(logger: ReturnType<typeof createLogger>, config: RulebookConfig);
24
+ /**
25
+ * Initialize debug logging (called once after singleton creation)
26
+ */
27
+ private initializeDebugLog;
28
+ /**
29
+ * Write to debug log file
30
+ */
31
+ private debugLog;
32
+ /**
33
+ * Set callback for logging (used by watcher UI)
34
+ */
35
+ setLogCallback(callback: (level: 'info' | 'success' | 'warning' | 'error', message: string) => void): void;
36
+ /**
37
+ * Detect available CLI tools
38
+ */
39
+ detectCLITools(): Promise<CLITool[]>;
40
+ /**
41
+ * Send command to CLI tool
42
+ */
43
+ sendCommandToCLI(toolName: string, command: string, options?: {
44
+ timeout?: number;
45
+ workingDirectory?: string;
46
+ env?: Record<string, string>;
47
+ }): Promise<CLIResponse>;
48
+ /**
49
+ * Wait for CLI completion with timeout handling
50
+ */
51
+ waitForCompletion(toolName: string, command: string, timeout?: number): Promise<CLIResponse>;
52
+ /**
53
+ * Handle CLI timeout by sending continue command
54
+ */
55
+ handleTimeout(toolName: string, originalCommand: string): Promise<CLIResponse>;
56
+ /**
57
+ * Send task implementation command
58
+ */
59
+ sendTaskCommand(toolName: string, task: {
60
+ id: string;
61
+ title: string;
62
+ description: string;
63
+ }): Promise<CLIResponse>;
64
+ /**
65
+ * Send continue implementation command
66
+ */
67
+ sendContinueCommand(toolName: string, iterations?: number): Promise<CLIResponse>;
68
+ /**
69
+ * Send test command
70
+ */
71
+ sendTestCommand(toolName: string): Promise<CLIResponse>;
72
+ /**
73
+ * Send lint command
74
+ */
75
+ sendLintCommand(toolName: string): Promise<CLIResponse>;
76
+ /**
77
+ * Send format command
78
+ */
79
+ sendFormatCommand(toolName: string): Promise<CLIResponse>;
80
+ /**
81
+ * Send commit command
82
+ */
83
+ sendCommitCommand(toolName: string, message: string): Promise<CLIResponse>;
84
+ /**
85
+ * Check if CLI tool is responsive
86
+ */
87
+ checkCLIHealth(toolName: string): Promise<boolean>;
88
+ /**
89
+ * Get CLI tool capabilities
90
+ */
91
+ getCLICapabilities(toolName: string): Promise<string[]>;
92
+ /**
93
+ * Execute workflow step
94
+ */
95
+ executeWorkflowStep(toolName: string, step: 'implement' | 'test' | 'lint' | 'format' | 'commit', context?: Record<string, unknown>): Promise<CLIResponse>;
96
+ /**
97
+ * Kill all active processes (cleanup)
98
+ */
99
+ killAllProcesses(): Promise<void>;
100
+ /**
101
+ * Smart continue detection based on CLI output patterns
102
+ */
103
+ smartContinueDetection(toolName: string, lastOutput: string): Promise<boolean>;
104
+ }
105
+ /**
106
+ * Create CLI bridge instance (singleton)
107
+ */
108
+ export declare function createCLIBridge(logger: ReturnType<typeof createLogger>, config: RulebookConfig): CLIBridge;
109
+ /**
110
+ * Reset singleton (for testing only)
111
+ */
112
+ export declare function resetCLIBridge(): void;
113
+ //# sourceMappingURL=cli-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-bridge.d.ts","sourceRoot":"","sources":["../../src/core/cli-bridge.ts"],"names":[],"mappings":"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"}