@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,118 @@
1
+ /**
2
+ * Working Memory Pipeline
3
+ *
4
+ * Filters and scores memories for session startup context loading.
5
+ * Implements two-phase fetch: pinned memories first, then scored recent.
6
+ *
7
+ * 1. Validity filtering (via isValidAt from temporal.ts)
8
+ * 2. Pinned memories always included (correction_count >= 2 OR is_invariant)
9
+ * 3. Remaining slots filled by priority_score (or effectiveScore fallback)
10
+ * 4. Diversity filter removes near-duplicate embeddings (cosine > 0.85)
11
+ * 5. Fallback to recency if scoring data is missing
12
+ * 6. Telemetry for anomalies
13
+ */
14
+ /** Pinning threshold: memories with correction_count >= this are Tier 1 pins */
15
+ export declare const PIN_THRESHOLD = 2;
16
+ /** Max similarity allowed between two memories in working set */
17
+ export declare const DIVERSITY_THRESHOLD = 0.85;
18
+ /** Minimum fields needed from a raw memory row */
19
+ export interface WorkingMemoryCandidate {
20
+ id: number;
21
+ content: string;
22
+ quality_score: number | null;
23
+ access_count: number;
24
+ created_at: string;
25
+ last_accessed: string | null;
26
+ valid_from: string | null;
27
+ valid_until: string | null;
28
+ correction_count: number;
29
+ is_invariant: boolean;
30
+ type?: string | null;
31
+ tags?: string[] | string | null;
32
+ priority_score?: number | null;
33
+ }
34
+ /** Thrown when attempting to delete or invalidate a pinned (Tier 1) memory */
35
+ export declare class PinnedMemoryError extends Error {
36
+ readonly memoryId: number;
37
+ constructor(memoryId: number);
38
+ }
39
+ /**
40
+ * Detect if memory content contains invariant language (rules, constraints).
41
+ * Used to auto-set is_invariant on new memories.
42
+ * This is the fast sync path — regex only, covers 8 languages.
43
+ */
44
+ export declare function detectInvariant(content: string): boolean;
45
+ /**
46
+ * Canonical invariant phrases for reference embedding similarity.
47
+ * English only — the multilingual embedding model maps semantically similar
48
+ * content in ANY language to nearby vectors.
49
+ */
50
+ export declare const INVARIANT_REFERENCE_PHRASES: string[];
51
+ /**
52
+ * Detect invariant content using embedding similarity (language-agnostic).
53
+ * Fallback for when regex detectInvariant() misses non-covered languages.
54
+ * Uses the content embedding that's already computed at save time — zero extra API cost.
55
+ */
56
+ export declare function detectInvariantWithEmbedding(content: string, embedding: number[]): Promise<boolean>;
57
+ /**
58
+ * Clear cached invariant reference embeddings (for tests).
59
+ */
60
+ export declare function clearInvariantEmbeddingCache(): void;
61
+ /**
62
+ * Check if a memory is pinned (Tier 1 working memory).
63
+ */
64
+ export declare function isPinned(memory: {
65
+ is_invariant: boolean;
66
+ correction_count: number;
67
+ }): boolean;
68
+ /**
69
+ * Get the weight for a memory type. Higher = more important.
70
+ * Tags like "critical", "architecture", "security" add a +0.1 boost.
71
+ */
72
+ export declare function getTagWeight(type: string | null, tags: string[]): number;
73
+ /**
74
+ * Compute confidence-decayed quality score.
75
+ * Quality decays exponentially based on time since last access (half-life 7 days).
76
+ * Floor at 10% of quality_score to prevent total decay.
77
+ */
78
+ export declare function computeConfidenceDecay(qualityScore: number | null, lastAccessed: string | null, createdAt: string, now: Date): number;
79
+ /**
80
+ * Compute the priority_score for a memory.
81
+ * Formula: 0.30*is_invariant + 0.25*confidence_decayed + 0.20*correction_capped
82
+ * + 0.15*tag_weight + 0.10*access_capped
83
+ */
84
+ export declare function computePriorityScore(m: {
85
+ is_invariant: boolean;
86
+ quality_score: number | null;
87
+ correction_count: number;
88
+ type?: string | null;
89
+ tags?: string[] | string | null;
90
+ access_count: number;
91
+ last_accessed: string | null;
92
+ created_at: string;
93
+ }, now: Date): number;
94
+ /**
95
+ * Apply the working memory pipeline with two-phase fetch:
96
+ * Phase 1: Include all pinned memories (correction_count >= 2 OR is_invariant)
97
+ * Phase 2: Fill remaining slots with scored recent memories
98
+ *
99
+ * @param memories - Raw memories from backend (pre-sorted by created_at DESC)
100
+ * @param limit - Max total memories to return
101
+ * @param now - Current time (injectable for testing)
102
+ * @param pinned - Pinned memories from getPinnedMemories() — may overlap with memories
103
+ * @returns Pinned + scored memories, up to `limit`
104
+ */
105
+ export declare function applyWorkingMemoryPipeline<T extends WorkingMemoryCandidate>(memories: T[], limit: number, now?: Date, pinned?: T[]): T[];
106
+ /**
107
+ * Remove near-duplicate memories based on embedding cosine similarity.
108
+ * Greedy: iterate in order, skip if too similar to any already-selected.
109
+ *
110
+ * @param memories - Scored memories (order matters — higher priority first)
111
+ * @param getEmbeddings - Async function to fetch embeddings by IDs
112
+ * @param maxSimilarity - Threshold above which items are considered duplicates
113
+ * @returns Deduplicated list preserving original order
114
+ */
115
+ export declare function applyDiversityFilter<T extends {
116
+ id: number;
117
+ }>(memories: T[], getEmbeddings: (ids: number[]) => Promise<Map<number, number[]>>, maxSimilarity?: number): Promise<T[]>;
118
+ //# sourceMappingURL=working-memory-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"working-memory-pipeline.d.ts","sourceRoot":"","sources":["../../src/lib/working-memory-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,gFAAgF;AAChF,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAqBxC,kDAAkD;AAClD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAMD,8EAA8E;AAC9E,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBACrB,QAAQ,EAAE,MAAM;CAK7B;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiCxD;AAMD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,UAQvC,CAAC;AAMF;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAGnD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE7F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAMxE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,IAAI,GACR,MAAM,CAOR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE;IACD,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB,EACD,GAAG,EAAE,IAAI,GACR,MAAM,CAQR;AAmCD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,sBAAsB,EACzE,QAAQ,EAAE,CAAC,EAAE,EACb,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,IAAiB,EACtB,MAAM,CAAC,EAAE,CAAC,EAAE,GACX,CAAC,EAAE,CAsGL;AAMD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACjE,QAAQ,EAAE,CAAC,EAAE,EACb,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAChE,aAAa,GAAE,MAA4B,GAC1C,OAAO,CAAC,CAAC,EAAE,CAAC,CA4Bd"}
@@ -0,0 +1,344 @@
1
+ /**
2
+ * Working Memory Pipeline
3
+ *
4
+ * Filters and scores memories for session startup context loading.
5
+ * Implements two-phase fetch: pinned memories first, then scored recent.
6
+ *
7
+ * 1. Validity filtering (via isValidAt from temporal.ts)
8
+ * 2. Pinned memories always included (correction_count >= 2 OR is_invariant)
9
+ * 3. Remaining slots filled by priority_score (or effectiveScore fallback)
10
+ * 4. Diversity filter removes near-duplicate embeddings (cosine > 0.85)
11
+ * 5. Fallback to recency if scoring data is missing
12
+ * 6. Telemetry for anomalies
13
+ */
14
+ import { isValidAt } from './temporal.js';
15
+ import { calculateEffectiveScore } from './retention.js';
16
+ import { logWarn, logInfo } from './fault-logger.js';
17
+ const COMPONENT = 'working-memory';
18
+ /** Pinning threshold: memories with correction_count >= this are Tier 1 pins */
19
+ export const PIN_THRESHOLD = 2;
20
+ /** Max similarity allowed between two memories in working set */
21
+ export const DIVERSITY_THRESHOLD = 0.85;
22
+ // ============================================================================
23
+ // Type weights for priority_score formula
24
+ // ============================================================================
25
+ const TYPE_WEIGHTS = {
26
+ decision: 1.0,
27
+ error: 0.9,
28
+ dead_end: 0.85,
29
+ pattern: 0.8,
30
+ learning: 0.7,
31
+ observation: 0.5,
32
+ };
33
+ const BOOST_TAGS = /^(critical|architecture|security)$/i;
34
+ // ============================================================================
35
+ // Error class
36
+ // ============================================================================
37
+ /** Thrown when attempting to delete or invalidate a pinned (Tier 1) memory */
38
+ export class PinnedMemoryError extends Error {
39
+ memoryId;
40
+ constructor(memoryId) {
41
+ super(`Memory ${memoryId} is pinned (Tier 1) and cannot be deleted or invalidated`);
42
+ this.name = 'PinnedMemoryError';
43
+ this.memoryId = memoryId;
44
+ }
45
+ }
46
+ // ============================================================================
47
+ // Pure functions
48
+ // ============================================================================
49
+ /**
50
+ * Detect if memory content contains invariant language (rules, constraints).
51
+ * Used to auto-set is_invariant on new memories.
52
+ * This is the fast sync path — regex only, covers 8 languages.
53
+ */
54
+ export function detectInvariant(content) {
55
+ const text = content.toLowerCase().replace(/\s+/g, ' ');
56
+ const patterns = [
57
+ // English
58
+ /\b(?:always|never|must|shall)\s+\w/,
59
+ /\b(?:must not|shall not|do not|don't)\s+\w/,
60
+ /\b(?:required|mandatory|forbidden|prohibited)\b/,
61
+ /\b(?:critical|important)\s*:/,
62
+ /\bnever\b.*\bwithout\b/,
63
+ /\balways\b.*\bbefore\b/,
64
+ // Russian
65
+ /(?:всегда|никогда|обязательно|запрещено|нельзя|недопустимо)\s+\S/,
66
+ /(?:нельзя|запрещено|недопустимо)(?:\s|$)/,
67
+ /(?:должен|должна|должно|должны)\s+\S/,
68
+ /(?:ни в коем случае|ни при каких|строго запрещ)/,
69
+ /(?:критично|важно)\s*:/,
70
+ // German
71
+ /\b(?:immer|niemals|nie)\s+\w/,
72
+ /\b(?:muss|müssen|verboten|pflicht)\b/,
73
+ // French
74
+ /\b(?:toujours|jamais)\s+\w/,
75
+ /\b(?:obligatoire|interdit|défendu)\b/,
76
+ // Spanish
77
+ /\b(?:siempre|nunca|jamás)\s+\w/,
78
+ /\b(?:obligatorio|prohibido|requerido)\b/,
79
+ // Chinese
80
+ /(?:必须|绝不|永远不|禁止|始终|一定要|不得|不允许|不可以)/,
81
+ // Japanese
82
+ /(?:必ず|絶対に|禁止|してはいけない|しなければならない|常に)/,
83
+ // Korean
84
+ /(?:반드시|절대로|금지|항상|해서는 안)/,
85
+ ];
86
+ return patterns.some((p) => p.test(text));
87
+ }
88
+ // ============================================================================
89
+ // Embedding-based invariant detection (language-agnostic fallback)
90
+ // ============================================================================
91
+ /**
92
+ * Canonical invariant phrases for reference embedding similarity.
93
+ * English only — the multilingual embedding model maps semantically similar
94
+ * content in ANY language to nearby vectors.
95
+ */
96
+ export const INVARIANT_REFERENCE_PHRASES = [
97
+ 'You must always do this without exception',
98
+ 'This is strictly forbidden and must never be done',
99
+ 'This is a mandatory requirement that cannot be skipped',
100
+ 'Critical rule: never violate this under any circumstances',
101
+ 'This is permanently required and shall not be changed',
102
+ 'Under no circumstances should this be modified or removed',
103
+ 'This policy is non-negotiable and applies at all times',
104
+ ];
105
+ const INVARIANT_REF_SET = 'invariant-detection';
106
+ const INVARIANT_SIMILARITY_THRESHOLD = 0.55;
107
+ let _invariantRefsRegistered = false;
108
+ /**
109
+ * Detect invariant content using embedding similarity (language-agnostic).
110
+ * Fallback for when regex detectInvariant() misses non-covered languages.
111
+ * Uses the content embedding that's already computed at save time — zero extra API cost.
112
+ */
113
+ export async function detectInvariantWithEmbedding(content, embedding) {
114
+ if (embedding.length === 0)
115
+ return false;
116
+ try {
117
+ const { registerReferenceSet, maxSimilarityToReference } = await import('./reference-embeddings.js');
118
+ if (!_invariantRefsRegistered) {
119
+ registerReferenceSet(INVARIANT_REF_SET, INVARIANT_REFERENCE_PHRASES);
120
+ _invariantRefsRegistered = true;
121
+ }
122
+ const maxSim = await maxSimilarityToReference(embedding, INVARIANT_REF_SET);
123
+ return maxSim >= INVARIANT_SIMILARITY_THRESHOLD;
124
+ }
125
+ catch {
126
+ return false;
127
+ }
128
+ }
129
+ /**
130
+ * Clear cached invariant reference embeddings (for tests).
131
+ */
132
+ export function clearInvariantEmbeddingCache() {
133
+ _invariantRefsRegistered = false;
134
+ // The actual embeddings are cleared via clearReferenceCache() from reference-embeddings.ts
135
+ }
136
+ /**
137
+ * Check if a memory is pinned (Tier 1 working memory).
138
+ */
139
+ export function isPinned(memory) {
140
+ return memory.is_invariant || memory.correction_count >= PIN_THRESHOLD;
141
+ }
142
+ /**
143
+ * Get the weight for a memory type. Higher = more important.
144
+ * Tags like "critical", "architecture", "security" add a +0.1 boost.
145
+ */
146
+ export function getTagWeight(type, tags) {
147
+ let weight = TYPE_WEIGHTS[type ?? 'observation'] ?? 0.5;
148
+ if (tags.some((t) => BOOST_TAGS.test(t))) {
149
+ weight = Math.min(weight + 0.1, 1.0);
150
+ }
151
+ return weight;
152
+ }
153
+ /**
154
+ * Compute confidence-decayed quality score.
155
+ * Quality decays exponentially based on time since last access (half-life 7 days).
156
+ * Floor at 10% of quality_score to prevent total decay.
157
+ */
158
+ export function computeConfidenceDecay(qualityScore, lastAccessed, createdAt, now) {
159
+ const qs = qualityScore ?? 0.5;
160
+ const ref = lastAccessed ?? createdAt;
161
+ const hoursSince = (now.getTime() - new Date(ref).getTime()) / 3_600_000;
162
+ const halfLife = 168; // 7 days in hours
163
+ const decay = Math.exp((-Math.LN2 / halfLife) * Math.max(hoursSince, 0));
164
+ return qs * Math.max(decay, 0.1);
165
+ }
166
+ /**
167
+ * Compute the priority_score for a memory.
168
+ * Formula: 0.30*is_invariant + 0.25*confidence_decayed + 0.20*correction_capped
169
+ * + 0.15*tag_weight + 0.10*access_capped
170
+ */
171
+ export function computePriorityScore(m, now) {
172
+ const tags = parseTags(m.tags);
173
+ const isInv = m.is_invariant ? 1 : 0;
174
+ const confidence = computeConfidenceDecay(m.quality_score, m.last_accessed, m.created_at, now);
175
+ const corrCapped = Math.min(m.correction_count, 5) / 5;
176
+ const tagW = getTagWeight(m.type ?? null, tags);
177
+ const accessCapped = Math.min(m.access_count, 20) / 20;
178
+ return 0.3 * isInv + 0.25 * confidence + 0.2 * corrCapped + 0.15 * tagW + 0.1 * accessCapped;
179
+ }
180
+ /** Parse tags from various formats (string[], JSON string, null) */
181
+ function parseTags(tags) {
182
+ if (!tags)
183
+ return [];
184
+ if (Array.isArray(tags))
185
+ return tags;
186
+ try {
187
+ return JSON.parse(tags);
188
+ }
189
+ catch {
190
+ return [];
191
+ }
192
+ }
193
+ // ============================================================================
194
+ // Cosine similarity (local copy — avoids importing embeddings.ts with heavy deps)
195
+ // ============================================================================
196
+ function cosineSimilarity(a, b) {
197
+ if (a.length !== b.length || a.length === 0)
198
+ return 0;
199
+ let dot = 0;
200
+ let normA = 0;
201
+ let normB = 0;
202
+ for (let i = 0; i < a.length; i++) {
203
+ dot += a[i] * b[i];
204
+ normA += a[i] * a[i];
205
+ normB += b[i] * b[i];
206
+ }
207
+ const denom = Math.sqrt(normA) * Math.sqrt(normB);
208
+ return denom === 0 ? 0 : dot / denom;
209
+ }
210
+ // ============================================================================
211
+ // Main pipeline
212
+ // ============================================================================
213
+ /**
214
+ * Apply the working memory pipeline with two-phase fetch:
215
+ * Phase 1: Include all pinned memories (correction_count >= 2 OR is_invariant)
216
+ * Phase 2: Fill remaining slots with scored recent memories
217
+ *
218
+ * @param memories - Raw memories from backend (pre-sorted by created_at DESC)
219
+ * @param limit - Max total memories to return
220
+ * @param now - Current time (injectable for testing)
221
+ * @param pinned - Pinned memories from getPinnedMemories() — may overlap with memories
222
+ * @returns Pinned + scored memories, up to `limit`
223
+ */
224
+ export function applyWorkingMemoryPipeline(memories, limit, now = new Date(), pinned) {
225
+ const totalBefore = memories.length + (pinned?.length ?? 0);
226
+ // Step 1: Collect and deduplicate pinned memories
227
+ const pinnedIds = new Set();
228
+ const pinnedValid = [];
229
+ if (pinned && pinned.length > 0) {
230
+ for (const m of pinned) {
231
+ if (isValidAt(m.valid_from, m.valid_until, now) && !pinnedIds.has(m.id)) {
232
+ pinnedIds.add(m.id);
233
+ pinnedValid.push(m);
234
+ }
235
+ }
236
+ }
237
+ // Also check memories array for any that are pinned (in case no separate fetch)
238
+ for (const m of memories) {
239
+ if (isPinned(m) && isValidAt(m.valid_from, m.valid_until, now) && !pinnedIds.has(m.id)) {
240
+ pinnedIds.add(m.id);
241
+ pinnedValid.push(m);
242
+ }
243
+ }
244
+ if (pinnedValid.length > 0) {
245
+ logInfo(COMPONENT, `${pinnedValid.length} pinned memories included (Tier 1)`, {
246
+ pinned: pinnedValid.length,
247
+ invariant: pinnedValid.filter((m) => m.is_invariant).length,
248
+ corrected: pinnedValid.filter((m) => m.correction_count >= PIN_THRESHOLD).length,
249
+ });
250
+ }
251
+ // If pinned already fills limit, just return them
252
+ if (pinnedValid.length >= limit) {
253
+ return pinnedValid.slice(0, limit);
254
+ }
255
+ // Step 2: Filter remaining memories by validity, excluding already-pinned
256
+ const remainingSlots = limit - pinnedValid.length;
257
+ const candidates = memories.filter((m) => !pinnedIds.has(m.id) && isValidAt(m.valid_from, m.valid_until, now));
258
+ const pinnedFromMemories = memories.filter((m) => pinnedIds.has(m.id)).length;
259
+ const filteredOut = memories.length - candidates.length - pinnedFromMemories;
260
+ const filteredPercent = memories.length > 0 ? (filteredOut / memories.length) * 100 : 0;
261
+ if (filteredPercent > 10) {
262
+ logInfo(COMPONENT, `Validity filter removed ${filteredOut}/${memories.length} candidates (${filteredPercent.toFixed(1)}%)`, { total: memories.length, filtered: filteredOut });
263
+ }
264
+ if (candidates.length === 0) {
265
+ if (pinnedValid.length > 0)
266
+ return pinnedValid;
267
+ if (totalBefore > 0) {
268
+ logWarn(COMPONENT, 'Pipeline returned 0 memories from non-empty input', {
269
+ totalBefore,
270
+ afterValidity: 0,
271
+ });
272
+ }
273
+ return [];
274
+ }
275
+ // Step 3: Score and rank remaining candidates
276
+ // Use priority_score if available, otherwise fall back to effectiveScore
277
+ const hasAnyScore = candidates.some((m) => m.priority_score != null || m.quality_score !== null);
278
+ if (!hasAnyScore) {
279
+ logWarn(COMPONENT, 'All candidates lack quality_score — falling back to recency order', {
280
+ count: candidates.length,
281
+ });
282
+ return [...pinnedValid, ...candidates.slice(0, remainingSlots)];
283
+ }
284
+ const scored = candidates.map((m) => {
285
+ // Prefer precomputed priority_score
286
+ if (m.priority_score != null) {
287
+ return { memory: m, score: m.priority_score };
288
+ }
289
+ // Fallback to calculateEffectiveScore
290
+ const retentionInput = {
291
+ id: m.id,
292
+ content: m.content,
293
+ quality_score: m.quality_score,
294
+ access_count: m.access_count,
295
+ created_at: m.created_at,
296
+ last_accessed: m.last_accessed,
297
+ };
298
+ try {
299
+ const result = calculateEffectiveScore(retentionInput);
300
+ return { memory: m, score: result.effectiveScore };
301
+ }
302
+ catch {
303
+ return { memory: m, score: 0 };
304
+ }
305
+ });
306
+ scored.sort((a, b) => b.score - a.score);
307
+ return [...pinnedValid, ...scored.slice(0, remainingSlots).map((s) => s.memory)];
308
+ }
309
+ // ============================================================================
310
+ // Diversity filter (async — uses embeddings)
311
+ // ============================================================================
312
+ /**
313
+ * Remove near-duplicate memories based on embedding cosine similarity.
314
+ * Greedy: iterate in order, skip if too similar to any already-selected.
315
+ *
316
+ * @param memories - Scored memories (order matters — higher priority first)
317
+ * @param getEmbeddings - Async function to fetch embeddings by IDs
318
+ * @param maxSimilarity - Threshold above which items are considered duplicates
319
+ * @returns Deduplicated list preserving original order
320
+ */
321
+ export async function applyDiversityFilter(memories, getEmbeddings, maxSimilarity = DIVERSITY_THRESHOLD) {
322
+ if (memories.length <= 1)
323
+ return memories;
324
+ const embeddings = await getEmbeddings(memories.map((m) => m.id));
325
+ if (embeddings.size === 0)
326
+ return memories;
327
+ const selected = [];
328
+ const selectedEmbeddings = [];
329
+ for (const m of memories) {
330
+ const emb = embeddings.get(m.id);
331
+ if (!emb) {
332
+ // Keep items without embeddings (can't compare)
333
+ selected.push(m);
334
+ continue;
335
+ }
336
+ const tooSimilar = selectedEmbeddings.some((sEmb) => cosineSimilarity(emb, sEmb) > maxSimilarity);
337
+ if (!tooSimilar) {
338
+ selected.push(m);
339
+ selectedEmbeddings.push(emb);
340
+ }
341
+ }
342
+ return selected;
343
+ }
344
+ //# sourceMappingURL=working-memory-pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"working-memory-pipeline.js","sourceRoot":"","sources":["../../src/lib/working-memory-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAEnC,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAE/B,iEAAiE;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,+EAA+E;AAC/E,0CAA0C;AAC1C,+EAA+E;AAE/E,MAAM,YAAY,GAA2B;IAC3C,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,GAAG;CACjB,CAAC;AAEF,MAAM,UAAU,GAAG,qCAAqC,CAAC;AAuBzD,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,8EAA8E;AAC9E,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1B,QAAQ,CAAS;IACjC,YAAY,QAAgB;QAC1B,KAAK,CAAC,UAAU,QAAQ,0DAA0D,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG;QACf,UAAU;QACV,oCAAoC;QACpC,4CAA4C;QAC5C,iDAAiD;QACjD,8BAA8B;QAC9B,wBAAwB;QACxB,wBAAwB;QACxB,UAAU;QACV,kEAAkE;QAClE,0CAA0C;QAC1C,sCAAsC;QACtC,iDAAiD;QACjD,wBAAwB;QACxB,SAAS;QACT,8BAA8B;QAC9B,sCAAsC;QACtC,SAAS;QACT,4BAA4B;QAC5B,sCAAsC;QACtC,UAAU;QACV,gCAAgC;QAChC,yCAAyC;QACzC,UAAU;QACV,oCAAoC;QACpC,WAAW;QACX,oCAAoC;QACpC,SAAS;QACT,yBAAyB;KAC1B,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,+EAA+E;AAC/E,mEAAmE;AACnE,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,2CAA2C;IAC3C,mDAAmD;IACnD,wDAAwD;IACxD,2DAA2D;IAC3D,uDAAuD;IACvD,2DAA2D;IAC3D,wDAAwD;CACzD,CAAC;AAEF,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAChD,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAC5C,IAAI,wBAAwB,GAAG,KAAK,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAe,EACf,SAAmB;IAEnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,GACtD,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAE5C,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,oBAAoB,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;YACrE,wBAAwB,GAAG,IAAI,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC5E,OAAO,MAAM,IAAI,8BAA8B,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,wBAAwB,GAAG,KAAK,CAAC;IACjC,2FAA2F;AAC7F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,MAA2D;IAClF,OAAO,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,gBAAgB,IAAI,aAAa,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAmB,EAAE,IAAc;IAC9D,IAAI,MAAM,GAAG,YAAY,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC;IACxD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,YAA2B,EAC3B,YAA2B,EAC3B,SAAiB,EACjB,GAAS;IAET,MAAM,EAAE,GAAG,YAAY,IAAI,GAAG,CAAC;IAC/B,MAAM,GAAG,GAAG,YAAY,IAAI,SAAS,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;IACzE,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,kBAAkB;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,CASC,EACD,GAAS;IAET,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,sBAAsB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACvD,OAAO,GAAG,GAAG,KAAK,GAAG,IAAI,GAAG,UAAU,GAAG,GAAG,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,YAAY,CAAC;AAC/F,CAAC;AAED,oEAAoE;AACpE,SAAS,SAAS,CAAC,IAA0C;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,kFAAkF;AAClF,+EAA+E;AAE/E,SAAS,gBAAgB,CAAC,CAAW,EAAE,CAAW;IAChD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;AACvC,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAa,EACb,KAAa,EACb,MAAY,IAAI,IAAI,EAAE,EACtB,MAAY;IAEZ,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAE5D,kDAAkD;IAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,WAAW,GAAQ,EAAE,CAAC;IAE5B,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACvF,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,oCAAoC,EAAE;YAC5E,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM;YAC3D,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,aAAa,CAAC,CAAC,MAAM;SACjF,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QAChC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,0EAA0E;IAC1E,MAAM,cAAc,GAAG,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAC3E,CAAC;IAEF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9E,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAC7E,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAExF,IAAI,eAAe,GAAG,EAAE,EAAE,CAAC;QACzB,OAAO,CACL,SAAS,EACT,2BAA2B,WAAW,IAAI,QAAQ,CAAC,MAAM,gBAAgB,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EACvG,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAClD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,WAAW,CAAC;QAC/C,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,SAAS,EAAE,mDAAmD,EAAE;gBACtE,WAAW;gBACX,aAAa,EAAE,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,8CAA8C;IAC9C,yEAAyE;IACzE,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC;IAEjG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,SAAS,EAAE,mEAAmE,EAAE;YACtF,KAAK,EAAE,UAAU,CAAC,MAAM;SACzB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,oCAAoC;QACpC,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAC7B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;QAChD,CAAC;QACD,sCAAsC;QACtC,MAAM,cAAc,GAAuB;YACzC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,aAAa,EAAE,CAAC,CAAC,aAAa;SAC/B,CAAC;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;YACvD,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAEzC,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAa,EACb,aAAgE,EAChE,gBAAwB,mBAAmB;IAE3C,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1C,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE3C,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,MAAM,kBAAkB,GAAe,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,gDAAgD;YAChD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,aAAa,CACtD,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * MCP Server helper utilities
3
+ *
4
+ * Shared helpers used across MCP tool and resource handlers:
5
+ * - setupGracefulShutdown: Process signal handlers
6
+ * - trackTokenSavings: Track RAG query token savings
7
+ * - trackMemoryAccess: Track memory access for retention decay
8
+ * - getBrainPath: Get brain vault directory path
9
+ * - parseRelativeDate: Parse relative date strings
10
+ * - createToolResponse / createErrorResponse: DRY response helpers
11
+ */
12
+ import { z } from 'zod';
13
+ import { type TokenEventType } from '../lib/storage/index.js';
14
+ import type { SearchResult, ToolResponse } from './types.js';
15
+ export declare const projectPathParam: z.ZodOptional<z.ZodString>;
16
+ /**
17
+ * Set the current project (called once after initStorageDispatcher at startup)
18
+ */
19
+ export declare function setCurrentProject(projectPath: string): void;
20
+ /**
21
+ * Apply project_path from tool call params.
22
+ * If provided and different from current project, sets SUCC_PROJECT_ROOT
23
+ * and reinitializes storage dispatcher to use the correct database.
24
+ */
25
+ export declare function applyProjectPath(projectPath?: string): Promise<void>;
26
+ export declare function setupGracefulShutdown(): void;
27
+ export declare function trackTokenSavings(eventType: TokenEventType, query: string, results: SearchResult[]): Promise<void>;
28
+ /**
29
+ * Track memory access for retention decay.
30
+ * Memories that are frequently accessed will have higher effective scores.
31
+ *
32
+ * @param memoryIds - Array of memory IDs that were returned
33
+ * @param limit - The search limit (top N results)
34
+ * @param totalResults - Total number of results before limit
35
+ */
36
+ export declare function trackMemoryAccess(memoryIds: number[], limit: number, _totalResults: number): Promise<void>;
37
+ export declare function getBrainPath(): string;
38
+ /**
39
+ * Parse relative date strings like "30d", "1w", "3m"
40
+ */
41
+ export declare function parseRelativeDate(input: string): Date | null;
42
+ export declare function createToolResponse(text: string): ToolResponse;
43
+ export declare function createErrorResponse(text: string, component?: string, error?: Error): ToolResponse;
44
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/mcp/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG7D,eAAO,MAAM,gBAAgB,4BAK1B,CAAC;AAKJ;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,QAEpD;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B1E;AAGD,wBAAgB,qBAAqB,SAsBpC;AAGD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CAiFf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAGD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CA0B5D;AAGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAI7D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,YAAY,CAQjG"}