@hivehub/rulebook 5.7.0 → 5.8.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 (599) hide show
  1. package/.claude/commands/analysis.md +35 -35
  2. package/.claude/commands/continue.md +33 -33
  3. package/.claude/commands/rulebook-decision-create.md +55 -55
  4. package/.claude/commands/rulebook-decision-list.md +15 -15
  5. package/.claude/commands/rulebook-knowledge-add.md +41 -41
  6. package/.claude/commands/rulebook-knowledge-list.md +15 -15
  7. package/.claude/commands/rulebook-memory-save.md +48 -48
  8. package/.claude/commands/rulebook-memory-search.md +47 -47
  9. package/.claude/commands/rulebook-task-apply.md +67 -67
  10. package/.claude/commands/rulebook-task-archive.md +94 -94
  11. package/.claude/commands/rulebook-task-create.md +93 -93
  12. package/.claude/commands/rulebook-task-list.md +42 -42
  13. package/.claude/commands/rulebook-task-show.md +52 -52
  14. package/.claude/commands/rulebook-task-validate.md +53 -53
  15. package/.claude-plugin/marketplace.json +28 -28
  16. package/.claude-plugin/plugin.json +8 -8
  17. package/README.md +86 -0
  18. package/dist/cli/commands/claude.d.ts +17 -0
  19. package/dist/cli/commands/claude.d.ts.map +1 -0
  20. package/dist/cli/commands/claude.js +56 -0
  21. package/dist/cli/commands/claude.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts.map +1 -1
  23. package/dist/cli/commands/init.js +18 -2
  24. package/dist/cli/commands/init.js.map +1 -1
  25. package/dist/cli/commands/update.d.ts.map +1 -1
  26. package/dist/cli/commands/update.js +6 -1
  27. package/dist/cli/commands/update.js.map +1 -1
  28. package/dist/cli/prompts.d.ts +13 -0
  29. package/dist/cli/prompts.d.ts.map +1 -1
  30. package/dist/cli/prompts.js +106 -0
  31. package/dist/cli/prompts.js.map +1 -1
  32. package/dist/core/claude/claude-mcp.d.ts +9 -0
  33. package/dist/core/claude/claude-mcp.d.ts.map +1 -1
  34. package/dist/core/claude/claude-mcp.js +30 -0
  35. package/dist/core/claude/claude-mcp.js.map +1 -1
  36. package/dist/core/claude/claude-settings-manager.d.ts +12 -0
  37. package/dist/core/claude/claude-settings-manager.d.ts.map +1 -1
  38. package/dist/core/claude/claude-settings-manager.js +59 -3
  39. package/dist/core/claude/claude-settings-manager.js.map +1 -1
  40. package/dist/core/detect/detector.d.ts +8 -1
  41. package/dist/core/detect/detector.d.ts.map +1 -1
  42. package/dist/core/detect/detector.js +225 -0
  43. package/dist/core/detect/detector.js.map +1 -1
  44. package/dist/core/detect/library-registry.d.ts +40 -0
  45. package/dist/core/detect/library-registry.d.ts.map +1 -0
  46. package/dist/core/detect/library-registry.js +239 -0
  47. package/dist/core/detect/library-registry.js.map +1 -0
  48. package/dist/core/generators/generator.d.ts +1 -0
  49. package/dist/core/generators/generator.d.ts.map +1 -1
  50. package/dist/core/generators/generator.js +37 -0
  51. package/dist/core/generators/generator.js.map +1 -1
  52. package/dist/core/generators/rules-generator.d.ts +1 -5
  53. package/dist/core/generators/rules-generator.d.ts.map +1 -1
  54. package/dist/core/generators/rules-generator.js +40 -1
  55. package/dist/core/generators/rules-generator.js.map +1 -1
  56. package/dist/index.js +12 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/mcp/rulebook-server.js +0 -0
  59. package/dist/types.d.ts +13 -0
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +23 -22
  62. package/templates/agents/accessibility-reviewer.md +43 -43
  63. package/templates/agents/api-designer.md +42 -42
  64. package/templates/agents/architect.md +51 -51
  65. package/templates/agents/build-engineer.md +36 -36
  66. package/templates/agents/code-reviewer.md +47 -47
  67. package/templates/agents/compiler/codegen-debugger.md +34 -34
  68. package/templates/agents/compiler/stdlib-engineer.md +28 -28
  69. package/templates/agents/compiler/test-coverage-guardian.md +31 -31
  70. package/templates/agents/database-architect.md +41 -41
  71. package/templates/agents/devops-engineer.md +42 -42
  72. package/templates/agents/docs-writer.md +38 -38
  73. package/templates/agents/game-engine/cpp-core-expert.md +35 -35
  74. package/templates/agents/game-engine/render-engineer.md +22 -22
  75. package/templates/agents/game-engine/shader-engineer.md +38 -38
  76. package/templates/agents/game-engine/systems-integration.md +43 -43
  77. package/templates/agents/generic/code-reviewer.md +41 -41
  78. package/templates/agents/generic/docs-writer.md +25 -25
  79. package/templates/agents/generic/project-manager.md +36 -36
  80. package/templates/agents/generic/researcher.md +34 -34
  81. package/templates/agents/generic/test-engineer.md +41 -41
  82. package/templates/agents/i18n-engineer.md +42 -42
  83. package/templates/agents/implementer.md +42 -42
  84. package/templates/agents/migration-engineer.md +42 -42
  85. package/templates/agents/mobile/platform-specialist.md +22 -22
  86. package/templates/agents/mobile/ui-engineer.md +22 -22
  87. package/templates/agents/performance-engineer.md +49 -49
  88. package/templates/agents/project-manager.md +215 -0
  89. package/templates/agents/quality-gatekeeper.md +205 -0
  90. package/templates/agents/refactoring-agent.md +41 -41
  91. package/templates/agents/researcher.md +38 -38
  92. package/templates/agents/security-reviewer.md +40 -40
  93. package/templates/agents/team-lead.md +37 -37
  94. package/templates/agents/tester.md +48 -48
  95. package/templates/agents/ux-reviewer.md +43 -43
  96. package/templates/agents/web-app/api-designer.md +22 -22
  97. package/templates/agents/web-app/backend-engineer.md +30 -30
  98. package/templates/agents/web-app/database-engineer.md +22 -22
  99. package/templates/agents/web-app/frontend-engineer.md +29 -29
  100. package/templates/agents/web-app/security-reviewer.md +32 -32
  101. package/templates/ci/rulebook-review.yml +26 -26
  102. package/templates/claude-workflows/bugfix.js +94 -0
  103. package/templates/claude-workflows/feature-pipeline.js +88 -0
  104. package/templates/claude-workflows/release-gate.js +64 -0
  105. package/templates/claude-workflows/review-fanout.js +118 -0
  106. package/templates/claude-workflows/rulebook-driver.js +343 -0
  107. package/templates/claude-workflows/spec-author.js +133 -0
  108. package/templates/cli/AIDER.md +49 -49
  109. package/templates/cli/AMAZON_Q.md +25 -25
  110. package/templates/cli/AUGGIE.md +32 -32
  111. package/templates/cli/CLAUDE.md +117 -117
  112. package/templates/cli/CLINE.md +99 -99
  113. package/templates/cli/CODEBUDDY.md +20 -20
  114. package/templates/cli/CODEIUM.md +20 -20
  115. package/templates/cli/CODEX.md +21 -21
  116. package/templates/cli/CONTINUE.md +34 -34
  117. package/templates/cli/CURSOR_CLI.md +62 -62
  118. package/templates/cli/FACTORY.md +18 -18
  119. package/templates/cli/GEMINI.md +35 -35
  120. package/templates/cli/KILOCODE.md +18 -18
  121. package/templates/cli/_GENERIC_TEMPLATE.md +29 -29
  122. package/templates/commands/rulebook-decision-create.md +55 -55
  123. package/templates/commands/rulebook-decision-list.md +15 -15
  124. package/templates/commands/rulebook-knowledge-add.md +41 -41
  125. package/templates/commands/rulebook-knowledge-list.md +15 -15
  126. package/templates/commands/rulebook-memory-save.md +48 -48
  127. package/templates/commands/rulebook-memory-search.md +47 -47
  128. package/templates/commands/rulebook-task-apply.md +67 -67
  129. package/templates/commands/rulebook-task-archive.md +94 -94
  130. package/templates/commands/rulebook-task-create.md +93 -93
  131. package/templates/commands/rulebook-task-list.md +42 -42
  132. package/templates/commands/rulebook-task-show.md +52 -52
  133. package/templates/commands/rulebook-task-validate.md +53 -53
  134. package/templates/compact-context/_default.md +23 -23
  135. package/templates/compact-context/cpp.md +26 -26
  136. package/templates/compact-context/go.md +26 -26
  137. package/templates/compact-context/python.md +26 -26
  138. package/templates/compact-context/rust.md +28 -28
  139. package/templates/compact-context/typescript.md +29 -29
  140. package/templates/core/AGENTS_OVERRIDE.md +16 -16
  141. package/templates/core/AGENT_AUTOMATION.md +296 -296
  142. package/templates/core/CLAUDE_MD_v2.md +90 -90
  143. package/templates/core/DAG.md +304 -304
  144. package/templates/core/DECISIONS.md +38 -38
  145. package/templates/core/DOCUMENTATION_RULES.md +36 -36
  146. package/templates/core/KNOWLEDGE.md +49 -49
  147. package/templates/core/MULTI_AGENT.md +74 -74
  148. package/templates/core/PLANS.md +28 -28
  149. package/templates/core/QUALITY_ENFORCEMENT.md +68 -68
  150. package/templates/core/RULEBOOK.md +1947 -1947
  151. package/templates/core/TIER1_PROHIBITIONS.md +154 -154
  152. package/templates/core/TOKEN_OPTIMIZATION.md +49 -49
  153. package/templates/git/CI_CD_PATTERNS.md +661 -661
  154. package/templates/git/GITHUB_ACTIONS.md +728 -728
  155. package/templates/git/GITLAB_CI.md +730 -730
  156. package/templates/git/GIT_WORKFLOW.md +1192 -1192
  157. package/templates/git/SECRETS_MANAGEMENT.md +585 -585
  158. package/templates/hooks/COMMIT_MSG.md +530 -530
  159. package/templates/hooks/POST_CHECKOUT.md +546 -546
  160. package/templates/hooks/PREPARE_COMMIT_MSG.md +619 -619
  161. package/templates/hooks/PRE_COMMIT.md +414 -414
  162. package/templates/hooks/PRE_PUSH.md +601 -601
  163. package/templates/hooks/check-context-and-handoff.sh +16 -6
  164. package/templates/hooks/update-check.ps1 +84 -0
  165. package/templates/hooks/update-check.sh +103 -0
  166. package/templates/ides/CONTINUE_RULES.md +16 -16
  167. package/templates/ides/COPILOT_INSTRUCTIONS.md +23 -23
  168. package/templates/ides/GEMINI_RULES.md +17 -17
  169. package/templates/ides/WINDSURF_RULES.md +14 -14
  170. package/templates/languages/C.md +333 -333
  171. package/templates/languages/CPP.md +743 -743
  172. package/templates/languages/CSHARP.md +417 -417
  173. package/templates/languages/ELIXIR.md +454 -454
  174. package/templates/languages/ERLANG.md +361 -361
  175. package/templates/languages/GO.md +645 -645
  176. package/templates/languages/HASKELL.md +177 -177
  177. package/templates/languages/JAVA.md +607 -607
  178. package/templates/languages/JAVASCRIPT.md +631 -631
  179. package/templates/languages/JULIA.md +97 -97
  180. package/templates/languages/KOTLIN.md +511 -511
  181. package/templates/languages/LISP.md +100 -100
  182. package/templates/languages/LUA.md +74 -74
  183. package/templates/languages/OBJECTIVEC.md +90 -90
  184. package/templates/languages/PHP.md +416 -416
  185. package/templates/languages/PYTHON.md +682 -682
  186. package/templates/languages/RUBY.md +421 -421
  187. package/templates/languages/RUST.md +477 -477
  188. package/templates/languages/SAS.md +73 -73
  189. package/templates/languages/SCALA.md +348 -348
  190. package/templates/languages/SOLIDITY.md +580 -580
  191. package/templates/languages/SQL.md +137 -137
  192. package/templates/languages/SWIFT.md +466 -466
  193. package/templates/languages/TYPESCRIPT.md +591 -591
  194. package/templates/languages/ZIG.md +265 -265
  195. package/templates/libraries/go/ECHO.md +18 -0
  196. package/templates/libraries/go/GIN.md +18 -0
  197. package/templates/libraries/go/GORM.md +18 -0
  198. package/templates/libraries/python/DJANGO.md +18 -0
  199. package/templates/libraries/python/FASTAPI.md +18 -0
  200. package/templates/libraries/python/FLASK.md +17 -0
  201. package/templates/libraries/python/PYDANTIC.md +17 -0
  202. package/templates/libraries/python/PYTEST.md +17 -0
  203. package/templates/libraries/python/SQLALCHEMY.md +17 -0
  204. package/templates/libraries/rust/ACTIX.md +17 -0
  205. package/templates/libraries/rust/AXUM.md +18 -0
  206. package/templates/libraries/rust/SERDE.md +16 -0
  207. package/templates/libraries/rust/SQLX.md +17 -0
  208. package/templates/libraries/rust/TOKIO.md +16 -0
  209. package/templates/libraries/typescript/ANGULAR.md +17 -0
  210. package/templates/libraries/typescript/DRIZZLE.md +16 -0
  211. package/templates/libraries/typescript/EXPRESS.md +17 -0
  212. package/templates/libraries/typescript/HEROUI.md +16 -0
  213. package/templates/libraries/typescript/JEST.md +17 -0
  214. package/templates/libraries/typescript/NESTJS.md +17 -0
  215. package/templates/libraries/typescript/NEXT.md +18 -0
  216. package/templates/libraries/typescript/PRISMA.md +16 -0
  217. package/templates/libraries/typescript/RADIX.md +16 -0
  218. package/templates/libraries/typescript/REACT.md +18 -0
  219. package/templates/libraries/typescript/SHADCN.md +16 -0
  220. package/templates/libraries/typescript/SVELTE.md +16 -0
  221. package/templates/libraries/typescript/TAILWIND.md +16 -0
  222. package/templates/libraries/typescript/TRPC.md +16 -0
  223. package/templates/libraries/typescript/VITEST.md +17 -0
  224. package/templates/libraries/typescript/VUE.md +17 -0
  225. package/templates/libraries/typescript/ZOD.md +17 -0
  226. package/templates/modules/ATLASSIAN.md +255 -255
  227. package/templates/modules/CONTEXT7.md +54 -54
  228. package/templates/modules/FIGMA.md +267 -267
  229. package/templates/modules/GITHUB_MCP.md +64 -64
  230. package/templates/modules/GRAFANA.md +328 -328
  231. package/templates/modules/MEMORY.md +126 -126
  232. package/templates/modules/NOTION.md +247 -247
  233. package/templates/modules/PLAYWRIGHT.md +90 -90
  234. package/templates/modules/RULEBOOK_MCP.md +208 -208
  235. package/templates/modules/SERENA.md +337 -337
  236. package/templates/modules/SUPABASE.md +223 -223
  237. package/templates/modules/SYNAP.md +69 -69
  238. package/templates/modules/VECTORIZER.md +63 -63
  239. package/templates/modules/sequential-thinking.md +42 -42
  240. package/templates/rules/consult-analysis-before-implementing.md +23 -23
  241. package/templates/rules/cpp.md +46 -46
  242. package/templates/rules/csharp.md +44 -44
  243. package/templates/rules/diagnostic-first.md +39 -39
  244. package/templates/rules/fail-twice-escalate.md +46 -46
  245. package/templates/rules/follow-task-sequence.md +36 -36
  246. package/templates/rules/git-safety.md +29 -29
  247. package/templates/rules/go.md +40 -40
  248. package/templates/rules/incremental-implementation.md +56 -56
  249. package/templates/rules/incremental-tests.md +29 -29
  250. package/templates/rules/java.md +43 -43
  251. package/templates/rules/javascript.md +39 -39
  252. package/templates/rules/knowledge-base-usage.md +41 -41
  253. package/templates/rules/multi-agent-teams.md +75 -75
  254. package/templates/rules/no-deferred.md +31 -31
  255. package/templates/rules/no-shortcuts.md +30 -30
  256. package/templates/rules/python.md +43 -43
  257. package/templates/rules/research-first.md +30 -30
  258. package/templates/rules/respect-handoff-trigger.md +41 -41
  259. package/templates/rules/rust.md +40 -40
  260. package/templates/rules/sequential-editing.md +21 -21
  261. package/templates/rules/session-workflow.md +24 -24
  262. package/templates/rules/task-decomposition.md +32 -32
  263. package/templates/rules/typescript.md +40 -40
  264. package/templates/skills/cli/aider/SKILL.md +59 -59
  265. package/templates/skills/cli/amazon-q/SKILL.md +35 -35
  266. package/templates/skills/cli/auggie/SKILL.md +42 -42
  267. package/templates/skills/cli/claude/SKILL.md +42 -42
  268. package/templates/skills/cli/cline/SKILL.md +42 -42
  269. package/templates/skills/cli/codebuddy/SKILL.md +30 -30
  270. package/templates/skills/cli/codeium/SKILL.md +30 -30
  271. package/templates/skills/cli/codex/SKILL.md +31 -31
  272. package/templates/skills/cli/continue/SKILL.md +44 -44
  273. package/templates/skills/cli/cursor-cli/SKILL.md +38 -38
  274. package/templates/skills/cli/factory/SKILL.md +28 -28
  275. package/templates/skills/cli/gemini/SKILL.md +45 -45
  276. package/templates/skills/cli/kilocode/SKILL.md +28 -28
  277. package/templates/skills/core/agent-automation/SKILL.md +194 -194
  278. package/templates/skills/core/dag/SKILL.md +314 -314
  279. package/templates/skills/core/documentation-rules/SKILL.md +46 -46
  280. package/templates/skills/core/quality-enforcement/SKILL.md +78 -78
  281. package/templates/skills/core/rulebook/SKILL.md +176 -176
  282. package/templates/skills/core/rulebook-terse/SKILL.md +116 -116
  283. package/templates/skills/core/rulebook-terse-commit/SKILL.md +96 -96
  284. package/templates/skills/core/rulebook-terse-review/SKILL.md +112 -112
  285. package/templates/skills/dev/accessibility/SKILL.md +17 -17
  286. package/templates/skills/dev/analysis/SKILL.md +19 -19
  287. package/templates/skills/dev/api-design/SKILL.md +15 -15
  288. package/templates/skills/dev/architect/SKILL.md +17 -17
  289. package/templates/skills/dev/build-fix/SKILL.md +17 -17
  290. package/templates/skills/dev/db-design/SKILL.md +15 -15
  291. package/templates/skills/dev/debug/SKILL.md +16 -16
  292. package/templates/skills/dev/deploy/SKILL.md +17 -17
  293. package/templates/skills/dev/docs/SKILL.md +17 -17
  294. package/templates/skills/dev/handoff/SKILL.md +27 -27
  295. package/templates/skills/dev/migrate/SKILL.md +15 -15
  296. package/templates/skills/dev/perf/SKILL.md +17 -17
  297. package/templates/skills/dev/refactor/SKILL.md +17 -17
  298. package/templates/skills/dev/research/SKILL.md +14 -14
  299. package/templates/skills/dev/review/SKILL.md +18 -18
  300. package/templates/skills/dev/security-audit/SKILL.md +17 -17
  301. package/templates/skills/dev/spec/SKILL.md +65 -0
  302. package/templates/skills/ides/copilot/SKILL.md +47 -47
  303. package/templates/skills/ides/cursor/SKILL.md +53 -53
  304. package/templates/skills/ides/jetbrains-ai/SKILL.md +45 -45
  305. package/templates/skills/ides/replit/SKILL.md +46 -46
  306. package/templates/skills/ides/tabnine/SKILL.md +39 -39
  307. package/templates/skills/ides/vscode/SKILL.md +50 -50
  308. package/templates/skills/ides/windsurf/SKILL.md +46 -46
  309. package/templates/skills/ides/zed/SKILL.md +42 -42
  310. package/templates/skills/languages/c/SKILL.md +343 -343
  311. package/templates/skills/languages/cpp/SKILL.md +753 -753
  312. package/templates/skills/languages/csharp/SKILL.md +427 -427
  313. package/templates/skills/languages/elixir/SKILL.md +464 -464
  314. package/templates/skills/languages/erlang/SKILL.md +371 -371
  315. package/templates/skills/languages/go/SKILL.md +655 -655
  316. package/templates/skills/languages/haskell/SKILL.md +187 -187
  317. package/templates/skills/languages/java/SKILL.md +617 -617
  318. package/templates/skills/languages/javascript/SKILL.md +641 -641
  319. package/templates/skills/languages/julia/SKILL.md +107 -107
  320. package/templates/skills/languages/kotlin/SKILL.md +521 -521
  321. package/templates/skills/languages/lisp/SKILL.md +110 -110
  322. package/templates/skills/languages/lua/SKILL.md +84 -84
  323. package/templates/skills/languages/objectivec/SKILL.md +100 -100
  324. package/templates/skills/languages/php/SKILL.md +426 -426
  325. package/templates/skills/languages/python/SKILL.md +692 -692
  326. package/templates/skills/languages/ruby/SKILL.md +431 -431
  327. package/templates/skills/languages/rust/SKILL.md +487 -487
  328. package/templates/skills/languages/sas/SKILL.md +83 -83
  329. package/templates/skills/languages/scala/SKILL.md +358 -358
  330. package/templates/skills/languages/solidity/SKILL.md +590 -590
  331. package/templates/skills/languages/sql/SKILL.md +147 -147
  332. package/templates/skills/languages/swift/SKILL.md +476 -476
  333. package/templates/skills/languages/typescript/SKILL.md +302 -302
  334. package/templates/skills/languages/zig/SKILL.md +275 -275
  335. package/templates/skills/modules/atlassian/SKILL.md +265 -265
  336. package/templates/skills/modules/context7/SKILL.md +64 -64
  337. package/templates/skills/modules/figma/SKILL.md +277 -277
  338. package/templates/skills/modules/github-mcp/SKILL.md +74 -74
  339. package/templates/skills/modules/grafana/SKILL.md +338 -338
  340. package/templates/skills/modules/memory/SKILL.md +73 -73
  341. package/templates/skills/modules/notion/SKILL.md +257 -257
  342. package/templates/skills/modules/playwright/SKILL.md +100 -100
  343. package/templates/skills/modules/rulebook-mcp/SKILL.md +166 -166
  344. package/templates/skills/modules/serena/SKILL.md +347 -347
  345. package/templates/skills/modules/supabase/SKILL.md +233 -233
  346. package/templates/skills/modules/synap/SKILL.md +79 -79
  347. package/templates/skills/modules/vectorizer/SKILL.md +73 -73
  348. package/dist/agents/ralph-parser.d.ts +0 -91
  349. package/dist/agents/ralph-parser.d.ts.map +0 -1
  350. package/dist/agents/ralph-parser.js +0 -415
  351. package/dist/agents/ralph-parser.js.map +0 -1
  352. package/dist/cli/commands/analysis.d.ts +0 -8
  353. package/dist/cli/commands/analysis.d.ts.map +0 -1
  354. package/dist/cli/commands/analysis.js +0 -78
  355. package/dist/cli/commands/analysis.js.map +0 -1
  356. package/dist/cli/commands/compress.d.ts +0 -18
  357. package/dist/cli/commands/compress.d.ts.map +0 -1
  358. package/dist/cli/commands/compress.js +0 -100
  359. package/dist/cli/commands/compress.js.map +0 -1
  360. package/dist/cli/commands/ralph.d.ts +0 -45
  361. package/dist/cli/commands/ralph.d.ts.map +0 -1
  362. package/dist/cli/commands/ralph.js +0 -694
  363. package/dist/cli/commands/ralph.js.map +0 -1
  364. package/dist/cli/docs-prompts.d.ts +0 -3
  365. package/dist/cli/docs-prompts.d.ts.map +0 -1
  366. package/dist/cli/docs-prompts.js +0 -45
  367. package/dist/cli/docs-prompts.js.map +0 -1
  368. package/dist/core/agent-manager.d.ts +0 -69
  369. package/dist/core/agent-manager.d.ts.map +0 -1
  370. package/dist/core/agent-manager.js +0 -476
  371. package/dist/core/agent-manager.js.map +0 -1
  372. package/dist/core/agent-template-engine.d.ts +0 -51
  373. package/dist/core/agent-template-engine.d.ts.map +0 -1
  374. package/dist/core/agent-template-engine.js +0 -291
  375. package/dist/core/agent-template-engine.js.map +0 -1
  376. package/dist/core/analysis-manager.d.ts +0 -56
  377. package/dist/core/analysis-manager.d.ts.map +0 -1
  378. package/dist/core/analysis-manager.js +0 -218
  379. package/dist/core/analysis-manager.js.map +0 -1
  380. package/dist/core/auto-fixer.d.ts +0 -14
  381. package/dist/core/auto-fixer.d.ts.map +0 -1
  382. package/dist/core/auto-fixer.js +0 -207
  383. package/dist/core/auto-fixer.js.map +0 -1
  384. package/dist/core/changelog-generator.d.ts +0 -44
  385. package/dist/core/changelog-generator.d.ts.map +0 -1
  386. package/dist/core/changelog-generator.js +0 -222
  387. package/dist/core/changelog-generator.js.map +0 -1
  388. package/dist/core/claude-mcp.d.ts +0 -59
  389. package/dist/core/claude-mcp.d.ts.map +0 -1
  390. package/dist/core/claude-mcp.js +0 -220
  391. package/dist/core/claude-mcp.js.map +0 -1
  392. package/dist/core/claude-md-generator.d.ts +0 -52
  393. package/dist/core/claude-md-generator.d.ts.map +0 -1
  394. package/dist/core/claude-md-generator.js +0 -104
  395. package/dist/core/claude-md-generator.js.map +0 -1
  396. package/dist/core/claude-settings-manager.d.ts +0 -44
  397. package/dist/core/claude-settings-manager.d.ts.map +0 -1
  398. package/dist/core/claude-settings-manager.js +0 -191
  399. package/dist/core/claude-settings-manager.js.map +0 -1
  400. package/dist/core/cli-bridge.d.ts +0 -113
  401. package/dist/core/cli-bridge.d.ts.map +0 -1
  402. package/dist/core/cli-bridge.js +0 -1094
  403. package/dist/core/cli-bridge.js.map +0 -1
  404. package/dist/core/compact-context-manager.d.ts +0 -34
  405. package/dist/core/compact-context-manager.d.ts.map +0 -1
  406. package/dist/core/compact-context-manager.js +0 -60
  407. package/dist/core/compact-context-manager.js.map +0 -1
  408. package/dist/core/complexity-detector.d.ts +0 -36
  409. package/dist/core/complexity-detector.d.ts.map +0 -1
  410. package/dist/core/complexity-detector.js +0 -334
  411. package/dist/core/complexity-detector.js.map +0 -1
  412. package/dist/core/compress/compressor.d.ts +0 -60
  413. package/dist/core/compress/compressor.d.ts.map +0 -1
  414. package/dist/core/compress/compressor.js +0 -232
  415. package/dist/core/compress/compressor.js.map +0 -1
  416. package/dist/core/compress/discover.d.ts +0 -19
  417. package/dist/core/compress/discover.d.ts.map +0 -1
  418. package/dist/core/compress/discover.js +0 -100
  419. package/dist/core/compress/discover.js.map +0 -1
  420. package/dist/core/compress/validator.d.ts +0 -47
  421. package/dist/core/compress/validator.d.ts.map +0 -1
  422. package/dist/core/compress/validator.js +0 -131
  423. package/dist/core/compress/validator.js.map +0 -1
  424. package/dist/core/config-manager.d.ts +0 -86
  425. package/dist/core/config-manager.d.ts.map +0 -1
  426. package/dist/core/config-manager.js +0 -621
  427. package/dist/core/config-manager.js.map +0 -1
  428. package/dist/core/coverage-checker.d.ts +0 -14
  429. package/dist/core/coverage-checker.d.ts.map +0 -1
  430. package/dist/core/coverage-checker.js +0 -176
  431. package/dist/core/coverage-checker.js.map +0 -1
  432. package/dist/core/cursor-mdc-generator.d.ts +0 -30
  433. package/dist/core/cursor-mdc-generator.d.ts.map +0 -1
  434. package/dist/core/cursor-mdc-generator.js +0 -98
  435. package/dist/core/cursor-mdc-generator.js.map +0 -1
  436. package/dist/core/decision-manager.d.ts +0 -25
  437. package/dist/core/decision-manager.d.ts.map +0 -1
  438. package/dist/core/decision-manager.js +0 -183
  439. package/dist/core/decision-manager.js.map +0 -1
  440. package/dist/core/dependency-checker.d.ts +0 -21
  441. package/dist/core/dependency-checker.d.ts.map +0 -1
  442. package/dist/core/dependency-checker.js +0 -247
  443. package/dist/core/dependency-checker.js.map +0 -1
  444. package/dist/core/detector.d.ts +0 -27
  445. package/dist/core/detector.d.ts.map +0 -1
  446. package/dist/core/detector.js +0 -1763
  447. package/dist/core/detector.js.map +0 -1
  448. package/dist/core/docs-generator.d.ts +0 -9
  449. package/dist/core/docs-generator.d.ts.map +0 -1
  450. package/dist/core/docs-generator.js +0 -531
  451. package/dist/core/docs-generator.js.map +0 -1
  452. package/dist/core/doctor.d.ts +0 -19
  453. package/dist/core/doctor.d.ts.map +0 -1
  454. package/dist/core/doctor.js +0 -229
  455. package/dist/core/doctor.js.map +0 -1
  456. package/dist/core/generator.d.ts +0 -56
  457. package/dist/core/generator.d.ts.map +0 -1
  458. package/dist/core/generator.js +0 -1193
  459. package/dist/core/generator.js.map +0 -1
  460. package/dist/core/github-issues-importer.d.ts +0 -82
  461. package/dist/core/github-issues-importer.d.ts.map +0 -1
  462. package/dist/core/github-issues-importer.js +0 -161
  463. package/dist/core/github-issues-importer.js.map +0 -1
  464. package/dist/core/gitignore-generator.d.ts +0 -13
  465. package/dist/core/gitignore-generator.d.ts.map +0 -1
  466. package/dist/core/gitignore-generator.js +0 -307
  467. package/dist/core/gitignore-generator.js.map +0 -1
  468. package/dist/core/health-scorer.d.ts +0 -61
  469. package/dist/core/health-scorer.d.ts.map +0 -1
  470. package/dist/core/health-scorer.js +0 -638
  471. package/dist/core/health-scorer.js.map +0 -1
  472. package/dist/core/iteration-tracker.d.ts +0 -85
  473. package/dist/core/iteration-tracker.d.ts.map +0 -1
  474. package/dist/core/iteration-tracker.js +0 -295
  475. package/dist/core/iteration-tracker.js.map +0 -1
  476. package/dist/core/knowledge-manager.d.ts +0 -24
  477. package/dist/core/knowledge-manager.d.ts.map +0 -1
  478. package/dist/core/knowledge-manager.js +0 -173
  479. package/dist/core/knowledge-manager.js.map +0 -1
  480. package/dist/core/learn-manager.d.ts +0 -29
  481. package/dist/core/learn-manager.d.ts.map +0 -1
  482. package/dist/core/learn-manager.js +0 -159
  483. package/dist/core/learn-manager.js.map +0 -1
  484. package/dist/core/mcp-reference-generator.d.ts +0 -13
  485. package/dist/core/mcp-reference-generator.d.ts.map +0 -1
  486. package/dist/core/mcp-reference-generator.js +0 -66
  487. package/dist/core/mcp-reference-generator.js.map +0 -1
  488. package/dist/core/minimal-scaffolder.d.ts +0 -8
  489. package/dist/core/minimal-scaffolder.d.ts.map +0 -1
  490. package/dist/core/minimal-scaffolder.js +0 -51
  491. package/dist/core/minimal-scaffolder.js.map +0 -1
  492. package/dist/core/modern-console.d.ts +0 -98
  493. package/dist/core/modern-console.d.ts.map +0 -1
  494. package/dist/core/modern-console.js +0 -556
  495. package/dist/core/modern-console.js.map +0 -1
  496. package/dist/core/multi-tool-generator.d.ts +0 -59
  497. package/dist/core/multi-tool-generator.d.ts.map +0 -1
  498. package/dist/core/multi-tool-generator.js +0 -157
  499. package/dist/core/multi-tool-generator.js.map +0 -1
  500. package/dist/core/override-manager.d.ts +0 -23
  501. package/dist/core/override-manager.d.ts.map +0 -1
  502. package/dist/core/override-manager.js +0 -82
  503. package/dist/core/override-manager.js.map +0 -1
  504. package/dist/core/plans-manager.d.ts +0 -46
  505. package/dist/core/plans-manager.d.ts.map +0 -1
  506. package/dist/core/plans-manager.js +0 -158
  507. package/dist/core/plans-manager.js.map +0 -1
  508. package/dist/core/prd-generator.d.ts +0 -48
  509. package/dist/core/prd-generator.d.ts.map +0 -1
  510. package/dist/core/prd-generator.js +0 -233
  511. package/dist/core/prd-generator.js.map +0 -1
  512. package/dist/core/ralph-manager.d.ts +0 -163
  513. package/dist/core/ralph-manager.d.ts.map +0 -1
  514. package/dist/core/ralph-manager.js +0 -555
  515. package/dist/core/ralph-manager.js.map +0 -1
  516. package/dist/core/ralph-parallel.d.ts +0 -55
  517. package/dist/core/ralph-parallel.d.ts.map +0 -1
  518. package/dist/core/ralph-parallel.js +0 -201
  519. package/dist/core/ralph-parallel.js.map +0 -1
  520. package/dist/core/ralph-plan-checkpoint.d.ts +0 -58
  521. package/dist/core/ralph-plan-checkpoint.d.ts.map +0 -1
  522. package/dist/core/ralph-plan-checkpoint.js +0 -154
  523. package/dist/core/ralph-plan-checkpoint.js.map +0 -1
  524. package/dist/core/ralph-scripts.d.ts +0 -12
  525. package/dist/core/ralph-scripts.d.ts.map +0 -1
  526. package/dist/core/ralph-scripts.js +0 -50
  527. package/dist/core/ralph-scripts.js.map +0 -1
  528. package/dist/core/review-manager.d.ts +0 -74
  529. package/dist/core/review-manager.d.ts.map +0 -1
  530. package/dist/core/review-manager.js +0 -371
  531. package/dist/core/review-manager.js.map +0 -1
  532. package/dist/core/rules-generator.d.ts +0 -73
  533. package/dist/core/rules-generator.d.ts.map +0 -1
  534. package/dist/core/rules-generator.js +0 -202
  535. package/dist/core/rules-generator.js.map +0 -1
  536. package/dist/core/skills-manager.d.ts +0 -126
  537. package/dist/core/skills-manager.d.ts.map +0 -1
  538. package/dist/core/skills-manager.js +0 -654
  539. package/dist/core/skills-manager.js.map +0 -1
  540. package/dist/core/state-writer.d.ts +0 -35
  541. package/dist/core/state-writer.d.ts.map +0 -1
  542. package/dist/core/state-writer.js +0 -81
  543. package/dist/core/state-writer.js.map +0 -1
  544. package/dist/core/task-manager.d.ts +0 -127
  545. package/dist/core/task-manager.d.ts.map +0 -1
  546. package/dist/core/task-manager.js +0 -607
  547. package/dist/core/task-manager.js.map +0 -1
  548. package/dist/core/telemetry.d.ts +0 -29
  549. package/dist/core/telemetry.d.ts.map +0 -1
  550. package/dist/core/telemetry.js +0 -57
  551. package/dist/core/telemetry.js.map +0 -1
  552. package/dist/core/validator.d.ts +0 -21
  553. package/dist/core/validator.d.ts.map +0 -1
  554. package/dist/core/validator.js +0 -177
  555. package/dist/core/validator.js.map +0 -1
  556. package/dist/core/version-bumper.d.ts +0 -19
  557. package/dist/core/version-bumper.d.ts.map +0 -1
  558. package/dist/core/version-bumper.js +0 -180
  559. package/dist/core/version-bumper.js.map +0 -1
  560. package/dist/core/watcher.d.ts +0 -9
  561. package/dist/core/watcher.d.ts.map +0 -1
  562. package/dist/core/watcher.js +0 -22
  563. package/dist/core/watcher.js.map +0 -1
  564. package/dist/core/workflow-generator.d.ts +0 -15
  565. package/dist/core/workflow-generator.d.ts.map +0 -1
  566. package/dist/core/workflow-generator.js +0 -391
  567. package/dist/core/workflow-generator.js.map +0 -1
  568. package/dist/hooks/terse-activate.d.ts +0 -59
  569. package/dist/hooks/terse-activate.d.ts.map +0 -1
  570. package/dist/hooks/terse-activate.js +0 -149
  571. package/dist/hooks/terse-activate.js.map +0 -1
  572. package/dist/hooks/terse-config.d.ts +0 -51
  573. package/dist/hooks/terse-config.d.ts.map +0 -1
  574. package/dist/hooks/terse-config.js +0 -130
  575. package/dist/hooks/terse-config.js.map +0 -1
  576. package/dist/hooks/terse-mode-tracker.d.ts +0 -78
  577. package/dist/hooks/terse-mode-tracker.d.ts.map +0 -1
  578. package/dist/hooks/terse-mode-tracker.js +0 -213
  579. package/dist/hooks/terse-mode-tracker.js.map +0 -1
  580. package/dist/memory/hnsw-index.d.ts +0 -68
  581. package/dist/memory/hnsw-index.d.ts.map +0 -1
  582. package/dist/memory/hnsw-index.js +0 -544
  583. package/dist/memory/hnsw-index.js.map +0 -1
  584. package/dist/memory/memory-cache.d.ts +0 -33
  585. package/dist/memory/memory-cache.d.ts.map +0 -1
  586. package/dist/memory/memory-cache.js +0 -85
  587. package/dist/memory/memory-cache.js.map +0 -1
  588. package/dist/memory/memory-search.d.ts +0 -42
  589. package/dist/memory/memory-search.d.ts.map +0 -1
  590. package/dist/memory/memory-search.js +0 -180
  591. package/dist/memory/memory-search.js.map +0 -1
  592. package/dist/memory/memory-store.d.ts +0 -84
  593. package/dist/memory/memory-store.d.ts.map +0 -1
  594. package/dist/memory/memory-store.js +0 -566
  595. package/dist/memory/memory-store.js.map +0 -1
  596. package/dist/memory/memory-vectorizer.d.ts +0 -29
  597. package/dist/memory/memory-vectorizer.d.ts.map +0 -1
  598. package/dist/memory/memory-vectorizer.js +0 -199
  599. package/dist/memory/memory-vectorizer.js.map +0 -1
@@ -1,73 +1,73 @@
1
- ---
2
- name: "Vectorizer"
3
- description: "Use MCP Vectorizer as primary data source for project information instead of file reading."
4
- version: "1.0.0"
5
- category: "modules"
6
- author: "Rulebook"
7
- tags: ["modules", "mcp"]
8
- dependencies: []
9
- conflicts: []
10
- ---
11
- <!-- VECTORIZER:START -->
12
- # Vectorizer Instructions
13
-
14
- **CRITICAL**: Use MCP Vectorizer as primary data source for project information instead of file reading.
15
-
16
- ## Core Functions
17
-
18
- ### Search
19
- ```
20
- mcp_vectorizer_search - Multiple strategies:
21
- - intelligent: AI-powered with query expansion
22
- - semantic: Advanced with reranking
23
- - contextual: Context-aware with filtering
24
- - multi_collection: Cross-project search
25
- - batch: Parallel queries
26
- - by_file_type: Filter by extension (.rs, .ts, .py)
27
- ```
28
-
29
- ### File Operations
30
- ```
31
- get_content - Retrieve file without disk I/O
32
- list_files - List indexed files with metadata
33
- get_summary - File summaries (extractive/structural)
34
- get_chunks - Progressive reading of large files
35
- get_outline - Project structure overview
36
- get_related - Find semantically related files
37
- ```
38
-
39
- ### Discovery
40
- ```
41
- full_pipeline - Complete discovery with scoring
42
- broad_discovery - Multi-query with deduplication
43
- semantic_focus - Deep semantic search
44
- expand_queries - Generate query variations
45
- ```
46
-
47
- ## When to Use
48
-
49
- | Task | Tool |
50
- |------|------|
51
- | Explore unfamiliar code | intelligent search |
52
- | Read file | get_content |
53
- | Understand structure | get_outline |
54
- | Find related files | get_related |
55
- | Read large file | get_chunks |
56
- | Complex question | full_pipeline |
57
-
58
- ## Best Practices
59
-
60
- ✅ **DO:**
61
- - Start with intelligent search for exploration
62
- - Use file_operations to avoid disk I/O
63
- - Batch queries for related items
64
- - Set similarity thresholds (0.6-0.8)
65
- - Use specific collections when known
66
-
67
- ❌ **DON'T:**
68
- - Read files from disk when available in vectorizer
69
- - Use sequential searches (batch instead)
70
- - Skip similarity thresholds
71
- - Search entire codebase when collection is known
72
-
73
- <!-- VECTORIZER:END -->
1
+ ---
2
+ name: "Vectorizer"
3
+ description: "Use MCP Vectorizer as primary data source for project information instead of file reading."
4
+ version: "1.0.0"
5
+ category: "modules"
6
+ author: "Rulebook"
7
+ tags: ["modules", "mcp"]
8
+ dependencies: []
9
+ conflicts: []
10
+ ---
11
+ <!-- VECTORIZER:START -->
12
+ # Vectorizer Instructions
13
+
14
+ **CRITICAL**: Use MCP Vectorizer as primary data source for project information instead of file reading.
15
+
16
+ ## Core Functions
17
+
18
+ ### Search
19
+ ```
20
+ mcp_vectorizer_search - Multiple strategies:
21
+ - intelligent: AI-powered with query expansion
22
+ - semantic: Advanced with reranking
23
+ - contextual: Context-aware with filtering
24
+ - multi_collection: Cross-project search
25
+ - batch: Parallel queries
26
+ - by_file_type: Filter by extension (.rs, .ts, .py)
27
+ ```
28
+
29
+ ### File Operations
30
+ ```
31
+ get_content - Retrieve file without disk I/O
32
+ list_files - List indexed files with metadata
33
+ get_summary - File summaries (extractive/structural)
34
+ get_chunks - Progressive reading of large files
35
+ get_outline - Project structure overview
36
+ get_related - Find semantically related files
37
+ ```
38
+
39
+ ### Discovery
40
+ ```
41
+ full_pipeline - Complete discovery with scoring
42
+ broad_discovery - Multi-query with deduplication
43
+ semantic_focus - Deep semantic search
44
+ expand_queries - Generate query variations
45
+ ```
46
+
47
+ ## When to Use
48
+
49
+ | Task | Tool |
50
+ |------|------|
51
+ | Explore unfamiliar code | intelligent search |
52
+ | Read file | get_content |
53
+ | Understand structure | get_outline |
54
+ | Find related files | get_related |
55
+ | Read large file | get_chunks |
56
+ | Complex question | full_pipeline |
57
+
58
+ ## Best Practices
59
+
60
+ ✅ **DO:**
61
+ - Start with intelligent search for exploration
62
+ - Use file_operations to avoid disk I/O
63
+ - Batch queries for related items
64
+ - Set similarity thresholds (0.6-0.8)
65
+ - Use specific collections when known
66
+
67
+ ❌ **DON'T:**
68
+ - Read files from disk when available in vectorizer
69
+ - Use sequential searches (batch instead)
70
+ - Skip similarity thresholds
71
+ - Search entire codebase when collection is known
72
+
73
+ <!-- VECTORIZER:END -->
@@ -1,91 +0,0 @@
1
- import { IterationResult } from '../types.js';
2
- /**
3
- * Parses AI agent output to extract task completion status,
4
- * quality metrics, and learnings for Ralph iteration tracking
5
- */
6
- export declare class RalphParser {
7
- /**
8
- * Parse agent output and extract iteration result
9
- */
10
- static parseAgentOutput(agentOutput: string, iterationNum: number, taskId: string, taskTitle: string, tool: 'claude' | 'amp' | 'gemini'): IterationResult;
11
- /**
12
- * Extract quality check results from agent output.
13
- * Uses structured count-based detection to avoid false positives.
14
- * "0 errors" / "no errors" are treated as success, not failure.
15
- * Note: In MCP ralph_run, real quality gates are determined by actual command exit codes,
16
- * not this parser. This is a best-effort extraction for standalone parsing.
17
- */
18
- private static extractQualityChecks;
19
- /**
20
- * Parse lint error count from ESLint output.
21
- * Returns 0 if no error count found (treat as passing).
22
- */
23
- private static parseLintErrorCount;
24
- /**
25
- * Parse test failure count from vitest/jest output.
26
- * Returns 0 if no failure count found (treat as passing).
27
- */
28
- private static parseTestFailCount;
29
- /**
30
- * Parse real coverage percentage from test runner output.
31
- * Supports vitest table format and jest/c8 line format.
32
- * Returns null if coverage cannot be determined.
33
- */
34
- static parseCoveragePercentage(output: string): number | null;
35
- /**
36
- * Helper: Check if a single line contains percentage >= threshold
37
- */
38
- private static lineHasPercentageAbove;
39
- /**
40
- * Determine overall iteration status
41
- */
42
- private static determineStatus;
43
- /**
44
- * Extract learnings and insights from output
45
- */
46
- private static extractLearnings;
47
- /**
48
- * Extract errors from output
49
- */
50
- private static extractErrors;
51
- /**
52
- * Extract git commit hash from output
53
- */
54
- private static extractGitCommit;
55
- /**
56
- * Generate summary from agent output
57
- */
58
- private static generateSummary;
59
- /**
60
- * Count context loss events in output
61
- */
62
- private static countContextLoss;
63
- /**
64
- * Check if iteration completion is detected
65
- */
66
- private static isCompletionDetected;
67
- /**
68
- * Parse `npm audit --json` output.
69
- * Returns the highest severity found: 'critical' | 'high' | 'moderate' | 'low' | 'none'
70
- */
71
- static parseNpmAuditSeverity(jsonOutput: string): 'critical' | 'high' | 'moderate' | 'low' | 'none';
72
- /**
73
- * Parse text-based security tool output (trivy, semgrep, or npm audit without --json).
74
- * Returns the highest severity found: 'critical' | 'high' | 'moderate' | 'low' | 'none'
75
- */
76
- static parseSecurityOutputText(output: string): 'critical' | 'high' | 'moderate' | 'low' | 'none';
77
- /**
78
- * Parse trivy JSON output (`trivy fs --format json`) for the highest severity found.
79
- */
80
- static parseTrivySeverity(jsonOutput: string): 'critical' | 'high' | 'moderate' | 'low' | 'none';
81
- /**
82
- * Parse semgrep JSON output (`semgrep --json`) for the highest severity found.
83
- */
84
- static parseSemgrepSeverity(jsonOutput: string): 'critical' | 'high' | 'moderate' | 'low' | 'none';
85
- /**
86
- * Determine if a security gate passes given the found severity and the configured failOn threshold.
87
- * Severity order: none < low < moderate < high < critical
88
- */
89
- static securityGatePasses(foundSeverity: 'critical' | 'high' | 'moderate' | 'low' | 'none', failOn: 'critical' | 'high' | 'moderate' | 'low'): boolean;
90
- }
91
- //# sourceMappingURL=ralph-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ralph-parser.d.ts","sourceRoot":"","sources":["../../src/agents/ralph-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAChC,eAAe;IA4ClB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA2EnC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAgBlC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgBjC;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA4B7D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAYrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAwB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA4B/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IA4B5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAa/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAenC;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAC1B,UAAU,EAAE,MAAM,GACjB,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM;IAoBpD;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAC5B,MAAM,EAAE,MAAM,GACb,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM;IASpD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM;IAoBhG;;OAEG;IACH,MAAM,CAAC,oBAAoB,CACzB,UAAU,EAAE,MAAM,GACjB,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM;IAyBpD;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CACvB,aAAa,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,EAChE,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAC/C,OAAO;CAMX"}
@@ -1,415 +0,0 @@
1
- /**
2
- * Parses AI agent output to extract task completion status,
3
- * quality metrics, and learnings for Ralph iteration tracking
4
- */
5
- export class RalphParser {
6
- /**
7
- * Parse agent output and extract iteration result
8
- */
9
- static parseAgentOutput(agentOutput, iterationNum, taskId, taskTitle, tool) {
10
- const startTime = Date.now();
11
- // Extract quality check results
12
- const qualityChecks = this.extractQualityChecks(agentOutput);
13
- // Determine success/partial/failed status
14
- const status = this.determineStatus(qualityChecks);
15
- // Extract learnings and errors
16
- const learnings = this.extractLearnings(agentOutput);
17
- const errors = this.extractErrors(agentOutput);
18
- // Extract git commit hash if present
19
- const gitCommit = this.extractGitCommit(agentOutput);
20
- // Generate summary from output
21
- const summary = this.generateSummary(agentOutput, status);
22
- // Calculate execution time (placeholder - would be from actual execution)
23
- const executionTime = Date.now() - startTime;
24
- const result = {
25
- iteration: iterationNum,
26
- timestamp: new Date().toISOString(),
27
- task_id: taskId,
28
- task_title: taskTitle,
29
- status,
30
- ai_tool: tool,
31
- execution_time_ms: executionTime,
32
- quality_checks: qualityChecks,
33
- output_summary: summary,
34
- git_commit: gitCommit,
35
- learnings,
36
- errors,
37
- metadata: {
38
- context_loss_count: this.countContextLoss(agentOutput),
39
- parsed_completion: this.isCompletionDetected(agentOutput),
40
- },
41
- };
42
- return result;
43
- }
44
- /**
45
- * Extract quality check results from agent output.
46
- * Uses structured count-based detection to avoid false positives.
47
- * "0 errors" / "no errors" are treated as success, not failure.
48
- * Note: In MCP ralph_run, real quality gates are determined by actual command exit codes,
49
- * not this parser. This is a best-effort extraction for standalone parsing.
50
- */
51
- static extractQualityChecks(output) {
52
- const lines = output.split('\n').map((l) => l.toLowerCase().trim());
53
- // Type-check: pass if no TypeScript error codes (error TS\d+) found
54
- const tsErrorCount = (output.match(/error TS\d+/gi) ?? []).length;
55
- const typeCheckExplicitPass = lines.some((l) => (l.includes('type-check') || l.includes('tsc')) &&
56
- (l.includes('pass') || l.includes('success') || l.includes('✓')) &&
57
- !l.includes('fail'));
58
- const typeCheckPass = typeCheckExplicitPass || tsErrorCount === 0;
59
- // Lint: parse "X problems (Y errors, Z warnings)" — fail only if errors > 0
60
- // Also pass on "0 problems", "0 errors", "no problems", explicit pass
61
- const lintErrorCount = this.parseLintErrorCount(lines);
62
- const lintExplicitPass = lines.some((l) => (l.includes('eslint') || l.includes('lint')) &&
63
- (l.includes('pass') ||
64
- l.includes('success') ||
65
- l.includes('✓') ||
66
- l.includes('0 problems') ||
67
- l.includes('no problems')));
68
- const lintExplicitFail = lines.some((l) => (l.includes('eslint') || l.includes('lint')) && l.includes('fail'));
69
- const lintPass = lintExplicitFail ? false : lintExplicitPass || lintErrorCount === 0;
70
- // Tests: parse "X failed" — fail only if count > 0
71
- // "0 errors", "passing", "✓ X tests" are all success
72
- const testFailCount = this.parseTestFailCount(lines);
73
- const testExplicitPass = lines.some((l) => (l.includes('test') || l.includes('vitest') || l.includes('jest')) &&
74
- (l.includes('pass') ||
75
- l.includes('passed') ||
76
- l.includes('✓') ||
77
- l.includes('success') ||
78
- l.includes('0 errors') ||
79
- l.includes('no errors') ||
80
- l.includes('0 failed')));
81
- const testExplicitFail = lines.some((l) => (l.includes('test') || l.includes('vitest') || l.includes('jest')) &&
82
- l.includes('fail') &&
83
- !l.includes('0 fail'));
84
- const testsPass = testExplicitFail ? false : testExplicitPass || testFailCount === 0;
85
- // Coverage: parse actual percentage or explicit pass/fail
86
- const covPct = this.parseCoveragePercentage(output);
87
- const coveragePass = (covPct !== null && covPct >= 95) ||
88
- lines.some((l) => l.includes('coverage') && this.lineHasPercentageAbove(l, 95)) ||
89
- lines.some((l) => l.includes('coverage') && (l.includes('pass') || l.includes('met') || l.includes('✓')));
90
- return {
91
- type_check: typeCheckPass,
92
- lint: lintPass,
93
- tests: testsPass,
94
- coverage_met: coveragePass,
95
- };
96
- }
97
- /**
98
- * Parse lint error count from ESLint output.
99
- * Returns 0 if no error count found (treat as passing).
100
- */
101
- static parseLintErrorCount(lines) {
102
- for (const line of lines) {
103
- // "X problems (Y errors, Z warnings)"
104
- const problemsMatch = line.match(/(\d+)\s+problems?\s+\((\d+)\s+errors?/);
105
- if (problemsMatch) {
106
- return parseInt(problemsMatch[2], 10);
107
- }
108
- // "X error" standalone
109
- const errorCountMatch = line.match(/^(\d+)\s+errors?$/);
110
- if (errorCountMatch) {
111
- return parseInt(errorCountMatch[1], 10);
112
- }
113
- }
114
- return 0;
115
- }
116
- /**
117
- * Parse test failure count from vitest/jest output.
118
- * Returns 0 if no failure count found (treat as passing).
119
- */
120
- static parseTestFailCount(lines) {
121
- for (const line of lines) {
122
- // "X failed" — vitest/jest
123
- const failMatch = line.match(/(\d+)\s+failed/);
124
- if (failMatch) {
125
- return parseInt(failMatch[1], 10);
126
- }
127
- // "Tests: X failed" — jest summary
128
- const jestMatch = line.match(/tests:\s+(\d+)\s+failed/);
129
- if (jestMatch) {
130
- return parseInt(jestMatch[1], 10);
131
- }
132
- }
133
- return 0;
134
- }
135
- /**
136
- * Parse real coverage percentage from test runner output.
137
- * Supports vitest table format and jest/c8 line format.
138
- * Returns null if coverage cannot be determined.
139
- */
140
- static parseCoveragePercentage(output) {
141
- // vitest/istanbul table: "All files | 87.50 | ..." or "All files | 87.50 |"
142
- const vitestMatch = output.match(/all files\s*\|\s*(\d+(?:\.\d+)?)\s*\|/i);
143
- if (vitestMatch) {
144
- return parseFloat(vitestMatch[1]);
145
- }
146
- // jest: "Lines : 87.5%" or "Lines : 87.5 %"
147
- const jestLinesMatch = output.match(/lines\s*:\s*(\d+(?:\.\d+)?)\s*%/i);
148
- if (jestLinesMatch) {
149
- return parseFloat(jestLinesMatch[1]);
150
- }
151
- // c8/nyc: "% Lines | 87.5"
152
- const c8Match = output.match(/%\s*lines\s*\|\s*(\d+(?:\.\d+)?)/i);
153
- if (c8Match) {
154
- return parseFloat(c8Match[1]);
155
- }
156
- // Generic: "coverage: 87%" or "coverage 87.5%"
157
- const genericMatch = output.match(/coverage[:\s]+(\d+(?:\.\d+)?)%/i);
158
- if (genericMatch) {
159
- return parseFloat(genericMatch[1]);
160
- }
161
- return null;
162
- }
163
- /**
164
- * Helper: Check if a single line contains percentage >= threshold
165
- */
166
- static lineHasPercentageAbove(line, threshold) {
167
- // eslint-disable-next-line no-useless-escape
168
- const percentMatches = line.match(/(\d+(?:\.\d+)?)%/g);
169
- if (!percentMatches) {
170
- return false;
171
- }
172
- return percentMatches.some((match) => {
173
- const percent = parseFloat(match);
174
- return percent >= threshold;
175
- });
176
- }
177
- /**
178
- * Determine overall iteration status
179
- */
180
- static determineStatus(qualityChecks) {
181
- const allPass = qualityChecks.type_check &&
182
- qualityChecks.lint &&
183
- qualityChecks.tests &&
184
- qualityChecks.coverage_met;
185
- if (allPass) {
186
- return 'success';
187
- }
188
- const passCount = Object.values(qualityChecks).filter(Boolean).length;
189
- if (passCount >= 2) {
190
- return 'partial';
191
- }
192
- return 'failed';
193
- }
194
- /**
195
- * Extract learnings and insights from output
196
- */
197
- static extractLearnings(output) {
198
- const learnings = [];
199
- // Look for key learnings markers
200
- const learningsMatch = output.match(/(?:learning|insight|pattern|note)[\s:]*([^\n]+)/gi);
201
- if (learningsMatch) {
202
- learningsMatch.forEach((match) => {
203
- const cleaned = match.replace(/^(?:learning|insight|pattern|note)[\s:]*/i, '').trim();
204
- if (cleaned.length > 10 && cleaned.length < 500) {
205
- learnings.push(cleaned);
206
- }
207
- });
208
- }
209
- // Extract from code comments about discoveries
210
- const discoveryMatch = output.match(/(?:discovered|found|realized)[\s:]*([^\n]+)/gi);
211
- if (discoveryMatch) {
212
- discoveryMatch.forEach((match) => {
213
- const cleaned = match.replace(/^(?:discovered|found|realized)[\s:]*/i, '').trim();
214
- if (cleaned.length > 10 && cleaned.length < 500) {
215
- learnings.push(cleaned);
216
- }
217
- });
218
- }
219
- return learnings.slice(0, 5); // Limit to 5 learnings
220
- }
221
- /**
222
- * Extract errors from output
223
- */
224
- static extractErrors(output) {
225
- const errors = [];
226
- // Look for error patterns
227
- const errorMatch = output.match(/(?:error|failed|fail)[\s:]*([^\n]+)/gi);
228
- if (errorMatch) {
229
- errorMatch.forEach((match) => {
230
- const cleaned = match.replace(/^(?:error|failed|fail)[\s:]*/i, '').trim();
231
- if (cleaned.length > 5 && cleaned.length < 300) {
232
- errors.push(cleaned);
233
- }
234
- });
235
- }
236
- // Look for stack traces or error codes
237
- const stackMatch = output.match(/(?:Error|Exception)[\s:]*([^\n]+)/g);
238
- if (stackMatch) {
239
- stackMatch.forEach((match) => {
240
- const cleaned = match.trim();
241
- if (cleaned.length > 5 && !errors.includes(cleaned)) {
242
- errors.push(cleaned);
243
- }
244
- });
245
- }
246
- return errors.slice(0, 3); // Limit to 3 errors
247
- }
248
- /**
249
- * Extract git commit hash from output
250
- */
251
- static extractGitCommit(output) {
252
- // Look for commit hashes (40 hex chars or short 7-char format)
253
- const commitMatch = output.match(/\b[a-f0-9]{7,40}\b/);
254
- if (commitMatch) {
255
- const hash = commitMatch[0];
256
- // Verify it looks like a commit hash (after 'commit' keyword)
257
- if (output.toLowerCase().includes('commit') && output.includes(hash)) {
258
- return hash;
259
- }
260
- }
261
- return undefined;
262
- }
263
- /**
264
- * Generate summary from agent output
265
- */
266
- static generateSummary(output, status) {
267
- // Get first 300 chars of meaningful content
268
- const lines = output
269
- .split('\n')
270
- .filter((l) => l.trim().length > 20)
271
- .slice(0, 3);
272
- let summary = lines.join(' ').substring(0, 300);
273
- // Add status if not already present
274
- if (!summary.toLowerCase().includes(status)) {
275
- summary = `[${status.toUpperCase()}] ${summary}`;
276
- }
277
- return summary;
278
- }
279
- /**
280
- * Count context loss events in output
281
- */
282
- static countContextLoss(output) {
283
- const contextLossPatterns = [
284
- /context.*loss/gi,
285
- /context.*window/gi,
286
- /ran out of.*context/gi,
287
- /context.*exceeded/gi,
288
- ];
289
- let count = 0;
290
- for (const pattern of contextLossPatterns) {
291
- const matches = output.match(pattern) || [];
292
- count += matches.length;
293
- }
294
- return Math.min(count, 10); // Cap at 10
295
- }
296
- /**
297
- * Check if iteration completion is detected
298
- */
299
- static isCompletionDetected(output) {
300
- const completionKeywords = [
301
- 'complete',
302
- 'done',
303
- 'finished',
304
- 'success',
305
- 'implemented',
306
- 'deployed',
307
- 'committed',
308
- ];
309
- const lowerOutput = output.toLowerCase();
310
- return completionKeywords.some((kw) => lowerOutput.includes(kw));
311
- }
312
- /**
313
- * Parse `npm audit --json` output.
314
- * Returns the highest severity found: 'critical' | 'high' | 'moderate' | 'low' | 'none'
315
- */
316
- static parseNpmAuditSeverity(jsonOutput) {
317
- try {
318
- const parsed = JSON.parse(jsonOutput);
319
- const v = parsed?.metadata?.vulnerabilities;
320
- if (!v)
321
- return 'none';
322
- if ((v.critical ?? 0) > 0)
323
- return 'critical';
324
- if ((v.high ?? 0) > 0)
325
- return 'high';
326
- if ((v.moderate ?? 0) > 0)
327
- return 'moderate';
328
- if ((v.low ?? 0) > 0)
329
- return 'low';
330
- return 'none';
331
- }
332
- catch {
333
- // Not valid JSON — try text-based fallback
334
- return this.parseSecurityOutputText(jsonOutput);
335
- }
336
- }
337
- /**
338
- * Parse text-based security tool output (trivy, semgrep, or npm audit without --json).
339
- * Returns the highest severity found: 'critical' | 'high' | 'moderate' | 'low' | 'none'
340
- */
341
- static parseSecurityOutputText(output) {
342
- const lower = output.toLowerCase();
343
- if (lower.includes('critical'))
344
- return 'critical';
345
- if (lower.includes(' high'))
346
- return 'high';
347
- if (lower.includes('moderate'))
348
- return 'moderate';
349
- if (lower.includes(' low'))
350
- return 'low';
351
- return 'none';
352
- }
353
- /**
354
- * Parse trivy JSON output (`trivy fs --format json`) for the highest severity found.
355
- */
356
- static parseTrivySeverity(jsonOutput) {
357
- try {
358
- const parsed = JSON.parse(jsonOutput);
359
- const severities = (parsed.Results ?? [])
360
- .flatMap((r) => r.Vulnerabilities ?? [])
361
- .map((v) => (v.Severity ?? '').toLowerCase());
362
- if (severities.includes('critical'))
363
- return 'critical';
364
- if (severities.includes('high'))
365
- return 'high';
366
- if (severities.includes('medium'))
367
- return 'moderate'; // trivy uses MEDIUM
368
- if (severities.includes('moderate'))
369
- return 'moderate';
370
- if (severities.includes('low'))
371
- return 'low';
372
- return 'none';
373
- }
374
- catch {
375
- return this.parseSecurityOutputText(jsonOutput);
376
- }
377
- }
378
- /**
379
- * Parse semgrep JSON output (`semgrep --json`) for the highest severity found.
380
- */
381
- static parseSemgrepSeverity(jsonOutput) {
382
- try {
383
- const parsed = JSON.parse(jsonOutput);
384
- const severities = (parsed.results ?? []).map((r) => {
385
- const sev = (r.extra?.severity ?? r.extra?.metadata?.severity ?? '').toLowerCase();
386
- return sev;
387
- });
388
- if (severities.includes('critical') || severities.includes('error'))
389
- return 'high'; // semgrep ERROR ≈ high
390
- if (severities.includes('high'))
391
- return 'high';
392
- if (severities.includes('warning') ||
393
- severities.includes('medium') ||
394
- severities.includes('moderate'))
395
- return 'moderate';
396
- if (severities.includes('info') || severities.includes('low'))
397
- return 'low';
398
- return severities.length > 0 ? 'low' : 'none';
399
- }
400
- catch {
401
- return this.parseSecurityOutputText(jsonOutput);
402
- }
403
- }
404
- /**
405
- * Determine if a security gate passes given the found severity and the configured failOn threshold.
406
- * Severity order: none < low < moderate < high < critical
407
- */
408
- static securityGatePasses(foundSeverity, failOn) {
409
- const order = ['none', 'low', 'moderate', 'high', 'critical'];
410
- const foundIdx = order.indexOf(foundSeverity);
411
- const failIdx = order.indexOf(failOn);
412
- return foundIdx < failIdx;
413
- }
414
- }
415
- //# sourceMappingURL=ralph-parser.js.map