@vinaes/succ 1.3.19

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 (781) hide show
  1. package/LICENSE +87 -0
  2. package/README.md +588 -0
  3. package/agents/succ-checkpoint-manager.md +51 -0
  4. package/agents/succ-code-reviewer.md +181 -0
  5. package/agents/succ-context-optimizer.md +83 -0
  6. package/agents/succ-debug.md +224 -0
  7. package/agents/succ-decision-auditor.md +74 -0
  8. package/agents/succ-deep-search.md +41 -0
  9. package/agents/succ-diff-reviewer.md +123 -0
  10. package/agents/succ-explore.md +83 -0
  11. package/agents/succ-general.md +109 -0
  12. package/agents/succ-knowledge-indexer.md +45 -0
  13. package/agents/succ-knowledge-mapper.md +61 -0
  14. package/agents/succ-memory-curator.md +43 -0
  15. package/agents/succ-memory-health-monitor.md +55 -0
  16. package/agents/succ-pattern-detective.md +62 -0
  17. package/agents/succ-plan.md +172 -0
  18. package/agents/succ-quality-improvement-coach.md +63 -0
  19. package/agents/succ-readiness-improver.md +62 -0
  20. package/agents/succ-session-handoff-orchestrator.md +54 -0
  21. package/agents/succ-session-reviewer.md +46 -0
  22. package/agents/succ-style-tracker.md +73 -0
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +749 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/commands/agents-md.d.ts +16 -0
  28. package/dist/commands/agents-md.d.ts.map +1 -0
  29. package/dist/commands/agents-md.js +33 -0
  30. package/dist/commands/agents-md.js.map +1 -0
  31. package/dist/commands/analyze-agents.d.ts +20 -0
  32. package/dist/commands/analyze-agents.d.ts.map +1 -0
  33. package/dist/commands/analyze-agents.js +305 -0
  34. package/dist/commands/analyze-agents.js.map +1 -0
  35. package/dist/commands/analyze-helpers.d.ts +22 -0
  36. package/dist/commands/analyze-helpers.d.ts.map +1 -0
  37. package/dist/commands/analyze-helpers.js +38 -0
  38. package/dist/commands/analyze-helpers.js.map +1 -0
  39. package/dist/commands/analyze-profile.d.ts +53 -0
  40. package/dist/commands/analyze-profile.d.ts.map +1 -0
  41. package/dist/commands/analyze-profile.js +638 -0
  42. package/dist/commands/analyze-profile.js.map +1 -0
  43. package/dist/commands/analyze-recursive.d.ts +20 -0
  44. package/dist/commands/analyze-recursive.d.ts.map +1 -0
  45. package/dist/commands/analyze-recursive.js +326 -0
  46. package/dist/commands/analyze-recursive.js.map +1 -0
  47. package/dist/commands/analyze-utils.d.ts +83 -0
  48. package/dist/commands/analyze-utils.d.ts.map +1 -0
  49. package/dist/commands/analyze-utils.js +541 -0
  50. package/dist/commands/analyze-utils.js.map +1 -0
  51. package/dist/commands/analyze.d.ts +15 -0
  52. package/dist/commands/analyze.d.ts.map +1 -0
  53. package/dist/commands/analyze.js +265 -0
  54. package/dist/commands/analyze.js.map +1 -0
  55. package/dist/commands/backfill.d.ts +22 -0
  56. package/dist/commands/backfill.d.ts.map +1 -0
  57. package/dist/commands/backfill.js +62 -0
  58. package/dist/commands/backfill.js.map +1 -0
  59. package/dist/commands/benchmark-quality.d.ts +18 -0
  60. package/dist/commands/benchmark-quality.d.ts.map +1 -0
  61. package/dist/commands/benchmark-quality.js +316 -0
  62. package/dist/commands/benchmark-quality.js.map +1 -0
  63. package/dist/commands/benchmark-sqlite-vec.d.ts +12 -0
  64. package/dist/commands/benchmark-sqlite-vec.d.ts.map +1 -0
  65. package/dist/commands/benchmark-sqlite-vec.js +281 -0
  66. package/dist/commands/benchmark-sqlite-vec.js.map +1 -0
  67. package/dist/commands/benchmark.d.ts +57 -0
  68. package/dist/commands/benchmark.d.ts.map +1 -0
  69. package/dist/commands/benchmark.js +682 -0
  70. package/dist/commands/benchmark.js.map +1 -0
  71. package/dist/commands/chat.d.ts +14 -0
  72. package/dist/commands/chat.d.ts.map +1 -0
  73. package/dist/commands/chat.js +84 -0
  74. package/dist/commands/chat.js.map +1 -0
  75. package/dist/commands/checkpoint.d.ts +27 -0
  76. package/dist/commands/checkpoint.d.ts.map +1 -0
  77. package/dist/commands/checkpoint.js +181 -0
  78. package/dist/commands/checkpoint.js.map +1 -0
  79. package/dist/commands/clear.d.ts +9 -0
  80. package/dist/commands/clear.d.ts.map +1 -0
  81. package/dist/commands/clear.js +31 -0
  82. package/dist/commands/clear.js.map +1 -0
  83. package/dist/commands/config.d.ts +26 -0
  84. package/dist/commands/config.d.ts.map +1 -0
  85. package/dist/commands/config.js +247 -0
  86. package/dist/commands/config.js.map +1 -0
  87. package/dist/commands/consolidate.d.ts +21 -0
  88. package/dist/commands/consolidate.d.ts.map +1 -0
  89. package/dist/commands/consolidate.js +117 -0
  90. package/dist/commands/consolidate.js.map +1 -0
  91. package/dist/commands/daemon.d.ts +48 -0
  92. package/dist/commands/daemon.d.ts.map +1 -0
  93. package/dist/commands/daemon.js +218 -0
  94. package/dist/commands/daemon.js.map +1 -0
  95. package/dist/commands/embedding.d.ts +26 -0
  96. package/dist/commands/embedding.d.ts.map +1 -0
  97. package/dist/commands/embedding.js +168 -0
  98. package/dist/commands/embedding.js.map +1 -0
  99. package/dist/commands/graph.d.ts +20 -0
  100. package/dist/commands/graph.d.ts.map +1 -0
  101. package/dist/commands/graph.js +128 -0
  102. package/dist/commands/graph.js.map +1 -0
  103. package/dist/commands/index-code.d.ts +23 -0
  104. package/dist/commands/index-code.d.ts.map +1 -0
  105. package/dist/commands/index-code.js +218 -0
  106. package/dist/commands/index-code.js.map +1 -0
  107. package/dist/commands/index.d.ts +23 -0
  108. package/dist/commands/index.d.ts.map +1 -0
  109. package/dist/commands/index.js +217 -0
  110. package/dist/commands/index.js.map +1 -0
  111. package/dist/commands/init-templates.d.ts +21 -0
  112. package/dist/commands/init-templates.d.ts.map +1 -0
  113. package/dist/commands/init-templates.js +487 -0
  114. package/dist/commands/init-templates.js.map +1 -0
  115. package/dist/commands/init.d.ts +10 -0
  116. package/dist/commands/init.d.ts.map +1 -0
  117. package/dist/commands/init.js +865 -0
  118. package/dist/commands/init.js.map +1 -0
  119. package/dist/commands/memories.d.ts +47 -0
  120. package/dist/commands/memories.d.ts.map +1 -0
  121. package/dist/commands/memories.js +597 -0
  122. package/dist/commands/memories.js.map +1 -0
  123. package/dist/commands/migrate.d.ts +19 -0
  124. package/dist/commands/migrate.d.ts.map +1 -0
  125. package/dist/commands/migrate.js +154 -0
  126. package/dist/commands/migrate.js.map +1 -0
  127. package/dist/commands/prd.d.ts +46 -0
  128. package/dist/commands/prd.d.ts.map +1 -0
  129. package/dist/commands/prd.js +378 -0
  130. package/dist/commands/prd.js.map +1 -0
  131. package/dist/commands/precompute-context.d.ts +11 -0
  132. package/dist/commands/precompute-context.d.ts.map +1 -0
  133. package/dist/commands/precompute-context.js +12 -0
  134. package/dist/commands/precompute-context.js.map +1 -0
  135. package/dist/commands/progress.d.ts +16 -0
  136. package/dist/commands/progress.d.ts.map +1 -0
  137. package/dist/commands/progress.js +38 -0
  138. package/dist/commands/progress.js.map +1 -0
  139. package/dist/commands/reindex.d.ts +17 -0
  140. package/dist/commands/reindex.d.ts.map +1 -0
  141. package/dist/commands/reindex.js +83 -0
  142. package/dist/commands/reindex.js.map +1 -0
  143. package/dist/commands/retention.d.ts +19 -0
  144. package/dist/commands/retention.d.ts.map +1 -0
  145. package/dist/commands/retention.js +162 -0
  146. package/dist/commands/retention.js.map +1 -0
  147. package/dist/commands/score.d.ts +10 -0
  148. package/dist/commands/score.d.ts.map +1 -0
  149. package/dist/commands/score.js +28 -0
  150. package/dist/commands/score.js.map +1 -0
  151. package/dist/commands/search.d.ts +7 -0
  152. package/dist/commands/search.d.ts.map +1 -0
  153. package/dist/commands/search.js +89 -0
  154. package/dist/commands/search.js.map +1 -0
  155. package/dist/commands/session-summary.d.ts +15 -0
  156. package/dist/commands/session-summary.d.ts.map +1 -0
  157. package/dist/commands/session-summary.js +16 -0
  158. package/dist/commands/session-summary.js.map +1 -0
  159. package/dist/commands/setup.d.ts +6 -0
  160. package/dist/commands/setup.d.ts.map +1 -0
  161. package/dist/commands/setup.js +222 -0
  162. package/dist/commands/setup.js.map +1 -0
  163. package/dist/commands/soul.d.ts +9 -0
  164. package/dist/commands/soul.d.ts.map +1 -0
  165. package/dist/commands/soul.js +256 -0
  166. package/dist/commands/soul.js.map +1 -0
  167. package/dist/commands/stats.d.ts +18 -0
  168. package/dist/commands/stats.d.ts.map +1 -0
  169. package/dist/commands/stats.js +138 -0
  170. package/dist/commands/stats.js.map +1 -0
  171. package/dist/commands/status.d.ts +2 -0
  172. package/dist/commands/status.d.ts.map +1 -0
  173. package/dist/commands/status.js +145 -0
  174. package/dist/commands/status.js.map +1 -0
  175. package/dist/commands/train-bpe.d.ts +8 -0
  176. package/dist/commands/train-bpe.d.ts.map +1 -0
  177. package/dist/commands/train-bpe.js +35 -0
  178. package/dist/commands/train-bpe.js.map +1 -0
  179. package/dist/commands/watch.d.ts +22 -0
  180. package/dist/commands/watch.d.ts.map +1 -0
  181. package/dist/commands/watch.js +171 -0
  182. package/dist/commands/watch.js.map +1 -0
  183. package/dist/daemon/analyzer.d.ts +54 -0
  184. package/dist/daemon/analyzer.d.ts.map +1 -0
  185. package/dist/daemon/analyzer.js +362 -0
  186. package/dist/daemon/analyzer.js.map +1 -0
  187. package/dist/daemon/client.d.ts +87 -0
  188. package/dist/daemon/client.d.ts.map +1 -0
  189. package/dist/daemon/client.js +356 -0
  190. package/dist/daemon/client.js.map +1 -0
  191. package/dist/daemon/index.d.ts +12 -0
  192. package/dist/daemon/index.d.ts.map +1 -0
  193. package/dist/daemon/index.js +12 -0
  194. package/dist/daemon/index.js.map +1 -0
  195. package/dist/daemon/service.d.ts +51 -0
  196. package/dist/daemon/service.d.ts.map +1 -0
  197. package/dist/daemon/service.js +1203 -0
  198. package/dist/daemon/service.js.map +1 -0
  199. package/dist/daemon/session-processor.d.ts +85 -0
  200. package/dist/daemon/session-processor.d.ts.map +1 -0
  201. package/dist/daemon/session-processor.js +571 -0
  202. package/dist/daemon/session-processor.js.map +1 -0
  203. package/dist/daemon/sessions.d.ts +62 -0
  204. package/dist/daemon/sessions.d.ts.map +1 -0
  205. package/dist/daemon/sessions.js +192 -0
  206. package/dist/daemon/sessions.js.map +1 -0
  207. package/dist/daemon/watcher.d.ts +52 -0
  208. package/dist/daemon/watcher.d.ts.map +1 -0
  209. package/dist/daemon/watcher.js +363 -0
  210. package/dist/daemon/watcher.js.map +1 -0
  211. package/dist/lib/agents-md-generator.d.ts +33 -0
  212. package/dist/lib/agents-md-generator.d.ts.map +1 -0
  213. package/dist/lib/agents-md-generator.js +156 -0
  214. package/dist/lib/agents-md-generator.js.map +1 -0
  215. package/dist/lib/ai-readiness.d.ts +132 -0
  216. package/dist/lib/ai-readiness.d.ts.map +1 -0
  217. package/dist/lib/ai-readiness.js +702 -0
  218. package/dist/lib/ai-readiness.js.map +1 -0
  219. package/dist/lib/analyze-state.d.ts +34 -0
  220. package/dist/lib/analyze-state.d.ts.map +1 -0
  221. package/dist/lib/analyze-state.js +106 -0
  222. package/dist/lib/analyze-state.js.map +1 -0
  223. package/dist/lib/benchmark.d.ts +250 -0
  224. package/dist/lib/benchmark.d.ts.map +1 -0
  225. package/dist/lib/benchmark.js +778 -0
  226. package/dist/lib/benchmark.js.map +1 -0
  227. package/dist/lib/bm25.d.ts +114 -0
  228. package/dist/lib/bm25.d.ts.map +1 -0
  229. package/dist/lib/bm25.js +727 -0
  230. package/dist/lib/bm25.js.map +1 -0
  231. package/dist/lib/bpe.d.ts +70 -0
  232. package/dist/lib/bpe.d.ts.map +1 -0
  233. package/dist/lib/bpe.js +270 -0
  234. package/dist/lib/bpe.js.map +1 -0
  235. package/dist/lib/checkpoint.d.ts +124 -0
  236. package/dist/lib/checkpoint.d.ts.map +1 -0
  237. package/dist/lib/checkpoint.js +321 -0
  238. package/dist/lib/checkpoint.js.map +1 -0
  239. package/dist/lib/chunker.d.ts +47 -0
  240. package/dist/lib/chunker.d.ts.map +1 -0
  241. package/dist/lib/chunker.js +358 -0
  242. package/dist/lib/chunker.js.map +1 -0
  243. package/dist/lib/claude-ws-transport.d.ts +76 -0
  244. package/dist/lib/claude-ws-transport.d.ts.map +1 -0
  245. package/dist/lib/claude-ws-transport.js +487 -0
  246. package/dist/lib/claude-ws-transport.js.map +1 -0
  247. package/dist/lib/compact-briefing.d.ts +22 -0
  248. package/dist/lib/compact-briefing.d.ts.map +1 -0
  249. package/dist/lib/compact-briefing.js +180 -0
  250. package/dist/lib/compact-briefing.js.map +1 -0
  251. package/dist/lib/config-defaults.d.ts +41 -0
  252. package/dist/lib/config-defaults.d.ts.map +1 -0
  253. package/dist/lib/config-defaults.js +99 -0
  254. package/dist/lib/config-defaults.js.map +1 -0
  255. package/dist/lib/config-display.d.ts +16 -0
  256. package/dist/lib/config-display.d.ts.map +1 -0
  257. package/dist/lib/config-display.js +408 -0
  258. package/dist/lib/config-display.js.map +1 -0
  259. package/dist/lib/config-types.d.ts +601 -0
  260. package/dist/lib/config-types.d.ts.map +1 -0
  261. package/dist/lib/config-types.js +7 -0
  262. package/dist/lib/config-types.js.map +1 -0
  263. package/dist/lib/config-validation.d.ts +19 -0
  264. package/dist/lib/config-validation.d.ts.map +1 -0
  265. package/dist/lib/config-validation.js +136 -0
  266. package/dist/lib/config-validation.js.map +1 -0
  267. package/dist/lib/config.d.ts +143 -0
  268. package/dist/lib/config.d.ts.map +1 -0
  269. package/dist/lib/config.js +689 -0
  270. package/dist/lib/config.js.map +1 -0
  271. package/dist/lib/consolidate.d.ts +115 -0
  272. package/dist/lib/consolidate.d.ts.map +1 -0
  273. package/dist/lib/consolidate.js +600 -0
  274. package/dist/lib/consolidate.js.map +1 -0
  275. package/dist/lib/db/bm25-indexes.d.ts +58 -0
  276. package/dist/lib/db/bm25-indexes.d.ts.map +1 -0
  277. package/dist/lib/db/bm25-indexes.js +333 -0
  278. package/dist/lib/db/bm25-indexes.js.map +1 -0
  279. package/dist/lib/db/bpe.d.ts +18 -0
  280. package/dist/lib/db/bpe.d.ts.map +1 -0
  281. package/dist/lib/db/bpe.js +44 -0
  282. package/dist/lib/db/bpe.js.map +1 -0
  283. package/dist/lib/db/connection.d.ts +47 -0
  284. package/dist/lib/db/connection.d.ts.map +1 -0
  285. package/dist/lib/db/connection.js +114 -0
  286. package/dist/lib/db/connection.js.map +1 -0
  287. package/dist/lib/db/documents.d.ts +58 -0
  288. package/dist/lib/db/documents.d.ts.map +1 -0
  289. package/dist/lib/db/documents.js +374 -0
  290. package/dist/lib/db/documents.js.map +1 -0
  291. package/dist/lib/db/file-hash.d.ts +26 -0
  292. package/dist/lib/db/file-hash.d.ts.map +1 -0
  293. package/dist/lib/db/file-hash.js +56 -0
  294. package/dist/lib/db/file-hash.js.map +1 -0
  295. package/dist/lib/db/global-memories.d.ts +62 -0
  296. package/dist/lib/db/global-memories.d.ts.map +1 -0
  297. package/dist/lib/db/global-memories.js +173 -0
  298. package/dist/lib/db/global-memories.js.map +1 -0
  299. package/dist/lib/db/graph.d.ts +163 -0
  300. package/dist/lib/db/graph.d.ts.map +1 -0
  301. package/dist/lib/db/graph.js +488 -0
  302. package/dist/lib/db/graph.js.map +1 -0
  303. package/dist/lib/db/helpers.d.ts +13 -0
  304. package/dist/lib/db/helpers.d.ts.map +1 -0
  305. package/dist/lib/db/helpers.js +21 -0
  306. package/dist/lib/db/helpers.js.map +1 -0
  307. package/dist/lib/db/hybrid-search.d.ts +64 -0
  308. package/dist/lib/db/hybrid-search.d.ts.map +1 -0
  309. package/dist/lib/db/hybrid-search.js +549 -0
  310. package/dist/lib/db/hybrid-search.js.map +1 -0
  311. package/dist/lib/db/index.d.ts +23 -0
  312. package/dist/lib/db/index.d.ts.map +1 -0
  313. package/dist/lib/db/index.js +23 -0
  314. package/dist/lib/db/index.js.map +1 -0
  315. package/dist/lib/db/memories.d.ts +174 -0
  316. package/dist/lib/db/memories.d.ts.map +1 -0
  317. package/dist/lib/db/memories.js +866 -0
  318. package/dist/lib/db/memories.js.map +1 -0
  319. package/dist/lib/db/retention.d.ts +64 -0
  320. package/dist/lib/db/retention.d.ts.map +1 -0
  321. package/dist/lib/db/retention.js +115 -0
  322. package/dist/lib/db/retention.js.map +1 -0
  323. package/dist/lib/db/schema.d.ts +29 -0
  324. package/dist/lib/db/schema.d.ts.map +1 -0
  325. package/dist/lib/db/schema.js +832 -0
  326. package/dist/lib/db/schema.js.map +1 -0
  327. package/dist/lib/db/skills.d.ts +65 -0
  328. package/dist/lib/db/skills.d.ts.map +1 -0
  329. package/dist/lib/db/skills.js +119 -0
  330. package/dist/lib/db/skills.js.map +1 -0
  331. package/dist/lib/db/token-frequency.d.ts +34 -0
  332. package/dist/lib/db/token-frequency.d.ts.map +1 -0
  333. package/dist/lib/db/token-frequency.js +92 -0
  334. package/dist/lib/db/token-frequency.js.map +1 -0
  335. package/dist/lib/db/token-stats.d.ts +43 -0
  336. package/dist/lib/db/token-stats.d.ts.map +1 -0
  337. package/dist/lib/db/token-stats.js +59 -0
  338. package/dist/lib/db/token-stats.js.map +1 -0
  339. package/dist/lib/db/types.d.ts +57 -0
  340. package/dist/lib/db/types.d.ts.map +1 -0
  341. package/dist/lib/db/types.js +5 -0
  342. package/dist/lib/db/types.js.map +1 -0
  343. package/dist/lib/db/web-search-history.d.ts +22 -0
  344. package/dist/lib/db/web-search-history.d.ts.map +1 -0
  345. package/dist/lib/db/web-search-history.js +107 -0
  346. package/dist/lib/db/web-search-history.js.map +1 -0
  347. package/dist/lib/debug/state.d.ts +17 -0
  348. package/dist/lib/debug/state.d.ts.map +1 -0
  349. package/dist/lib/debug/state.js +131 -0
  350. package/dist/lib/debug/state.js.map +1 -0
  351. package/dist/lib/debug/types.d.ts +74 -0
  352. package/dist/lib/debug/types.d.ts.map +1 -0
  353. package/dist/lib/debug/types.js +85 -0
  354. package/dist/lib/debug/types.js.map +1 -0
  355. package/dist/lib/embedding-pool.d.ts +37 -0
  356. package/dist/lib/embedding-pool.d.ts.map +1 -0
  357. package/dist/lib/embedding-pool.js +159 -0
  358. package/dist/lib/embedding-pool.js.map +1 -0
  359. package/dist/lib/embedding-worker.d.ts +7 -0
  360. package/dist/lib/embedding-worker.d.ts.map +1 -0
  361. package/dist/lib/embedding-worker.js +49 -0
  362. package/dist/lib/embedding-worker.js.map +1 -0
  363. package/dist/lib/embeddings.d.ts +54 -0
  364. package/dist/lib/embeddings.d.ts.map +1 -0
  365. package/dist/lib/embeddings.js +437 -0
  366. package/dist/lib/embeddings.js.map +1 -0
  367. package/dist/lib/errors.d.ts +40 -0
  368. package/dist/lib/errors.d.ts.map +1 -0
  369. package/dist/lib/errors.js +66 -0
  370. package/dist/lib/errors.js.map +1 -0
  371. package/dist/lib/fault-logger.d.ts +35 -0
  372. package/dist/lib/fault-logger.d.ts.map +1 -0
  373. package/dist/lib/fault-logger.js +182 -0
  374. package/dist/lib/fault-logger.js.map +1 -0
  375. package/dist/lib/graph/centrality.d.ts +34 -0
  376. package/dist/lib/graph/centrality.d.ts.map +1 -0
  377. package/dist/lib/graph/centrality.js +76 -0
  378. package/dist/lib/graph/centrality.js.map +1 -0
  379. package/dist/lib/graph/cleanup.d.ts +36 -0
  380. package/dist/lib/graph/cleanup.d.ts.map +1 -0
  381. package/dist/lib/graph/cleanup.js +96 -0
  382. package/dist/lib/graph/cleanup.js.map +1 -0
  383. package/dist/lib/graph/community-detection.d.ts +61 -0
  384. package/dist/lib/graph/community-detection.d.ts.map +1 -0
  385. package/dist/lib/graph/community-detection.js +218 -0
  386. package/dist/lib/graph/community-detection.js.map +1 -0
  387. package/dist/lib/graph/contextual-proximity.d.ts +41 -0
  388. package/dist/lib/graph/contextual-proximity.d.ts.map +1 -0
  389. package/dist/lib/graph/contextual-proximity.js +125 -0
  390. package/dist/lib/graph/contextual-proximity.js.map +1 -0
  391. package/dist/lib/graph/llm-relations.d.ts +54 -0
  392. package/dist/lib/graph/llm-relations.d.ts.map +1 -0
  393. package/dist/lib/graph/llm-relations.js +265 -0
  394. package/dist/lib/graph/llm-relations.js.map +1 -0
  395. package/dist/lib/graph-export.d.ts +13 -0
  396. package/dist/lib/graph-export.d.ts.map +1 -0
  397. package/dist/lib/graph-export.js +637 -0
  398. package/dist/lib/graph-export.js.map +1 -0
  399. package/dist/lib/graph-scheduler.d.ts +7 -0
  400. package/dist/lib/graph-scheduler.d.ts.map +1 -0
  401. package/dist/lib/graph-scheduler.js +21 -0
  402. package/dist/lib/graph-scheduler.js.map +1 -0
  403. package/dist/lib/indexer.d.ts +36 -0
  404. package/dist/lib/indexer.d.ts.map +1 -0
  405. package/dist/lib/indexer.js +226 -0
  406. package/dist/lib/indexer.js.map +1 -0
  407. package/dist/lib/learning-delta.d.ts +35 -0
  408. package/dist/lib/learning-delta.d.ts.map +1 -0
  409. package/dist/lib/learning-delta.js +53 -0
  410. package/dist/lib/learning-delta.js.map +1 -0
  411. package/dist/lib/llm.d.ts +118 -0
  412. package/dist/lib/llm.d.ts.map +1 -0
  413. package/dist/lib/llm.js +439 -0
  414. package/dist/lib/llm.js.map +1 -0
  415. package/dist/lib/lock.d.ts +27 -0
  416. package/dist/lib/lock.d.ts.map +1 -0
  417. package/dist/lib/lock.js +143 -0
  418. package/dist/lib/lock.js.map +1 -0
  419. package/dist/lib/md-fetch.d.ts +61 -0
  420. package/dist/lib/md-fetch.d.ts.map +1 -0
  421. package/dist/lib/md-fetch.js +141 -0
  422. package/dist/lib/md-fetch.js.map +1 -0
  423. package/dist/lib/mmr.d.ts +29 -0
  424. package/dist/lib/mmr.d.ts.map +1 -0
  425. package/dist/lib/mmr.js +89 -0
  426. package/dist/lib/mmr.js.map +1 -0
  427. package/dist/lib/onboarding/ai-chat.d.ts +11 -0
  428. package/dist/lib/onboarding/ai-chat.d.ts.map +1 -0
  429. package/dist/lib/onboarding/ai-chat.js +85 -0
  430. package/dist/lib/onboarding/ai-chat.js.map +1 -0
  431. package/dist/lib/onboarding/index.d.ts +7 -0
  432. package/dist/lib/onboarding/index.d.ts.map +1 -0
  433. package/dist/lib/onboarding/index.js +7 -0
  434. package/dist/lib/onboarding/index.js.map +1 -0
  435. package/dist/lib/onboarding/wizard.d.ts +11 -0
  436. package/dist/lib/onboarding/wizard.d.ts.map +1 -0
  437. package/dist/lib/onboarding/wizard.js +104 -0
  438. package/dist/lib/onboarding/wizard.js.map +1 -0
  439. package/dist/lib/ort-provider.d.ts +27 -0
  440. package/dist/lib/ort-provider.d.ts.map +1 -0
  441. package/dist/lib/ort-provider.js +83 -0
  442. package/dist/lib/ort-provider.js.map +1 -0
  443. package/dist/lib/ort-session.d.ts +32 -0
  444. package/dist/lib/ort-session.d.ts.map +1 -0
  445. package/dist/lib/ort-session.js +227 -0
  446. package/dist/lib/ort-session.js.map +1 -0
  447. package/dist/lib/patterns.d.ts +43 -0
  448. package/dist/lib/patterns.d.ts.map +1 -0
  449. package/dist/lib/patterns.js +395 -0
  450. package/dist/lib/patterns.js.map +1 -0
  451. package/dist/lib/prd/codebase-context.d.ts +27 -0
  452. package/dist/lib/prd/codebase-context.d.ts.map +1 -0
  453. package/dist/lib/prd/codebase-context.js +420 -0
  454. package/dist/lib/prd/codebase-context.js.map +1 -0
  455. package/dist/lib/prd/context.d.ts +24 -0
  456. package/dist/lib/prd/context.d.ts.map +1 -0
  457. package/dist/lib/prd/context.js +68 -0
  458. package/dist/lib/prd/context.js.map +1 -0
  459. package/dist/lib/prd/executor.d.ts +52 -0
  460. package/dist/lib/prd/executor.d.ts.map +1 -0
  461. package/dist/lib/prd/executor.js +154 -0
  462. package/dist/lib/prd/executor.js.map +1 -0
  463. package/dist/lib/prd/export.d.ts +40 -0
  464. package/dist/lib/prd/export.d.ts.map +1 -0
  465. package/dist/lib/prd/export.js +511 -0
  466. package/dist/lib/prd/export.js.map +1 -0
  467. package/dist/lib/prd/gates.d.ts +30 -0
  468. package/dist/lib/prd/gates.d.ts.map +1 -0
  469. package/dist/lib/prd/gates.js +100 -0
  470. package/dist/lib/prd/gates.js.map +1 -0
  471. package/dist/lib/prd/generate.d.ts +56 -0
  472. package/dist/lib/prd/generate.d.ts.map +1 -0
  473. package/dist/lib/prd/generate.js +357 -0
  474. package/dist/lib/prd/generate.js.map +1 -0
  475. package/dist/lib/prd/parse.d.ts +21 -0
  476. package/dist/lib/prd/parse.d.ts.map +1 -0
  477. package/dist/lib/prd/parse.js +270 -0
  478. package/dist/lib/prd/parse.js.map +1 -0
  479. package/dist/lib/prd/prompt-builder.d.ts +18 -0
  480. package/dist/lib/prd/prompt-builder.d.ts.map +1 -0
  481. package/dist/lib/prd/prompt-builder.js +61 -0
  482. package/dist/lib/prd/prompt-builder.js.map +1 -0
  483. package/dist/lib/prd/runner.d.ts +54 -0
  484. package/dist/lib/prd/runner.d.ts.map +1 -0
  485. package/dist/lib/prd/runner.js +563 -0
  486. package/dist/lib/prd/runner.js.map +1 -0
  487. package/dist/lib/prd/scheduler.d.ts +27 -0
  488. package/dist/lib/prd/scheduler.d.ts.map +1 -0
  489. package/dist/lib/prd/scheduler.js +113 -0
  490. package/dist/lib/prd/scheduler.js.map +1 -0
  491. package/dist/lib/prd/state.d.ts +77 -0
  492. package/dist/lib/prd/state.d.ts.map +1 -0
  493. package/dist/lib/prd/state.js +253 -0
  494. package/dist/lib/prd/state.js.map +1 -0
  495. package/dist/lib/prd/team-runner.d.ts +48 -0
  496. package/dist/lib/prd/team-runner.d.ts.map +1 -0
  497. package/dist/lib/prd/team-runner.js +261 -0
  498. package/dist/lib/prd/team-runner.js.map +1 -0
  499. package/dist/lib/prd/types.d.ts +169 -0
  500. package/dist/lib/prd/types.d.ts.map +1 -0
  501. package/dist/lib/prd/types.js +143 -0
  502. package/dist/lib/prd/types.js.map +1 -0
  503. package/dist/lib/prd/worktree.d.ts +54 -0
  504. package/dist/lib/prd/worktree.d.ts.map +1 -0
  505. package/dist/lib/prd/worktree.js +255 -0
  506. package/dist/lib/prd/worktree.js.map +1 -0
  507. package/dist/lib/precompute-context.d.ts +48 -0
  508. package/dist/lib/precompute-context.d.ts.map +1 -0
  509. package/dist/lib/precompute-context.js +265 -0
  510. package/dist/lib/precompute-context.js.map +1 -0
  511. package/dist/lib/pricing.d.ts +60 -0
  512. package/dist/lib/pricing.d.ts.map +1 -0
  513. package/dist/lib/pricing.js +258 -0
  514. package/dist/lib/pricing.js.map +1 -0
  515. package/dist/lib/process-registry.d.ts +30 -0
  516. package/dist/lib/process-registry.d.ts.map +1 -0
  517. package/dist/lib/process-registry.js +92 -0
  518. package/dist/lib/process-registry.js.map +1 -0
  519. package/dist/lib/progress-log.d.ts +44 -0
  520. package/dist/lib/progress-log.d.ts.map +1 -0
  521. package/dist/lib/progress-log.js +58 -0
  522. package/dist/lib/progress-log.js.map +1 -0
  523. package/dist/lib/public-api.d.ts +56 -0
  524. package/dist/lib/public-api.d.ts.map +1 -0
  525. package/dist/lib/public-api.js +63 -0
  526. package/dist/lib/public-api.js.map +1 -0
  527. package/dist/lib/quality.d.ts +66 -0
  528. package/dist/lib/quality.d.ts.map +1 -0
  529. package/dist/lib/quality.js +486 -0
  530. package/dist/lib/quality.js.map +1 -0
  531. package/dist/lib/query-expansion.d.ts +16 -0
  532. package/dist/lib/query-expansion.d.ts.map +1 -0
  533. package/dist/lib/query-expansion.js +53 -0
  534. package/dist/lib/query-expansion.js.map +1 -0
  535. package/dist/lib/readiness.d.ts +35 -0
  536. package/dist/lib/readiness.d.ts.map +1 -0
  537. package/dist/lib/readiness.js +142 -0
  538. package/dist/lib/readiness.js.map +1 -0
  539. package/dist/lib/reference-embeddings.d.ts +39 -0
  540. package/dist/lib/reference-embeddings.d.ts.map +1 -0
  541. package/dist/lib/reference-embeddings.js +95 -0
  542. package/dist/lib/reference-embeddings.js.map +1 -0
  543. package/dist/lib/reflection-synthesizer.d.ts +27 -0
  544. package/dist/lib/reflection-synthesizer.d.ts.map +1 -0
  545. package/dist/lib/reflection-synthesizer.js +149 -0
  546. package/dist/lib/reflection-synthesizer.js.map +1 -0
  547. package/dist/lib/retention.d.ts +105 -0
  548. package/dist/lib/retention.d.ts.map +1 -0
  549. package/dist/lib/retention.js +246 -0
  550. package/dist/lib/retention.js.map +1 -0
  551. package/dist/lib/sensitive-filter.d.ts +34 -0
  552. package/dist/lib/sensitive-filter.d.ts.map +1 -0
  553. package/dist/lib/sensitive-filter.js +344 -0
  554. package/dist/lib/sensitive-filter.js.map +1 -0
  555. package/dist/lib/session-observations.d.ts +59 -0
  556. package/dist/lib/session-observations.d.ts.map +1 -0
  557. package/dist/lib/session-observations.js +128 -0
  558. package/dist/lib/session-observations.js.map +1 -0
  559. package/dist/lib/session-summary.d.ts +65 -0
  560. package/dist/lib/session-summary.d.ts.map +1 -0
  561. package/dist/lib/session-summary.js +344 -0
  562. package/dist/lib/session-summary.js.map +1 -0
  563. package/dist/lib/similarity-worker.d.ts +7 -0
  564. package/dist/lib/similarity-worker.d.ts.map +1 -0
  565. package/dist/lib/similarity-worker.js +36 -0
  566. package/dist/lib/similarity-worker.js.map +1 -0
  567. package/dist/lib/skills.d.ts +78 -0
  568. package/dist/lib/skills.d.ts.map +1 -0
  569. package/dist/lib/skills.js +439 -0
  570. package/dist/lib/skills.js.map +1 -0
  571. package/dist/lib/skyll-client.d.ts +59 -0
  572. package/dist/lib/skyll-client.d.ts.map +1 -0
  573. package/dist/lib/skyll-client.js +257 -0
  574. package/dist/lib/skyll-client.js.map +1 -0
  575. package/dist/lib/storage/backends/interface.d.ts +383 -0
  576. package/dist/lib/storage/backends/interface.d.ts.map +1 -0
  577. package/dist/lib/storage/backends/interface.js +12 -0
  578. package/dist/lib/storage/backends/interface.js.map +1 -0
  579. package/dist/lib/storage/backends/postgresql.d.ts +454 -0
  580. package/dist/lib/storage/backends/postgresql.d.ts.map +1 -0
  581. package/dist/lib/storage/backends/postgresql.js +2528 -0
  582. package/dist/lib/storage/backends/postgresql.js.map +1 -0
  583. package/dist/lib/storage/benchmark.d.ts +16 -0
  584. package/dist/lib/storage/benchmark.d.ts.map +1 -0
  585. package/dist/lib/storage/benchmark.js +219 -0
  586. package/dist/lib/storage/benchmark.js.map +1 -0
  587. package/dist/lib/storage/dispatcher-export.d.ts +108 -0
  588. package/dist/lib/storage/dispatcher-export.d.ts.map +1 -0
  589. package/dist/lib/storage/dispatcher-export.js +593 -0
  590. package/dist/lib/storage/dispatcher-export.js.map +1 -0
  591. package/dist/lib/storage/dispatcher.d.ts +468 -0
  592. package/dist/lib/storage/dispatcher.d.ts.map +1 -0
  593. package/dist/lib/storage/dispatcher.js +1926 -0
  594. package/dist/lib/storage/dispatcher.js.map +1 -0
  595. package/dist/lib/storage/index.d.ts +481 -0
  596. package/dist/lib/storage/index.d.ts.map +1 -0
  597. package/dist/lib/storage/index.js +727 -0
  598. package/dist/lib/storage/index.js.map +1 -0
  599. package/dist/lib/storage/migration/export-import.d.ts +133 -0
  600. package/dist/lib/storage/migration/export-import.d.ts.map +1 -0
  601. package/dist/lib/storage/migration/export-import.js +264 -0
  602. package/dist/lib/storage/migration/export-import.js.map +1 -0
  603. package/dist/lib/storage/types.d.ts +313 -0
  604. package/dist/lib/storage/types.d.ts.map +1 -0
  605. package/dist/lib/storage/types.js +30 -0
  606. package/dist/lib/storage/types.js.map +1 -0
  607. package/dist/lib/storage/vector/interface.d.ts +89 -0
  608. package/dist/lib/storage/vector/interface.d.ts.map +1 -0
  609. package/dist/lib/storage/vector/interface.js +10 -0
  610. package/dist/lib/storage/vector/interface.js.map +1 -0
  611. package/dist/lib/storage/vector/qdrant.d.ts +221 -0
  612. package/dist/lib/storage/vector/qdrant.d.ts.map +1 -0
  613. package/dist/lib/storage/vector/qdrant.js +880 -0
  614. package/dist/lib/storage/vector/qdrant.js.map +1 -0
  615. package/dist/lib/supersession.d.ts +26 -0
  616. package/dist/lib/supersession.d.ts.map +1 -0
  617. package/dist/lib/supersession.js +97 -0
  618. package/dist/lib/supersession.js.map +1 -0
  619. package/dist/lib/temporal.d.ts +140 -0
  620. package/dist/lib/temporal.d.ts.map +1 -0
  621. package/dist/lib/temporal.js +303 -0
  622. package/dist/lib/temporal.js.map +1 -0
  623. package/dist/lib/token-budget.d.ts +79 -0
  624. package/dist/lib/token-budget.d.ts.map +1 -0
  625. package/dist/lib/token-budget.js +146 -0
  626. package/dist/lib/token-budget.js.map +1 -0
  627. package/dist/lib/token-counter.d.ts +27 -0
  628. package/dist/lib/token-counter.d.ts.map +1 -0
  629. package/dist/lib/token-counter.js +52 -0
  630. package/dist/lib/token-counter.js.map +1 -0
  631. package/dist/lib/tree-sitter/chunker-ts.d.ts +24 -0
  632. package/dist/lib/tree-sitter/chunker-ts.d.ts.map +1 -0
  633. package/dist/lib/tree-sitter/chunker-ts.js +206 -0
  634. package/dist/lib/tree-sitter/chunker-ts.js.map +1 -0
  635. package/dist/lib/tree-sitter/extractor.d.ts +43 -0
  636. package/dist/lib/tree-sitter/extractor.d.ts.map +1 -0
  637. package/dist/lib/tree-sitter/extractor.js +297 -0
  638. package/dist/lib/tree-sitter/extractor.js.map +1 -0
  639. package/dist/lib/tree-sitter/index.d.ts +13 -0
  640. package/dist/lib/tree-sitter/index.d.ts.map +1 -0
  641. package/dist/lib/tree-sitter/index.js +14 -0
  642. package/dist/lib/tree-sitter/index.js.map +1 -0
  643. package/dist/lib/tree-sitter/parser.d.ts +70 -0
  644. package/dist/lib/tree-sitter/parser.d.ts.map +1 -0
  645. package/dist/lib/tree-sitter/parser.js +354 -0
  646. package/dist/lib/tree-sitter/parser.js.map +1 -0
  647. package/dist/lib/tree-sitter/public.d.ts +28 -0
  648. package/dist/lib/tree-sitter/public.d.ts.map +1 -0
  649. package/dist/lib/tree-sitter/public.js +50 -0
  650. package/dist/lib/tree-sitter/public.js.map +1 -0
  651. package/dist/lib/tree-sitter/queries.d.ts +28 -0
  652. package/dist/lib/tree-sitter/queries.d.ts.map +1 -0
  653. package/dist/lib/tree-sitter/queries.js +383 -0
  654. package/dist/lib/tree-sitter/queries.js.map +1 -0
  655. package/dist/lib/tree-sitter/types.d.ts +69 -0
  656. package/dist/lib/tree-sitter/types.d.ts.map +1 -0
  657. package/dist/lib/tree-sitter/types.js +131 -0
  658. package/dist/lib/tree-sitter/types.js.map +1 -0
  659. package/dist/lib/working-memory-pipeline.d.ts +118 -0
  660. package/dist/lib/working-memory-pipeline.d.ts.map +1 -0
  661. package/dist/lib/working-memory-pipeline.js +344 -0
  662. package/dist/lib/working-memory-pipeline.js.map +1 -0
  663. package/dist/mcp/helpers.d.ts +44 -0
  664. package/dist/mcp/helpers.d.ts.map +1 -0
  665. package/dist/mcp/helpers.js +244 -0
  666. package/dist/mcp/helpers.js.map +1 -0
  667. package/dist/mcp/index.d.ts +10 -0
  668. package/dist/mcp/index.d.ts.map +1 -0
  669. package/dist/mcp/index.js +15 -0
  670. package/dist/mcp/index.js.map +1 -0
  671. package/dist/mcp/resources.d.ts +12 -0
  672. package/dist/mcp/resources.d.ts.map +1 -0
  673. package/dist/mcp/resources.js +136 -0
  674. package/dist/mcp/resources.js.map +1 -0
  675. package/dist/mcp/server.d.ts +22 -0
  676. package/dist/mcp/server.d.ts.map +1 -0
  677. package/dist/mcp/server.js +131 -0
  678. package/dist/mcp/server.js.map +1 -0
  679. package/dist/mcp/tools/config.d.ts +10 -0
  680. package/dist/mcp/tools/config.d.ts.map +1 -0
  681. package/dist/mcp/tools/config.js +236 -0
  682. package/dist/mcp/tools/config.js.map +1 -0
  683. package/dist/mcp/tools/dead-end.d.ts +9 -0
  684. package/dist/mcp/tools/dead-end.d.ts.map +1 -0
  685. package/dist/mcp/tools/dead-end.js +137 -0
  686. package/dist/mcp/tools/dead-end.js.map +1 -0
  687. package/dist/mcp/tools/debug.d.ts +9 -0
  688. package/dist/mcp/tools/debug.d.ts.map +1 -0
  689. package/dist/mcp/tools/debug.js +387 -0
  690. package/dist/mcp/tools/debug.js.map +1 -0
  691. package/dist/mcp/tools/graph.d.ts +9 -0
  692. package/dist/mcp/tools/graph.d.ts.map +1 -0
  693. package/dist/mcp/tools/graph.js +337 -0
  694. package/dist/mcp/tools/graph.js.map +1 -0
  695. package/dist/mcp/tools/indexing.d.ts +12 -0
  696. package/dist/mcp/tools/indexing.d.ts.map +1 -0
  697. package/dist/mcp/tools/indexing.js +289 -0
  698. package/dist/mcp/tools/indexing.js.map +1 -0
  699. package/dist/mcp/tools/memory.d.ts +14 -0
  700. package/dist/mcp/tools/memory.d.ts.map +1 -0
  701. package/dist/mcp/tools/memory.js +1170 -0
  702. package/dist/mcp/tools/memory.js.map +1 -0
  703. package/dist/mcp/tools/prd.d.ts +12 -0
  704. package/dist/mcp/tools/prd.d.ts.map +1 -0
  705. package/dist/mcp/tools/prd.js +276 -0
  706. package/dist/mcp/tools/prd.js.map +1 -0
  707. package/dist/mcp/tools/search.d.ts +9 -0
  708. package/dist/mcp/tools/search.d.ts.map +1 -0
  709. package/dist/mcp/tools/search.js +279 -0
  710. package/dist/mcp/tools/search.js.map +1 -0
  711. package/dist/mcp/tools/status.d.ts +10 -0
  712. package/dist/mcp/tools/status.d.ts.map +1 -0
  713. package/dist/mcp/tools/status.js +296 -0
  714. package/dist/mcp/tools/status.js.map +1 -0
  715. package/dist/mcp/tools/web-fetch.d.ts +10 -0
  716. package/dist/mcp/tools/web-fetch.d.ts.map +1 -0
  717. package/dist/mcp/tools/web-fetch.js +107 -0
  718. package/dist/mcp/tools/web-fetch.js.map +1 -0
  719. package/dist/mcp/tools/web-search.d.ts +14 -0
  720. package/dist/mcp/tools/web-search.d.ts.map +1 -0
  721. package/dist/mcp/tools/web-search.js +427 -0
  722. package/dist/mcp/tools/web-search.js.map +1 -0
  723. package/dist/mcp/types.d.ts +16 -0
  724. package/dist/mcp/types.d.ts.map +1 -0
  725. package/dist/mcp/types.js +5 -0
  726. package/dist/mcp/types.js.map +1 -0
  727. package/dist/mcp-server.d.ts +9 -0
  728. package/dist/mcp-server.d.ts.map +1 -0
  729. package/dist/mcp-server.js +9 -0
  730. package/dist/mcp-server.js.map +1 -0
  731. package/dist/prompts/analyze.d.ts +21 -0
  732. package/dist/prompts/analyze.d.ts.map +1 -0
  733. package/dist/prompts/analyze.js +27 -0
  734. package/dist/prompts/analyze.js.map +1 -0
  735. package/dist/prompts/briefing.d.ts +27 -0
  736. package/dist/prompts/briefing.d.ts.map +1 -0
  737. package/dist/prompts/briefing.js +123 -0
  738. package/dist/prompts/briefing.js.map +1 -0
  739. package/dist/prompts/chat.d.ts +8 -0
  740. package/dist/prompts/chat.d.ts.map +1 -0
  741. package/dist/prompts/chat.js +39 -0
  742. package/dist/prompts/chat.js.map +1 -0
  743. package/dist/prompts/daemon.d.ts +16 -0
  744. package/dist/prompts/daemon.d.ts.map +1 -0
  745. package/dist/prompts/daemon.js +46 -0
  746. package/dist/prompts/daemon.js.map +1 -0
  747. package/dist/prompts/extraction.d.ts +13 -0
  748. package/dist/prompts/extraction.d.ts.map +1 -0
  749. package/dist/prompts/extraction.js +93 -0
  750. package/dist/prompts/extraction.js.map +1 -0
  751. package/dist/prompts/index.d.ts +17 -0
  752. package/dist/prompts/index.d.ts.map +1 -0
  753. package/dist/prompts/index.js +27 -0
  754. package/dist/prompts/index.js.map +1 -0
  755. package/dist/prompts/memory.d.ts +11 -0
  756. package/dist/prompts/memory.d.ts.map +1 -0
  757. package/dist/prompts/memory.js +23 -0
  758. package/dist/prompts/memory.js.map +1 -0
  759. package/dist/prompts/onboarding.d.ts +16 -0
  760. package/dist/prompts/onboarding.d.ts.map +1 -0
  761. package/dist/prompts/onboarding.js +183 -0
  762. package/dist/prompts/onboarding.js.map +1 -0
  763. package/dist/prompts/prd.d.ts +12 -0
  764. package/dist/prompts/prd.d.ts.map +1 -0
  765. package/dist/prompts/prd.js +211 -0
  766. package/dist/prompts/prd.js.map +1 -0
  767. package/dist/prompts/quality.d.ts +11 -0
  768. package/dist/prompts/quality.d.ts.map +1 -0
  769. package/dist/prompts/quality.js +11 -0
  770. package/dist/prompts/quality.js.map +1 -0
  771. package/dist/prompts/skills.d.ts +16 -0
  772. package/dist/prompts/skills.d.ts.map +1 -0
  773. package/dist/prompts/skills.js +30 -0
  774. package/dist/prompts/skills.js.map +1 -0
  775. package/hooks/succ-post-tool.cjs +227 -0
  776. package/hooks/succ-pre-tool.cjs +312 -0
  777. package/hooks/succ-session-end.cjs +85 -0
  778. package/hooks/succ-session-start.cjs +618 -0
  779. package/hooks/succ-stop-reflection.cjs +87 -0
  780. package/hooks/succ-user-prompt.cjs +220 -0
  781. package/package.json +128 -0
@@ -0,0 +1,58 @@
1
+ import * as bm25 from '../bm25.js';
2
+ /**
3
+ * Get or build BM25 index for code search
4
+ */
5
+ declare function getCodeBm25Index(): bm25.BM25Index;
6
+ /**
7
+ * Invalidate BM25 index (call when documents change)
8
+ */
9
+ export declare function invalidateCodeBm25Index(): void;
10
+ /**
11
+ * Update BM25 index when a document is added/updated
12
+ */
13
+ export declare function updateCodeBm25Index(docId: number, content: string, symbolName?: string, signature?: string): void;
14
+ export { getCodeBm25Index };
15
+ /**
16
+ * Get or build BM25 index for docs search (brain/ files)
17
+ */
18
+ declare function getDocsBm25Index(): bm25.BM25Index;
19
+ /**
20
+ * Invalidate docs BM25 index
21
+ */
22
+ export declare function invalidateDocsBm25Index(): void;
23
+ /**
24
+ * Update docs BM25 index when a document is added/updated
25
+ */
26
+ export declare function updateDocsBm25Index(docId: number, content: string): void;
27
+ export { getDocsBm25Index };
28
+ /**
29
+ * Get or build BM25 index for memories
30
+ */
31
+ declare function getMemoriesBm25Index(): bm25.BM25Index;
32
+ /**
33
+ * Invalidate memories BM25 index
34
+ */
35
+ export declare function invalidateMemoriesBm25Index(): void;
36
+ /**
37
+ * Update memories BM25 index when a memory is added
38
+ */
39
+ export declare function updateMemoriesBm25Index(memoryId: number, content: string): void;
40
+ export { getMemoriesBm25Index };
41
+ /**
42
+ * Get or build BM25 index for global memories
43
+ */
44
+ declare function getGlobalMemoriesBm25Index(): bm25.BM25Index;
45
+ /**
46
+ * Invalidate global memories BM25 index
47
+ */
48
+ export declare function invalidateGlobalMemoriesBm25Index(): void;
49
+ /**
50
+ * Update global memories BM25 index when a memory is added
51
+ */
52
+ export declare function updateGlobalMemoriesBm25Index(memoryId: number, content: string): void;
53
+ export { getGlobalMemoriesBm25Index };
54
+ /**
55
+ * Invalidate all BM25 indexes (useful for full rebuild)
56
+ */
57
+ export declare function invalidateBM25Index(): void;
58
+ //# sourceMappingURL=bm25-indexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bm25-indexes.d.ts","sourceRoot":"","sources":["../../../src/lib/db/bm25-indexes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAYnC;;GAEG;AACH,iBAAS,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAqD1C;AAcD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAON;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAQ5B;;GAEG;AACH,iBAAS,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAuC1C;AAcD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKxE;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAQ5B;;GAEG;AACH,iBAAS,oBAAoB,IAAI,IAAI,CAAC,SAAS,CAuC9C;AAcD;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAIlD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAK/E;AAGD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAQhC;;GAEG;AACH,iBAAS,0BAA0B,IAAI,IAAI,CAAC,SAAS,CAuCpD;AAaD;;GAEG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAUxD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKrF;AAGD,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAMtC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C"}
@@ -0,0 +1,333 @@
1
+ import { getDb, getGlobalDb, onDbChange } from './connection.js';
2
+ import * as bm25 from '../bm25.js';
3
+ import { logWarn } from '../fault-logger.js';
4
+ // Batch size for paginated index rebuilds — limits peak memory during full rebuild.
5
+ const REBUILD_BATCH_SIZE = 5000;
6
+ // ============================================================================
7
+ // BM25 Index Management for Code
8
+ // ============================================================================
9
+ let codeBm25Index = null;
10
+ /**
11
+ * Get or build BM25 index for code search
12
+ */
13
+ function getCodeBm25Index() {
14
+ if (codeBm25Index)
15
+ return codeBm25Index;
16
+ const database = getDb();
17
+ // Try to load from metadata
18
+ const stored = database
19
+ .prepare("SELECT value FROM metadata WHERE key = 'bm25_code_index'")
20
+ .get();
21
+ if (stored) {
22
+ try {
23
+ codeBm25Index = bm25.deserializeIndex(stored.value);
24
+ return codeBm25Index;
25
+ }
26
+ catch {
27
+ // Invalid stored index, rebuild
28
+ }
29
+ }
30
+ // Build from documents in batches to limit peak memory
31
+ codeBm25Index = bm25.createEmptyIndex();
32
+ const stmt = database.prepare("SELECT id, content, symbol_name, signature FROM documents WHERE file_path LIKE 'code:%' ORDER BY id LIMIT ? OFFSET ?");
33
+ let offset = 0;
34
+ for (;;) {
35
+ const rows = stmt.all(REBUILD_BATCH_SIZE, offset);
36
+ if (rows.length === 0)
37
+ break;
38
+ for (const row of rows) {
39
+ bm25.addToIndex(codeBm25Index, {
40
+ id: row.id,
41
+ content: row.content,
42
+ symbolName: row.symbol_name ?? undefined,
43
+ signature: row.signature ?? undefined,
44
+ }, 'code');
45
+ }
46
+ offset += rows.length;
47
+ if (rows.length < REBUILD_BATCH_SIZE)
48
+ break;
49
+ }
50
+ // Store for future use
51
+ saveCodeBm25Index();
52
+ return codeBm25Index;
53
+ }
54
+ /**
55
+ * Save BM25 index to metadata
56
+ */
57
+ function saveCodeBm25Index() {
58
+ if (!codeBm25Index)
59
+ return;
60
+ const database = getDb();
61
+ const serialized = bm25.serializeIndex(codeBm25Index);
62
+ database
63
+ .prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES ('bm25_code_index', ?)")
64
+ .run(serialized);
65
+ }
66
+ /**
67
+ * Invalidate BM25 index (call when documents change)
68
+ */
69
+ export function invalidateCodeBm25Index() {
70
+ codeBm25Index = null;
71
+ const database = getDb();
72
+ database.prepare("DELETE FROM metadata WHERE key = 'bm25_code_index'").run();
73
+ }
74
+ /**
75
+ * Update BM25 index when a document is added/updated
76
+ */
77
+ export function updateCodeBm25Index(docId, content, symbolName, signature) {
78
+ const index = getCodeBm25Index();
79
+ // Remove old entry if exists
80
+ bm25.removeFromIndex(index, docId);
81
+ // Pass AST metadata for tokenizeCodeWithAST boost
82
+ bm25.addToIndex(index, { id: docId, content, symbolName, signature }, 'code');
83
+ saveCodeBm25Index();
84
+ }
85
+ // Export getter for use in hybrid search
86
+ export { getCodeBm25Index };
87
+ // ============================================================================
88
+ // BM25 Index Management for Docs (brain/ markdown files)
89
+ // ============================================================================
90
+ let docsBm25Index = null;
91
+ /**
92
+ * Get or build BM25 index for docs search (brain/ files)
93
+ */
94
+ function getDocsBm25Index() {
95
+ if (docsBm25Index)
96
+ return docsBm25Index;
97
+ const database = getDb();
98
+ // Try to load from metadata
99
+ const stored = database
100
+ .prepare("SELECT value FROM metadata WHERE key = 'bm25_docs_index'")
101
+ .get();
102
+ if (stored) {
103
+ try {
104
+ docsBm25Index = bm25.deserializeIndex(stored.value);
105
+ return docsBm25Index;
106
+ }
107
+ catch {
108
+ // Invalid stored index, rebuild
109
+ }
110
+ }
111
+ // Build from documents in batches to limit peak memory
112
+ docsBm25Index = bm25.createEmptyIndex();
113
+ const stmt = database.prepare("SELECT id, content FROM documents WHERE file_path NOT LIKE 'code:%' ORDER BY id LIMIT ? OFFSET ?");
114
+ let offset = 0;
115
+ for (;;) {
116
+ const rows = stmt.all(REBUILD_BATCH_SIZE, offset);
117
+ if (rows.length === 0)
118
+ break;
119
+ for (const row of rows) {
120
+ bm25.addToIndex(docsBm25Index, row, 'docs');
121
+ }
122
+ offset += rows.length;
123
+ if (rows.length < REBUILD_BATCH_SIZE)
124
+ break;
125
+ }
126
+ // Store for future use
127
+ saveDocsBm25Index();
128
+ return docsBm25Index;
129
+ }
130
+ /**
131
+ * Save docs BM25 index to metadata
132
+ */
133
+ function saveDocsBm25Index() {
134
+ if (!docsBm25Index)
135
+ return;
136
+ const database = getDb();
137
+ const serialized = bm25.serializeIndex(docsBm25Index);
138
+ database
139
+ .prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES ('bm25_docs_index', ?)")
140
+ .run(serialized);
141
+ }
142
+ /**
143
+ * Invalidate docs BM25 index
144
+ */
145
+ export function invalidateDocsBm25Index() {
146
+ docsBm25Index = null;
147
+ const database = getDb();
148
+ database.prepare("DELETE FROM metadata WHERE key = 'bm25_docs_index'").run();
149
+ }
150
+ /**
151
+ * Update docs BM25 index when a document is added/updated
152
+ */
153
+ export function updateDocsBm25Index(docId, content) {
154
+ const index = getDocsBm25Index();
155
+ bm25.removeFromIndex(index, docId);
156
+ bm25.addToIndex(index, { id: docId, content }, 'docs');
157
+ saveDocsBm25Index();
158
+ }
159
+ // Export getter for use in hybrid search
160
+ export { getDocsBm25Index };
161
+ // ============================================================================
162
+ // BM25 Index Management for Memories
163
+ // ============================================================================
164
+ let memoriesBm25Index = null;
165
+ /**
166
+ * Get or build BM25 index for memories
167
+ */
168
+ function getMemoriesBm25Index() {
169
+ if (memoriesBm25Index)
170
+ return memoriesBm25Index;
171
+ const database = getDb();
172
+ // Try to load from metadata
173
+ const stored = database
174
+ .prepare("SELECT value FROM metadata WHERE key = 'bm25_memories_index'")
175
+ .get();
176
+ if (stored) {
177
+ try {
178
+ memoriesBm25Index = bm25.deserializeIndex(stored.value);
179
+ return memoriesBm25Index;
180
+ }
181
+ catch {
182
+ // Invalid stored index, rebuild
183
+ }
184
+ }
185
+ // Build from memories in batches to limit peak memory
186
+ memoriesBm25Index = bm25.createEmptyIndex();
187
+ {
188
+ const stmt = database.prepare('SELECT id, content FROM memories ORDER BY id LIMIT ? OFFSET ?');
189
+ let offset = 0;
190
+ for (;;) {
191
+ const rows = stmt.all(REBUILD_BATCH_SIZE, offset);
192
+ if (rows.length === 0)
193
+ break;
194
+ for (const row of rows) {
195
+ bm25.addToIndex(memoriesBm25Index, row, 'docs');
196
+ }
197
+ offset += rows.length;
198
+ if (rows.length < REBUILD_BATCH_SIZE)
199
+ break;
200
+ }
201
+ }
202
+ // Store for future use
203
+ saveMemoriesBm25Index();
204
+ return memoriesBm25Index;
205
+ }
206
+ /**
207
+ * Save memories BM25 index to metadata
208
+ */
209
+ function saveMemoriesBm25Index() {
210
+ if (!memoriesBm25Index)
211
+ return;
212
+ const database = getDb();
213
+ const serialized = bm25.serializeIndex(memoriesBm25Index);
214
+ database
215
+ .prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES ('bm25_memories_index', ?)")
216
+ .run(serialized);
217
+ }
218
+ /**
219
+ * Invalidate memories BM25 index
220
+ */
221
+ export function invalidateMemoriesBm25Index() {
222
+ memoriesBm25Index = null;
223
+ const database = getDb();
224
+ database.prepare("DELETE FROM metadata WHERE key = 'bm25_memories_index'").run();
225
+ }
226
+ /**
227
+ * Update memories BM25 index when a memory is added
228
+ */
229
+ export function updateMemoriesBm25Index(memoryId, content) {
230
+ const index = getMemoriesBm25Index();
231
+ bm25.removeFromIndex(index, memoryId);
232
+ bm25.addToIndex(index, { id: memoryId, content }, 'docs');
233
+ saveMemoriesBm25Index();
234
+ }
235
+ // Export getter for use in hybrid search
236
+ export { getMemoriesBm25Index };
237
+ // ============================================================================
238
+ // BM25 Index Management for Global Memories
239
+ // ============================================================================
240
+ let globalMemoriesBm25Index = null;
241
+ /**
242
+ * Get or build BM25 index for global memories
243
+ */
244
+ function getGlobalMemoriesBm25Index() {
245
+ if (globalMemoriesBm25Index)
246
+ return globalMemoriesBm25Index;
247
+ const database = getGlobalDb();
248
+ // Try to load from metadata
249
+ const stored = database
250
+ .prepare("SELECT value FROM metadata WHERE key = 'bm25_memories_index'")
251
+ .get();
252
+ if (stored) {
253
+ try {
254
+ globalMemoriesBm25Index = bm25.deserializeIndex(stored.value);
255
+ return globalMemoriesBm25Index;
256
+ }
257
+ catch {
258
+ // Invalid stored index, rebuild
259
+ }
260
+ }
261
+ // Build from memories in batches to limit peak memory
262
+ globalMemoriesBm25Index = bm25.createEmptyIndex();
263
+ {
264
+ const stmt = database.prepare('SELECT id, content FROM memories ORDER BY id LIMIT ? OFFSET ?');
265
+ let offset = 0;
266
+ for (;;) {
267
+ const rows = stmt.all(REBUILD_BATCH_SIZE, offset);
268
+ if (rows.length === 0)
269
+ break;
270
+ for (const row of rows) {
271
+ bm25.addToIndex(globalMemoriesBm25Index, row, 'docs');
272
+ }
273
+ offset += rows.length;
274
+ if (rows.length < REBUILD_BATCH_SIZE)
275
+ break;
276
+ }
277
+ }
278
+ // Store for future use
279
+ saveGlobalMemoriesBm25Index();
280
+ return globalMemoriesBm25Index;
281
+ }
282
+ /**
283
+ * Save global memories BM25 index to metadata
284
+ */
285
+ function saveGlobalMemoriesBm25Index() {
286
+ if (!globalMemoriesBm25Index)
287
+ return;
288
+ const database = getGlobalDb();
289
+ database
290
+ .prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES ('bm25_memories_index', ?)")
291
+ .run(bm25.serializeIndex(globalMemoriesBm25Index));
292
+ }
293
+ /**
294
+ * Invalidate global memories BM25 index
295
+ */
296
+ export function invalidateGlobalMemoriesBm25Index() {
297
+ globalMemoriesBm25Index = null;
298
+ try {
299
+ const database = getGlobalDb();
300
+ database.prepare("DELETE FROM metadata WHERE key = 'bm25_memories_index'").run();
301
+ }
302
+ catch (err) {
303
+ logWarn('bm25', 'Failed to invalidate BM25 index', {
304
+ error: err instanceof Error ? err.message : String(err),
305
+ });
306
+ }
307
+ }
308
+ /**
309
+ * Update global memories BM25 index when a memory is added
310
+ */
311
+ export function updateGlobalMemoriesBm25Index(memoryId, content) {
312
+ const index = getGlobalMemoriesBm25Index();
313
+ bm25.removeFromIndex(index, memoryId);
314
+ bm25.addToIndex(index, { id: memoryId, content }, 'docs');
315
+ saveGlobalMemoriesBm25Index();
316
+ }
317
+ // Export getter for use in hybrid search
318
+ export { getGlobalMemoriesBm25Index };
319
+ // ============================================================================
320
+ // Invalidate All BM25 Indexes
321
+ // ============================================================================
322
+ /**
323
+ * Invalidate all BM25 indexes (useful for full rebuild)
324
+ */
325
+ export function invalidateBM25Index() {
326
+ invalidateCodeBm25Index();
327
+ invalidateDocsBm25Index();
328
+ invalidateMemoriesBm25Index();
329
+ invalidateGlobalMemoriesBm25Index();
330
+ }
331
+ // Auto-flush BM25 caches when DB is swapped via setDb()
332
+ onDbChange(invalidateBM25Index);
333
+ //# sourceMappingURL=bm25-indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bm25-indexes.js","sourceRoot":"","sources":["../../../src/lib/db/bm25-indexes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * BPE SQLite persistence — raw database operations for BPE vocabulary.
3
+ *
4
+ * BPE tables only exist in SQLite (not PostgreSQL).
5
+ * All functions are guarded by isPostgresBackend() checks.
6
+ */
7
+ export interface BPEVocabRow {
8
+ merges: string;
9
+ vocab: string;
10
+ vocab_size: number;
11
+ corpus_size: number;
12
+ trained_at: string;
13
+ }
14
+ export declare function initBPESchema(): void;
15
+ export declare function saveBPEVocabToDb(mergesJson: string, vocabJson: string, vocabSize: number, corpusSize: number, trainedAt: string): void;
16
+ export declare function loadBPEVocabFromDb(): BPEVocabRow | null;
17
+ export declare function getLastBPETrainTimeFromDb(): string | null;
18
+ //# sourceMappingURL=bpe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpe.d.ts","sourceRoot":"","sources":["../../../src/lib/db/bpe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,IAAI,IAAI,CAiBpC;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,IAAI,CAaN;AAED,wBAAgB,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAKvD;AAED,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CASzD"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * BPE SQLite persistence — raw database operations for BPE vocabulary.
3
+ *
4
+ * BPE tables only exist in SQLite (not PostgreSQL).
5
+ * All functions are guarded by isPostgresBackend() checks.
6
+ */
7
+ import { getDb } from './connection.js';
8
+ export function initBPESchema() {
9
+ const db = getDb();
10
+ db.exec(`
11
+ CREATE TABLE IF NOT EXISTS bpe_vocab (
12
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
13
+ merges TEXT NOT NULL,
14
+ vocab TEXT NOT NULL,
15
+ vocab_size INTEGER NOT NULL,
16
+ corpus_size INTEGER NOT NULL,
17
+ trained_at TEXT DEFAULT CURRENT_TIMESTAMP
18
+ );
19
+
20
+ CREATE TABLE IF NOT EXISTS bpe_metadata (
21
+ key TEXT PRIMARY KEY,
22
+ value TEXT NOT NULL
23
+ );
24
+ `);
25
+ }
26
+ export function saveBPEVocabToDb(mergesJson, vocabJson, vocabSize, corpusSize, trainedAt) {
27
+ initBPESchema();
28
+ const db = getDb();
29
+ db.prepare(`INSERT INTO bpe_vocab (merges, vocab, vocab_size, corpus_size, trained_at)
30
+ VALUES (?, ?, ?, ?, ?)`).run(mergesJson, vocabJson, vocabSize, corpusSize, trainedAt);
31
+ db.prepare('INSERT OR REPLACE INTO bpe_metadata (key, value) VALUES (?, ?)').run('last_trained', trainedAt);
32
+ }
33
+ export function loadBPEVocabFromDb() {
34
+ initBPESchema();
35
+ const db = getDb();
36
+ return db.prepare('SELECT * FROM bpe_vocab ORDER BY id DESC LIMIT 1').get();
37
+ }
38
+ export function getLastBPETrainTimeFromDb() {
39
+ initBPESchema();
40
+ const db = getDb();
41
+ const row = db.prepare('SELECT value FROM bpe_metadata WHERE key = ?').get('last_trained');
42
+ return row?.value ?? null;
43
+ }
44
+ //# sourceMappingURL=bpe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bpe.js","sourceRoot":"","sources":["../../../src/lib/db/bpe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAUxC,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,SAAiB;IAEjB,aAAa,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,EAAE,CAAC,OAAO,CACR;4BACwB,CACzB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAE/D,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAC9E,cAAc,EACd,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,aAAa,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,OAAO,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,EAAwB,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,aAAa,EAAE,CAAC;IAChB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,cAAc,CAEjF,CAAC;IAET,OAAO,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,47 @@
1
+ import Database from 'better-sqlite3';
2
+ /**
3
+ * Get a cached prepared statement for the local DB.
4
+ * Avoids re-preparing the same SQL on every function call.
5
+ * Cache is auto-cleared when setDb()/closeDb() is called.
6
+ */
7
+ export declare function cachedPrepare(sql: string): Database.Statement;
8
+ /**
9
+ * Get a cached prepared statement for the global DB.
10
+ * Cache is auto-cleared when closeGlobalDb() is called.
11
+ */
12
+ export declare function cachedPrepareGlobal(sql: string): Database.Statement;
13
+ /**
14
+ * Register a callback to run when setDb() swaps the database.
15
+ * Used by bm25-indexes.ts to flush cached indexes.
16
+ */
17
+ export declare function onDbChange(callback: () => void): void;
18
+ /**
19
+ * Apply SQLite performance tuning PRAGMAs.
20
+ * Safe with WAL mode; optimizes for read-heavy workloads.
21
+ */
22
+ export declare function applySqliteTuning(database: Database.Database): void;
23
+ /**
24
+ * Get the local database instance (synchronous, lazy initialization).
25
+ * Safe for Node.js single-threaded model - no async race conditions possible.
26
+ */
27
+ export declare function getDb(): Database.Database;
28
+ /**
29
+ * Get the global database instance (synchronous, lazy initialization).
30
+ */
31
+ export declare function getGlobalDb(): Database.Database;
32
+ /**
33
+ * Override the local database singleton with an external instance.
34
+ * Used by benchmarks, tests, and any code that needs an isolated DB.
35
+ * Flushes cached BM25 indexes since they reference the old DB.
36
+ * Call closeDb() to revert to default lazy-init behavior.
37
+ */
38
+ export declare function setDb(database: Database.Database): void;
39
+ /**
40
+ * Close the local database connection
41
+ */
42
+ export declare function closeDb(): void;
43
+ /**
44
+ * Close the global database connection
45
+ */
46
+ export declare function closeGlobalDb(): void;
47
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/lib/db/connection.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAgBtC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAO7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAOnE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAErD;AACD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAMnE;AAED;;;GAGG;AACH,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CASzC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAS/C;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAIvD;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAM9B;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC"}
@@ -0,0 +1,114 @@
1
+ import Database from 'better-sqlite3';
2
+ import { getDbPath, getGlobalDbPath } from '../config.js';
3
+ import { initDb, initGlobalDb, loadSqliteVec } from './schema.js';
4
+ let db = null;
5
+ let globalDb = null;
6
+ // Callbacks invoked when DB is swapped via setDb(). Avoids circular imports.
7
+ const onDbChangeCallbacks = [];
8
+ // ---------- Prepared statement cache ----------
9
+ // Per-database statement caches. Keyed by SQL string.
10
+ const stmtCacheLocal = new Map();
11
+ const stmtCacheGlobal = new Map();
12
+ /**
13
+ * Get a cached prepared statement for the local DB.
14
+ * Avoids re-preparing the same SQL on every function call.
15
+ * Cache is auto-cleared when setDb()/closeDb() is called.
16
+ */
17
+ export function cachedPrepare(sql) {
18
+ let stmt = stmtCacheLocal.get(sql);
19
+ if (!stmt) {
20
+ stmt = getDb().prepare(sql);
21
+ stmtCacheLocal.set(sql, stmt);
22
+ }
23
+ return stmt;
24
+ }
25
+ /**
26
+ * Get a cached prepared statement for the global DB.
27
+ * Cache is auto-cleared when closeGlobalDb() is called.
28
+ */
29
+ export function cachedPrepareGlobal(sql) {
30
+ let stmt = stmtCacheGlobal.get(sql);
31
+ if (!stmt) {
32
+ stmt = getGlobalDb().prepare(sql);
33
+ stmtCacheGlobal.set(sql, stmt);
34
+ }
35
+ return stmt;
36
+ }
37
+ /**
38
+ * Register a callback to run when setDb() swaps the database.
39
+ * Used by bm25-indexes.ts to flush cached indexes.
40
+ */
41
+ export function onDbChange(callback) {
42
+ onDbChangeCallbacks.push(callback);
43
+ }
44
+ /**
45
+ * Apply SQLite performance tuning PRAGMAs.
46
+ * Safe with WAL mode; optimizes for read-heavy workloads.
47
+ */
48
+ export function applySqliteTuning(database) {
49
+ database.pragma('busy_timeout = 5000');
50
+ database.pragma('cache_size = -16000'); // 16MB cache (default ~2MB)
51
+ database.pragma('mmap_size = 67108864'); // 64MB memory-mapped I/O
52
+ database.pragma('synchronous = NORMAL'); // Safe with WAL, skip fsync wait
53
+ database.pragma('temp_store = MEMORY'); // Temp tables in RAM
54
+ }
55
+ /**
56
+ * Get the local database instance (synchronous, lazy initialization).
57
+ * Safe for Node.js single-threaded model - no async race conditions possible.
58
+ */
59
+ export function getDb() {
60
+ if (!db) {
61
+ db = new Database(getDbPath());
62
+ db.pragma('journal_mode = WAL');
63
+ applySqliteTuning(db);
64
+ loadSqliteVec(db);
65
+ initDb(db);
66
+ }
67
+ return db;
68
+ }
69
+ /**
70
+ * Get the global database instance (synchronous, lazy initialization).
71
+ */
72
+ export function getGlobalDb() {
73
+ if (!globalDb) {
74
+ globalDb = new Database(getGlobalDbPath());
75
+ globalDb.pragma('journal_mode = WAL');
76
+ applySqliteTuning(globalDb);
77
+ loadSqliteVec(globalDb);
78
+ initGlobalDb(globalDb);
79
+ }
80
+ return globalDb;
81
+ }
82
+ /**
83
+ * Override the local database singleton with an external instance.
84
+ * Used by benchmarks, tests, and any code that needs an isolated DB.
85
+ * Flushes cached BM25 indexes since they reference the old DB.
86
+ * Call closeDb() to revert to default lazy-init behavior.
87
+ */
88
+ export function setDb(database) {
89
+ db = database;
90
+ stmtCacheLocal.clear();
91
+ for (const cb of onDbChangeCallbacks)
92
+ cb();
93
+ }
94
+ /**
95
+ * Close the local database connection
96
+ */
97
+ export function closeDb() {
98
+ stmtCacheLocal.clear();
99
+ if (db) {
100
+ db.close();
101
+ db = null;
102
+ }
103
+ }
104
+ /**
105
+ * Close the global database connection
106
+ */
107
+ export function closeGlobalDb() {
108
+ stmtCacheGlobal.clear();
109
+ if (globalDb) {
110
+ globalDb.close();
111
+ globalDb = null;
112
+ }
113
+ }
114
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/lib/db/connection.ts"],"names":[],"mappings":"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"}