@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,544 +0,0 @@
1
- /**
2
- * Pure TypeScript HNSW (Hierarchical Navigable Small World) Index
3
- *
4
- * Approximate nearest neighbor search using cosine distance.
5
- * Zero native dependencies. Designed for <50K vectors.
6
- */
7
- /**
8
- * Min-heap (priority queue) for efficient nearest-neighbor search.
9
- * Replaces Array.sort() in the inner HNSW search loop:
10
- * O(log n) insert/extract vs O(n log n) full sort per iteration.
11
- */
12
- class MinHeap {
13
- heap = [];
14
- get size() {
15
- return this.heap.length;
16
- }
17
- peek() {
18
- return this.heap[0];
19
- }
20
- push(item) {
21
- this.heap.push(item);
22
- this.siftUp(this.heap.length - 1);
23
- }
24
- pop() {
25
- if (this.heap.length === 0)
26
- return undefined;
27
- const top = this.heap[0];
28
- const last = this.heap.pop();
29
- if (this.heap.length > 0) {
30
- this.heap[0] = last;
31
- this.siftDown(0);
32
- }
33
- return top;
34
- }
35
- toSorted() {
36
- return [...this.heap].sort((a, b) => a.distance - b.distance);
37
- }
38
- siftUp(i) {
39
- while (i > 0) {
40
- const parent = (i - 1) >> 1;
41
- if (this.heap[i].distance < this.heap[parent].distance) {
42
- [this.heap[i], this.heap[parent]] = [this.heap[parent], this.heap[i]];
43
- i = parent;
44
- }
45
- else
46
- break;
47
- }
48
- }
49
- siftDown(i) {
50
- const n = this.heap.length;
51
- while (true) {
52
- let smallest = i;
53
- const left = 2 * i + 1;
54
- const right = 2 * i + 2;
55
- if (left < n && this.heap[left].distance < this.heap[smallest].distance)
56
- smallest = left;
57
- if (right < n && this.heap[right].distance < this.heap[smallest].distance)
58
- smallest = right;
59
- if (smallest === i)
60
- break;
61
- [this.heap[i], this.heap[smallest]] = [this.heap[smallest], this.heap[i]];
62
- i = smallest;
63
- }
64
- }
65
- }
66
- /**
67
- * Max-heap for maintaining the k-farthest boundary in HNSW search results.
68
- */
69
- class MaxHeap {
70
- heap = [];
71
- get size() {
72
- return this.heap.length;
73
- }
74
- peek() {
75
- return this.heap[0];
76
- }
77
- push(item) {
78
- this.heap.push(item);
79
- this.siftUp(this.heap.length - 1);
80
- }
81
- popMax() {
82
- if (this.heap.length === 0)
83
- return undefined;
84
- const top = this.heap[0];
85
- const last = this.heap.pop();
86
- if (this.heap.length > 0) {
87
- this.heap[0] = last;
88
- this.siftDown(0);
89
- }
90
- return top;
91
- }
92
- toSorted() {
93
- return [...this.heap].sort((a, b) => a.distance - b.distance);
94
- }
95
- siftUp(i) {
96
- while (i > 0) {
97
- const parent = (i - 1) >> 1;
98
- if (this.heap[i].distance > this.heap[parent].distance) {
99
- [this.heap[i], this.heap[parent]] = [this.heap[parent], this.heap[i]];
100
- i = parent;
101
- }
102
- else
103
- break;
104
- }
105
- }
106
- siftDown(i) {
107
- const n = this.heap.length;
108
- while (true) {
109
- let largest = i;
110
- const left = 2 * i + 1;
111
- const right = 2 * i + 2;
112
- if (left < n && this.heap[left].distance > this.heap[largest].distance)
113
- largest = left;
114
- if (right < n && this.heap[right].distance > this.heap[largest].distance)
115
- largest = right;
116
- if (largest === i)
117
- break;
118
- [this.heap[i], this.heap[largest]] = [this.heap[largest], this.heap[i]];
119
- i = largest;
120
- }
121
- }
122
- }
123
- const MAGIC_NUMBER = 0x484e5357; // 'HNSW'
124
- const FORMAT_VERSION = 1;
125
- export class HNSWIndex {
126
- M;
127
- efConstruction;
128
- dimensions;
129
- maxNodes;
130
- mL; // normalization factor for layer assignment
131
- nodes = new Map();
132
- insertionOrder = []; // tracks insertion order for FIFO eviction
133
- entryPoint = null;
134
- maxLayer = 0;
135
- constructor(config) {
136
- this.M = config.M ?? 16;
137
- this.efConstruction = config.efConstruction ?? 200;
138
- this.dimensions = config.dimensions;
139
- this.maxNodes = config.maxNodes ?? 50_000;
140
- this.mL = 1 / Math.log(this.M);
141
- }
142
- get size() {
143
- return this.nodes.size;
144
- }
145
- /**
146
- * Cosine distance: 1 - cosine_similarity (0 = identical, 2 = opposite)
147
- */
148
- cosineDistance(a, b) {
149
- let dot = 0;
150
- let magA = 0;
151
- let magB = 0;
152
- for (let i = 0; i < a.length; i++) {
153
- dot += a[i] * b[i];
154
- magA += a[i] * a[i];
155
- magB += b[i] * b[i];
156
- }
157
- const denom = Math.sqrt(magA) * Math.sqrt(magB);
158
- if (denom === 0)
159
- return 1;
160
- return 1 - dot / denom;
161
- }
162
- /**
163
- * Assign a random layer for a new node
164
- */
165
- randomLayer() {
166
- return Math.floor(-Math.log(Math.random()) * this.mL);
167
- }
168
- /**
169
- * Greedy search at a single layer, returning ef nearest candidates.
170
- * Uses min-heap for candidates and max-heap for results to avoid
171
- * O(n log n) array sorts on every iteration (now O(log n) per operation).
172
- */
173
- searchLayer(query, entryLabel, ef, layer) {
174
- const visited = new Set();
175
- const candidates = new MinHeap(); // closest-first extraction
176
- const results = new MaxHeap(); // farthest-first for boundary check
177
- const entryNode = this.nodes.get(entryLabel);
178
- if (!entryNode)
179
- return [];
180
- const entryDist = this.cosineDistance(query, entryNode.vector);
181
- candidates.push({ label: entryLabel, distance: entryDist });
182
- results.push({ label: entryLabel, distance: entryDist });
183
- visited.add(entryLabel);
184
- while (candidates.size > 0) {
185
- const current = candidates.pop();
186
- const farthest = results.peek();
187
- if (current.distance > farthest.distance)
188
- break;
189
- const currentNode = this.nodes.get(current.label);
190
- if (!currentNode)
191
- continue;
192
- const connections = currentNode.connections.get(layer);
193
- if (!connections)
194
- continue;
195
- for (const neighborLabel of connections) {
196
- if (visited.has(neighborLabel))
197
- continue;
198
- visited.add(neighborLabel);
199
- const neighborNode = this.nodes.get(neighborLabel);
200
- if (!neighborNode)
201
- continue;
202
- const dist = this.cosineDistance(query, neighborNode.vector);
203
- const currentFarthest = results.peek();
204
- if (results.size < ef || dist < currentFarthest.distance) {
205
- candidates.push({ label: neighborLabel, distance: dist });
206
- results.push({ label: neighborLabel, distance: dist });
207
- if (results.size > ef) {
208
- results.popMax();
209
- }
210
- }
211
- }
212
- }
213
- return results.toSorted();
214
- }
215
- /**
216
- * Select M nearest neighbors from candidates, pruning for diversity
217
- */
218
- selectNeighbors(candidates, M) {
219
- candidates.sort((a, b) => a.distance - b.distance);
220
- return candidates.slice(0, M);
221
- }
222
- /**
223
- * Add a vector to the index
224
- */
225
- add(label, vector) {
226
- if (vector.length !== this.dimensions) {
227
- throw new Error(`Vector dimensions mismatch: expected ${this.dimensions}, got ${vector.length}`);
228
- }
229
- // If label already exists, remove first
230
- if (this.nodes.has(label)) {
231
- this.remove(label);
232
- }
233
- // Evict oldest nodes when at capacity to prevent unbounded memory growth
234
- while (this.nodes.size >= this.maxNodes && this.insertionOrder.length > 0) {
235
- const oldest = this.insertionOrder.shift();
236
- if (this.nodes.has(oldest)) {
237
- this.remove(oldest);
238
- }
239
- }
240
- const nodeLayer = this.randomLayer();
241
- const node = {
242
- label,
243
- vector: new Float32Array(vector),
244
- connections: new Map(),
245
- layer: nodeLayer,
246
- };
247
- // Initialize connection sets for all layers
248
- for (let l = 0; l <= nodeLayer; l++) {
249
- node.connections.set(l, new Set());
250
- }
251
- this.nodes.set(label, node);
252
- this.insertionOrder.push(label);
253
- if (this.entryPoint === null) {
254
- this.entryPoint = label;
255
- this.maxLayer = nodeLayer;
256
- return;
257
- }
258
- let currentLabel = this.entryPoint;
259
- // Traverse from top layer to nodeLayer + 1 (greedy, single nearest)
260
- for (let l = this.maxLayer; l > nodeLayer; l--) {
261
- const results = this.searchLayer(vector, currentLabel, 1, l);
262
- if (results.length > 0) {
263
- currentLabel = results[0].label;
264
- }
265
- }
266
- // Insert at layers nodeLayer down to 0
267
- for (let l = Math.min(nodeLayer, this.maxLayer); l >= 0; l--) {
268
- const candidates = this.searchLayer(vector, currentLabel, this.efConstruction, l);
269
- const neighbors = this.selectNeighbors(candidates, this.M);
270
- for (const neighbor of neighbors) {
271
- // Bidirectional connections
272
- node.connections.get(l).add(neighbor.label);
273
- const neighborNode = this.nodes.get(neighbor.label);
274
- if (neighborNode) {
275
- if (!neighborNode.connections.has(l)) {
276
- neighborNode.connections.set(l, new Set());
277
- }
278
- neighborNode.connections.get(l).add(label);
279
- // Prune neighbor connections if exceeding M
280
- const neighborConns = neighborNode.connections.get(l);
281
- if (neighborConns.size > this.M * 2) {
282
- const allCandidates = [];
283
- for (const connLabel of neighborConns) {
284
- if (connLabel === label)
285
- continue;
286
- const connNode = this.nodes.get(connLabel);
287
- if (connNode) {
288
- allCandidates.push({
289
- label: connLabel,
290
- distance: this.cosineDistance(neighborNode.vector, connNode.vector),
291
- });
292
- }
293
- }
294
- const kept = this.selectNeighbors(allCandidates, this.M * 2);
295
- neighborConns.clear();
296
- neighborConns.add(label); // always keep the new connection
297
- for (const k of kept) {
298
- neighborConns.add(k.label);
299
- }
300
- }
301
- }
302
- }
303
- if (candidates.length > 0) {
304
- currentLabel = candidates[0].label;
305
- }
306
- }
307
- // Update entry point if new node has higher layer
308
- if (nodeLayer > this.maxLayer) {
309
- this.entryPoint = label;
310
- this.maxLayer = nodeLayer;
311
- }
312
- }
313
- /**
314
- * Search k nearest neighbors
315
- */
316
- search(query, k, ef) {
317
- if (this.entryPoint === null || this.nodes.size === 0) {
318
- return [];
319
- }
320
- if (query.length !== this.dimensions) {
321
- throw new Error(`Query dimensions mismatch: expected ${this.dimensions}, got ${query.length}`);
322
- }
323
- const searchEf = Math.max(ef ?? 50, k);
324
- let currentLabel = this.entryPoint;
325
- // Traverse from top layer to layer 1 (greedy, single nearest)
326
- for (let l = this.maxLayer; l > 0; l--) {
327
- const results = this.searchLayer(query, currentLabel, 1, l);
328
- if (results.length > 0) {
329
- currentLabel = results[0].label;
330
- }
331
- }
332
- // Search at layer 0 with ef candidates
333
- const candidates = this.searchLayer(query, currentLabel, searchEf, 0);
334
- return candidates.slice(0, k);
335
- }
336
- /**
337
- * Remove a vector from the index
338
- */
339
- remove(label) {
340
- const node = this.nodes.get(label);
341
- if (!node)
342
- return;
343
- // Remove all connections to this node
344
- for (const [layer, connections] of node.connections) {
345
- for (const neighborLabel of connections) {
346
- const neighborNode = this.nodes.get(neighborLabel);
347
- if (neighborNode) {
348
- const neighborConns = neighborNode.connections.get(layer);
349
- if (neighborConns) {
350
- neighborConns.delete(label);
351
- }
352
- }
353
- }
354
- }
355
- this.nodes.delete(label);
356
- // Update entry point if needed
357
- if (this.entryPoint === label) {
358
- if (this.nodes.size === 0) {
359
- this.entryPoint = null;
360
- this.maxLayer = 0;
361
- }
362
- else {
363
- // Find node with highest layer
364
- let bestLabel = '';
365
- let bestLayer = -1;
366
- for (const [l, n] of this.nodes) {
367
- if (n.layer > bestLayer) {
368
- bestLayer = n.layer;
369
- bestLabel = l;
370
- }
371
- }
372
- this.entryPoint = bestLabel;
373
- this.maxLayer = bestLayer;
374
- }
375
- }
376
- }
377
- /**
378
- * Serialize the index to an ArrayBuffer for disk persistence
379
- * Format: [magic:u32][version:u8][dimensions:u32][M:u16][nodeCount:u32][...nodes]
380
- */
381
- serialize() {
382
- const nodeEntries = Array.from(this.nodes.entries());
383
- const labelToIndex = new Map();
384
- nodeEntries.forEach(([label], i) => labelToIndex.set(label, i));
385
- // Calculate buffer size
386
- let size = 4 + 1 + 4 + 2 + 4; // header
387
- size += 4; // entryPointIndex
388
- size += 4; // maxLayer
389
- for (const [, node] of nodeEntries) {
390
- const labelBytes = new TextEncoder().encode(node.label);
391
- size += 2 + labelBytes.length; // label length + label
392
- size += this.dimensions * 4; // vector (float32)
393
- size += 4; // node layer
394
- size += 4; // connection layer count
395
- for (const [, connections] of node.connections) {
396
- size += 4; // layer number
397
- size += 4; // connection count
398
- size += connections.size * 4; // neighbor indices (u32)
399
- }
400
- }
401
- const buffer = new ArrayBuffer(size);
402
- const view = new DataView(buffer);
403
- let offset = 0;
404
- // Header
405
- view.setUint32(offset, MAGIC_NUMBER, true);
406
- offset += 4;
407
- view.setUint8(offset, FORMAT_VERSION);
408
- offset += 1;
409
- view.setUint32(offset, this.dimensions, true);
410
- offset += 4;
411
- view.setUint16(offset, this.M, true);
412
- offset += 2;
413
- view.setUint32(offset, nodeEntries.length, true);
414
- offset += 4;
415
- view.setInt32(offset, this.entryPoint ? labelToIndex.get(this.entryPoint) : -1, true);
416
- offset += 4;
417
- view.setUint32(offset, this.maxLayer, true);
418
- offset += 4;
419
- // Nodes
420
- const encoder = new TextEncoder();
421
- for (const [, node] of nodeEntries) {
422
- const labelBytes = encoder.encode(node.label);
423
- view.setUint16(offset, labelBytes.length, true);
424
- offset += 2;
425
- new Uint8Array(buffer, offset, labelBytes.length).set(labelBytes);
426
- offset += labelBytes.length;
427
- // Vector
428
- for (let i = 0; i < this.dimensions; i++) {
429
- view.setFloat32(offset, node.vector[i], true);
430
- offset += 4;
431
- }
432
- // Layer
433
- view.setUint32(offset, node.layer, true);
434
- offset += 4;
435
- // Connections
436
- const layerCount = node.connections.size;
437
- view.setUint32(offset, layerCount, true);
438
- offset += 4;
439
- for (const [layer, connections] of node.connections) {
440
- view.setUint32(offset, layer, true);
441
- offset += 4;
442
- view.setUint32(offset, connections.size, true);
443
- offset += 4;
444
- for (const neighborLabel of connections) {
445
- const idx = labelToIndex.get(neighborLabel);
446
- view.setUint32(offset, idx ?? 0, true);
447
- offset += 4;
448
- }
449
- }
450
- }
451
- return buffer;
452
- }
453
- /**
454
- * Deserialize an index from an ArrayBuffer
455
- */
456
- static deserialize(buffer) {
457
- const view = new DataView(buffer);
458
- let offset = 0;
459
- const decoder = new TextDecoder();
460
- // Header
461
- const magic = view.getUint32(offset, true);
462
- offset += 4;
463
- if (magic !== MAGIC_NUMBER) {
464
- throw new Error('Invalid HNSW index file');
465
- }
466
- const version = view.getUint8(offset);
467
- offset += 1;
468
- if (version !== FORMAT_VERSION) {
469
- throw new Error(`Unsupported HNSW format version: ${version}`);
470
- }
471
- const dimensions = view.getUint32(offset, true);
472
- offset += 4;
473
- const M = view.getUint16(offset, true);
474
- offset += 2;
475
- const nodeCount = view.getUint32(offset, true);
476
- offset += 4;
477
- const entryPointIndex = view.getInt32(offset, true);
478
- offset += 4;
479
- const maxLayer = view.getUint32(offset, true);
480
- offset += 4;
481
- const index = new HNSWIndex({ dimensions, M });
482
- index.maxLayer = maxLayer;
483
- // Read all nodes first (labels + vectors + layers)
484
- const labels = [];
485
- const nodeData = [];
486
- for (let n = 0; n < nodeCount; n++) {
487
- const labelLen = view.getUint16(offset, true);
488
- offset += 2;
489
- const labelBytes = new Uint8Array(buffer, offset, labelLen);
490
- const label = decoder.decode(labelBytes);
491
- offset += labelLen;
492
- labels.push(label);
493
- const vector = new Float32Array(dimensions);
494
- for (let i = 0; i < dimensions; i++) {
495
- vector[i] = view.getFloat32(offset, true);
496
- offset += 4;
497
- }
498
- const layer = view.getUint32(offset, true);
499
- offset += 4;
500
- const layerCount = view.getUint32(offset, true);
501
- offset += 4;
502
- const connectionLayers = [];
503
- for (let lc = 0; lc < layerCount; lc++) {
504
- const connLayer = view.getUint32(offset, true);
505
- offset += 4;
506
- const connCount = view.getUint32(offset, true);
507
- offset += 4;
508
- const neighborIndices = [];
509
- for (let c = 0; c < connCount; c++) {
510
- neighborIndices.push(view.getUint32(offset, true));
511
- offset += 4;
512
- }
513
- connectionLayers.push({ layer: connLayer, neighborIndices });
514
- }
515
- nodeData.push({ label, vector, layer, connectionLayers });
516
- }
517
- // Reconstruct nodes with proper connections
518
- for (const data of nodeData) {
519
- const connections = new Map();
520
- for (const cl of data.connectionLayers) {
521
- const neighbors = new Set();
522
- for (const idx of cl.neighborIndices) {
523
- if (idx < labels.length) {
524
- neighbors.add(labels[idx]);
525
- }
526
- }
527
- connections.set(cl.layer, neighbors);
528
- }
529
- const node = {
530
- label: data.label,
531
- vector: data.vector,
532
- connections,
533
- layer: data.layer,
534
- };
535
- index.nodes.set(data.label, node);
536
- index.insertionOrder.push(data.label);
537
- }
538
- if (entryPointIndex >= 0 && entryPointIndex < labels.length) {
539
- index.entryPoint = labels[entryPointIndex];
540
- }
541
- return index;
542
- }
543
- }
544
- //# sourceMappingURL=hnsw-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../../src/memory/hnsw-index.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Cache Size Limiter with LRU Eviction
3
- *
4
- * Enforces configurable max database size (default 500MB)
5
- * using LRU-based eviction to protect the SSD.
6
- */
7
- import type { MemoryStore } from './memory-store.js';
8
- import type { HNSWIndex } from './hnsw-index.js';
9
- export interface EvictionResult {
10
- evictedCount: number;
11
- freedBytes: number;
12
- }
13
- export declare class MemoryCache {
14
- private store;
15
- private index;
16
- private maxSizeBytes;
17
- constructor(store: MemoryStore, index: HNSWIndex, maxSizeBytes?: number);
18
- getCurrentSize(): number;
19
- getUsagePercent(): number;
20
- isOverLimit(): boolean;
21
- /**
22
- * Check and evict if over limit
23
- * Returns number of evicted memories and freed bytes
24
- */
25
- checkAndEvict(activeSessionId?: string): EvictionResult;
26
- /**
27
- * Force eviction regardless of current size.
28
- * Evicts at least one batch of candidates.
29
- */
30
- forceEvict(activeSessionId?: string): EvictionResult;
31
- private evict;
32
- }
33
- //# sourceMappingURL=memory-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-cache.d.ts","sourceRoot":"","sources":["../../src/memory/memory-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAMjD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;IAIpB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;IAJf,OAAO,CAAC,YAAY,CAAS;gBAGnB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,SAAS,EACxB,YAAY,CAAC,EAAE,MAAM;IAKvB,cAAc,IAAI,MAAM;IAIxB,eAAe,IAAI,MAAM;IAIzB,WAAW,IAAI,OAAO;IAItB;;;OAGG;IACH,aAAa,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc;IAQvD;;;OAGG;IACH,UAAU,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc;IA8BpD,OAAO,CAAC,KAAK;CAoBd"}