@redigg/redigg 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +145 -0
  3. package/dist/agent/ResearchAgent.d.ts +35 -0
  4. package/dist/agent/ResearchAgent.js +818 -0
  5. package/dist/agent/ResearchAgent.js.map +1 -0
  6. package/dist/agent/subagent/SubAgent.d.ts +23 -0
  7. package/dist/agent/subagent/SubAgent.js +87 -0
  8. package/dist/agent/subagent/SubAgent.js.map +1 -0
  9. package/dist/agent/subagent/SubAgentManager.d.ts +19 -0
  10. package/dist/agent/subagent/SubAgentManager.js +40 -0
  11. package/dist/agent/subagent/SubAgentManager.js.map +1 -0
  12. package/dist/bin.d.ts +2 -0
  13. package/dist/bin.js +34 -0
  14. package/dist/bin.js.map +1 -0
  15. package/dist/cli.d.ts +1 -0
  16. package/dist/cli.js +179 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/events/EventManager.d.ts +39 -0
  19. package/dist/events/EventManager.js +20 -0
  20. package/dist/events/EventManager.js.map +1 -0
  21. package/dist/gateway/index.d.ts +9 -0
  22. package/dist/gateway/index.js +474 -0
  23. package/dist/gateway/index.js.map +1 -0
  24. package/dist/index.d.ts +3 -0
  25. package/dist/index.js +97 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/llm/LLMClient.d.ts +30 -0
  28. package/dist/llm/LLMClient.js +21 -0
  29. package/dist/llm/LLMClient.js.map +1 -0
  30. package/dist/llm/OpenAIClient.d.ts +16 -0
  31. package/dist/llm/OpenAIClient.js +58 -0
  32. package/dist/llm/OpenAIClient.js.map +1 -0
  33. package/dist/memory/MemoryManager.d.ts +41 -0
  34. package/dist/memory/MemoryManager.js +221 -0
  35. package/dist/memory/MemoryManager.js.map +1 -0
  36. package/dist/memory/evolution/MemoryEvolutionSystem.d.ts +17 -0
  37. package/dist/memory/evolution/MemoryEvolutionSystem.js +71 -0
  38. package/dist/memory/evolution/MemoryEvolutionSystem.js.map +1 -0
  39. package/dist/memory/search/BM25Search.d.ts +22 -0
  40. package/dist/memory/search/BM25Search.js +61 -0
  41. package/dist/memory/search/BM25Search.js.map +1 -0
  42. package/dist/memory/structure/PageIndex.d.ts +26 -0
  43. package/dist/memory/structure/PageIndex.js +156 -0
  44. package/dist/memory/structure/PageIndex.js.map +1 -0
  45. package/dist/quality/QualityManager.d.ts +12 -0
  46. package/dist/quality/QualityManager.js +61 -0
  47. package/dist/quality/QualityManager.js.map +1 -0
  48. package/dist/scheduling/CronManager.d.ts +21 -0
  49. package/dist/scheduling/CronManager.js +66 -0
  50. package/dist/scheduling/CronManager.js.map +1 -0
  51. package/dist/session/SessionManager.d.ts +37 -0
  52. package/dist/session/SessionManager.js +238 -0
  53. package/dist/session/SessionManager.js.map +1 -0
  54. package/dist/skills/SkillManager.d.ts +31 -0
  55. package/dist/skills/SkillManager.js +254 -0
  56. package/dist/skills/SkillManager.js.map +1 -0
  57. package/dist/skills/agent/PACK.md +13 -0
  58. package/dist/skills/agent/agent-orchestration/SKILL.md +37 -0
  59. package/dist/skills/agent/agent-orchestration/index.d.ts +9 -0
  60. package/dist/skills/agent/agent-orchestration/index.js +70 -0
  61. package/dist/skills/agent/agent-orchestration/index.js.map +1 -0
  62. package/dist/skills/agent/evolution/SKILL.md +25 -0
  63. package/dist/skills/agent/evolution/index.d.ts +9 -0
  64. package/dist/skills/agent/evolution/index.js +57 -0
  65. package/dist/skills/agent/evolution/index.js.map +1 -0
  66. package/dist/skills/agent/heartbeat/index.d.ts +8 -0
  67. package/dist/skills/agent/heartbeat/index.js +44 -0
  68. package/dist/skills/agent/heartbeat/index.js.map +1 -0
  69. package/dist/skills/agent/memory-management/SKILL.md +40 -0
  70. package/dist/skills/agent/memory-management/index.d.ts +8 -0
  71. package/dist/skills/agent/memory-management/index.js +44 -0
  72. package/dist/skills/agent/memory-management/index.js.map +1 -0
  73. package/dist/skills/agent/scheduling/SKILL.md +33 -0
  74. package/dist/skills/agent/scheduling/index.d.ts +13 -0
  75. package/dist/skills/agent/scheduling/index.js +80 -0
  76. package/dist/skills/agent/scheduling/index.js.map +1 -0
  77. package/dist/skills/agent/session-management/SKILL.md +35 -0
  78. package/dist/skills/agent/session-management/index.d.ts +11 -0
  79. package/dist/skills/agent/session-management/index.js +54 -0
  80. package/dist/skills/agent/session-management/index.js.map +1 -0
  81. package/dist/skills/agent/skill-management/SKILL.md +31 -0
  82. package/dist/skills/agent/skill-management/index.d.ts +8 -0
  83. package/dist/skills/agent/skill-management/index.js +25 -0
  84. package/dist/skills/agent/skill-management/index.js.map +1 -0
  85. package/dist/skills/evolution/SkillEvolutionSystem.d.ts +12 -0
  86. package/dist/skills/evolution/SkillEvolutionSystem.js +157 -0
  87. package/dist/skills/evolution/SkillEvolutionSystem.js.map +1 -0
  88. package/dist/skills/lib/ScholarTool.d.ts +14 -0
  89. package/dist/skills/lib/ScholarTool.js +71 -0
  90. package/dist/skills/lib/ScholarTool.js.map +1 -0
  91. package/dist/skills/research/PACK.md +7 -0
  92. package/dist/skills/research/academic-survey-self-improve/SKILL.md +17 -0
  93. package/dist/skills/research/academic-survey-self-improve/index.d.ts +10 -0
  94. package/dist/skills/research/academic-survey-self-improve/index.js +75 -0
  95. package/dist/skills/research/academic-survey-self-improve/index.js.map +1 -0
  96. package/dist/skills/research/concept-explainer/SKILL.md +3 -0
  97. package/dist/skills/research/concept-explainer/index.d.ts +8 -0
  98. package/dist/skills/research/concept-explainer/index.js +37 -0
  99. package/dist/skills/research/concept-explainer/index.js.map +1 -0
  100. package/dist/skills/research/literature-review/SKILL.md +25 -0
  101. package/dist/skills/research/literature-review/index.d.ts +9 -0
  102. package/dist/skills/research/literature-review/index.js +132 -0
  103. package/dist/skills/research/literature-review/index.js.map +1 -0
  104. package/dist/skills/research/paper-analysis/SKILL.md +3 -0
  105. package/dist/skills/research/paper-analysis/index.d.ts +9 -0
  106. package/dist/skills/research/paper-analysis/index.js +64 -0
  107. package/dist/skills/research/paper-analysis/index.js.map +1 -0
  108. package/dist/skills/research/pdf-generator/SKILL.md +16 -0
  109. package/dist/skills/research/pdf-generator/index.d.ts +10 -0
  110. package/dist/skills/research/pdf-generator/index.js +88 -0
  111. package/dist/skills/research/pdf-generator/index.js.map +1 -0
  112. package/dist/skills/system/PACK.md +8 -0
  113. package/dist/skills/system/code-analysis/SKILL.md +43 -0
  114. package/dist/skills/system/code-analysis/index.d.ts +12 -0
  115. package/dist/skills/system/code-analysis/index.js +172 -0
  116. package/dist/skills/system/code-analysis/index.js.map +1 -0
  117. package/dist/skills/system/local-file-ops/SKILL.md +55 -0
  118. package/dist/skills/system/local-file-ops/index.d.ts +9 -0
  119. package/dist/skills/system/local-file-ops/index.js +111 -0
  120. package/dist/skills/system/local-file-ops/index.js.map +1 -0
  121. package/dist/skills/types.d.ts +41 -0
  122. package/dist/skills/types.js +2 -0
  123. package/dist/skills/types.js.map +1 -0
  124. package/dist/skills/vendor/PACK.md +11 -0
  125. package/dist/skills/vendor/agent-browser/CONTRIBUTING.md +63 -0
  126. package/dist/skills/vendor/agent-browser/SKILL.md +328 -0
  127. package/dist/skills/vendor/find-skills/SKILL.md +133 -0
  128. package/dist/skills/vendor/proactive-agent/SKILL-v2.3-backup.md +554 -0
  129. package/dist/skills/vendor/proactive-agent/SKILL-v3-draft.md +499 -0
  130. package/dist/skills/vendor/proactive-agent/SKILL.md +632 -0
  131. package/dist/skills/vendor/proactive-agent/assets/AGENTS.md +155 -0
  132. package/dist/skills/vendor/proactive-agent/assets/HEARTBEAT.md +128 -0
  133. package/dist/skills/vendor/proactive-agent/assets/MEMORY.md +47 -0
  134. package/dist/skills/vendor/proactive-agent/assets/ONBOARDING.md +103 -0
  135. package/dist/skills/vendor/proactive-agent/assets/SOUL.md +40 -0
  136. package/dist/skills/vendor/proactive-agent/assets/TOOLS.md +55 -0
  137. package/dist/skills/vendor/proactive-agent/assets/USER.md +36 -0
  138. package/dist/skills/vendor/proactive-agent/references/onboarding-flow.md +158 -0
  139. package/dist/skills/vendor/proactive-agent/references/security-patterns.md +109 -0
  140. package/dist/skills/vendor/searxng/CHANGELOG.md +38 -0
  141. package/dist/skills/vendor/searxng/PUBLISH.md +147 -0
  142. package/dist/skills/vendor/searxng/PUBLISHING_CHECKLIST.md +111 -0
  143. package/dist/skills/vendor/searxng/README.md +168 -0
  144. package/dist/skills/vendor/searxng/SKILL.md +69 -0
  145. package/dist/skills/vendor/self-improving-agent/.learnings/ERRORS.md +5 -0
  146. package/dist/skills/vendor/self-improving-agent/.learnings/FEATURE_REQUESTS.md +5 -0
  147. package/dist/skills/vendor/self-improving-agent/.learnings/LEARNINGS.md +5 -0
  148. package/dist/skills/vendor/self-improving-agent/SKILL.md +647 -0
  149. package/dist/skills/vendor/self-improving-agent/assets/LEARNINGS.md +45 -0
  150. package/dist/skills/vendor/self-improving-agent/assets/SKILL-TEMPLATE.md +177 -0
  151. package/dist/skills/vendor/self-improving-agent/hooks/openclaw/HOOK.md +23 -0
  152. package/dist/skills/vendor/self-improving-agent/hooks/openclaw/handler.d.ts +9 -0
  153. package/dist/skills/vendor/self-improving-agent/hooks/openclaw/handler.js +54 -0
  154. package/dist/skills/vendor/self-improving-agent/hooks/openclaw/handler.js.map +1 -0
  155. package/dist/skills/vendor/self-improving-agent/references/examples.md +374 -0
  156. package/dist/skills/vendor/self-improving-agent/references/hooks-setup.md +223 -0
  157. package/dist/skills/vendor/self-improving-agent/references/openclaw-integration.md +248 -0
  158. package/dist/skills/vendor/skill-vetter/SKILL.md +138 -0
  159. package/dist/src/agent/ResearchAgent.d.ts +35 -0
  160. package/dist/src/agent/ResearchAgent.js +818 -0
  161. package/dist/src/agent/ResearchAgent.js.map +1 -0
  162. package/dist/src/agent/subagent/SubAgent.d.ts +23 -0
  163. package/dist/src/agent/subagent/SubAgent.js +87 -0
  164. package/dist/src/agent/subagent/SubAgent.js.map +1 -0
  165. package/dist/src/agent/subagent/SubAgentManager.d.ts +19 -0
  166. package/dist/src/agent/subagent/SubAgentManager.js +40 -0
  167. package/dist/src/agent/subagent/SubAgentManager.js.map +1 -0
  168. package/dist/src/bin.d.ts +2 -0
  169. package/dist/src/bin.js +34 -0
  170. package/dist/src/bin.js.map +1 -0
  171. package/dist/src/cli.d.ts +1 -0
  172. package/dist/src/cli.js +179 -0
  173. package/dist/src/cli.js.map +1 -0
  174. package/dist/src/events/EventManager.d.ts +39 -0
  175. package/dist/src/events/EventManager.js +20 -0
  176. package/dist/src/events/EventManager.js.map +1 -0
  177. package/dist/src/gateway/index.d.ts +9 -0
  178. package/dist/src/gateway/index.js +474 -0
  179. package/dist/src/gateway/index.js.map +1 -0
  180. package/dist/src/index.d.ts +3 -0
  181. package/dist/src/index.js +105 -0
  182. package/dist/src/index.js.map +1 -0
  183. package/dist/src/llm/LLMClient.d.ts +30 -0
  184. package/dist/src/llm/LLMClient.js +21 -0
  185. package/dist/src/llm/LLMClient.js.map +1 -0
  186. package/dist/src/llm/OpenAIClient.d.ts +16 -0
  187. package/dist/src/llm/OpenAIClient.js +58 -0
  188. package/dist/src/llm/OpenAIClient.js.map +1 -0
  189. package/dist/src/memory/MemoryManager.d.ts +41 -0
  190. package/dist/src/memory/MemoryManager.js +221 -0
  191. package/dist/src/memory/MemoryManager.js.map +1 -0
  192. package/dist/src/memory/evolution/MemoryEvolutionSystem.d.ts +17 -0
  193. package/dist/src/memory/evolution/MemoryEvolutionSystem.js +71 -0
  194. package/dist/src/memory/evolution/MemoryEvolutionSystem.js.map +1 -0
  195. package/dist/src/memory/search/BM25Search.d.ts +22 -0
  196. package/dist/src/memory/search/BM25Search.js +61 -0
  197. package/dist/src/memory/search/BM25Search.js.map +1 -0
  198. package/dist/src/memory/structure/PageIndex.d.ts +26 -0
  199. package/dist/src/memory/structure/PageIndex.js +156 -0
  200. package/dist/src/memory/structure/PageIndex.js.map +1 -0
  201. package/dist/src/quality/QualityManager.d.ts +12 -0
  202. package/dist/src/quality/QualityManager.js +61 -0
  203. package/dist/src/quality/QualityManager.js.map +1 -0
  204. package/dist/src/scheduling/CronManager.d.ts +21 -0
  205. package/dist/src/scheduling/CronManager.js +66 -0
  206. package/dist/src/scheduling/CronManager.js.map +1 -0
  207. package/dist/src/session/SessionManager.d.ts +37 -0
  208. package/dist/src/session/SessionManager.js +238 -0
  209. package/dist/src/session/SessionManager.js.map +1 -0
  210. package/dist/src/skills/SkillManager.d.ts +33 -0
  211. package/dist/src/skills/SkillManager.js +260 -0
  212. package/dist/src/skills/SkillManager.js.map +1 -0
  213. package/dist/src/skills/evolution/SkillEvolutionSystem.d.ts +12 -0
  214. package/dist/src/skills/evolution/SkillEvolutionSystem.js +157 -0
  215. package/dist/src/skills/evolution/SkillEvolutionSystem.js.map +1 -0
  216. package/dist/src/skills/lib/ScholarTool.d.ts +14 -0
  217. package/dist/src/skills/lib/ScholarTool.js +71 -0
  218. package/dist/src/skills/lib/ScholarTool.js.map +1 -0
  219. package/dist/src/skills/types.d.ts +41 -0
  220. package/dist/src/skills/types.js +2 -0
  221. package/dist/src/skills/types.js.map +1 -0
  222. package/dist/src/storage/sqlite.d.ts +8 -0
  223. package/dist/src/storage/sqlite.js +73 -0
  224. package/dist/src/storage/sqlite.js.map +1 -0
  225. package/dist/src/utils/logger.d.ts +12 -0
  226. package/dist/src/utils/logger.js +53 -0
  227. package/dist/src/utils/logger.js.map +1 -0
  228. package/dist/storage/sqlite.d.ts +8 -0
  229. package/dist/storage/sqlite.js +73 -0
  230. package/dist/storage/sqlite.js.map +1 -0
  231. package/dist/utils/logger.d.ts +12 -0
  232. package/dist/utils/logger.js +53 -0
  233. package/dist/utils/logger.js.map +1 -0
  234. package/package.json +71 -0
  235. package/skills/agent/PACK.md +13 -0
  236. package/skills/agent/agent-orchestration/SKILL.md +37 -0
  237. package/skills/agent/agent-orchestration/index.ts +84 -0
  238. package/skills/agent/evolution/SKILL.md +25 -0
  239. package/skills/agent/evolution/index.ts +67 -0
  240. package/skills/agent/heartbeat/index.ts +48 -0
  241. package/skills/agent/memory-management/SKILL.md +40 -0
  242. package/skills/agent/memory-management/index.ts +48 -0
  243. package/skills/agent/scheduling/SKILL.md +33 -0
  244. package/skills/agent/scheduling/index.ts +97 -0
  245. package/skills/agent/session-management/SKILL.md +35 -0
  246. package/skills/agent/session-management/index.ts +65 -0
  247. package/skills/agent/skill-management/SKILL.md +31 -0
  248. package/skills/agent/skill-management/index.ts +32 -0
  249. package/skills/research/PACK.md +7 -0
  250. package/skills/research/academic-survey-self-improve/SKILL.md +17 -0
  251. package/skills/research/academic-survey-self-improve/index.ts +87 -0
  252. package/skills/research/concept-explainer/SKILL.md +3 -0
  253. package/skills/research/concept-explainer/index.ts +42 -0
  254. package/skills/research/literature-review/SKILL.md +25 -0
  255. package/skills/research/literature-review/index.ts +168 -0
  256. package/skills/research/paper-analysis/SKILL.md +3 -0
  257. package/skills/research/paper-analysis/index.ts +73 -0
  258. package/skills/research/pdf-generator/SKILL.md +16 -0
  259. package/skills/research/pdf-generator/index.d.ts +10 -0
  260. package/skills/research/pdf-generator/index.js +114 -0
  261. package/skills/research/pdf-generator/index.js.map +1 -0
  262. package/skills/research/pdf-generator/index.ts +97 -0
  263. package/skills/system/PACK.md +8 -0
  264. package/skills/system/code-analysis/SKILL.md +43 -0
  265. package/skills/system/code-analysis/index.ts +180 -0
  266. package/skills/system/local-file-ops/SKILL.md +55 -0
  267. package/skills/system/local-file-ops/index.ts +123 -0
  268. package/skills/vendor/PACK.md +11 -0
  269. package/skills/vendor/agent-browser/.clawhub/origin.json +7 -0
  270. package/skills/vendor/agent-browser/CONTRIBUTING.md +63 -0
  271. package/skills/vendor/agent-browser/SKILL.md +328 -0
  272. package/skills/vendor/agent-browser/_meta.json +6 -0
  273. package/skills/vendor/find-skills/.clawhub/origin.json +7 -0
  274. package/skills/vendor/find-skills/SKILL.md +133 -0
  275. package/skills/vendor/find-skills/_meta.json +6 -0
  276. package/skills/vendor/proactive-agent/.clawhub/origin.json +7 -0
  277. package/skills/vendor/proactive-agent/SKILL-v2.3-backup.md +554 -0
  278. package/skills/vendor/proactive-agent/SKILL-v3-draft.md +499 -0
  279. package/skills/vendor/proactive-agent/SKILL.md +632 -0
  280. package/skills/vendor/proactive-agent/_meta.json +6 -0
  281. package/skills/vendor/proactive-agent/assets/AGENTS.md +155 -0
  282. package/skills/vendor/proactive-agent/assets/HEARTBEAT.md +128 -0
  283. package/skills/vendor/proactive-agent/assets/MEMORY.md +47 -0
  284. package/skills/vendor/proactive-agent/assets/ONBOARDING.md +103 -0
  285. package/skills/vendor/proactive-agent/assets/SOUL.md +40 -0
  286. package/skills/vendor/proactive-agent/assets/TOOLS.md +55 -0
  287. package/skills/vendor/proactive-agent/assets/USER.md +36 -0
  288. package/skills/vendor/proactive-agent/references/onboarding-flow.md +158 -0
  289. package/skills/vendor/proactive-agent/references/security-patterns.md +109 -0
  290. package/skills/vendor/proactive-agent/scripts/security-audit.sh +149 -0
  291. package/skills/vendor/searxng/.clawdhub/origin.json +7 -0
  292. package/skills/vendor/searxng/CHANGELOG.md +38 -0
  293. package/skills/vendor/searxng/PUBLISH.md +147 -0
  294. package/skills/vendor/searxng/PUBLISHING_CHECKLIST.md +111 -0
  295. package/skills/vendor/searxng/README.md +168 -0
  296. package/skills/vendor/searxng/SKILL.md +69 -0
  297. package/skills/vendor/searxng/_meta.json +6 -0
  298. package/skills/vendor/searxng/config/settings.yml +36 -0
  299. package/skills/vendor/searxng/run-searxng.sh +48 -0
  300. package/skills/vendor/searxng/scripts/searxng.py +211 -0
  301. package/skills/vendor/self-improving-agent/.clawhub/origin.json +7 -0
  302. package/skills/vendor/self-improving-agent/.learnings/ERRORS.md +5 -0
  303. package/skills/vendor/self-improving-agent/.learnings/FEATURE_REQUESTS.md +5 -0
  304. package/skills/vendor/self-improving-agent/.learnings/LEARNINGS.md +5 -0
  305. package/skills/vendor/self-improving-agent/SKILL.md +647 -0
  306. package/skills/vendor/self-improving-agent/_meta.json +6 -0
  307. package/skills/vendor/self-improving-agent/assets/LEARNINGS.md +45 -0
  308. package/skills/vendor/self-improving-agent/assets/SKILL-TEMPLATE.md +177 -0
  309. package/skills/vendor/self-improving-agent/hooks/openclaw/HOOK.md +23 -0
  310. package/skills/vendor/self-improving-agent/hooks/openclaw/handler.js +56 -0
  311. package/skills/vendor/self-improving-agent/hooks/openclaw/handler.ts +62 -0
  312. package/skills/vendor/self-improving-agent/references/examples.md +374 -0
  313. package/skills/vendor/self-improving-agent/references/hooks-setup.md +223 -0
  314. package/skills/vendor/self-improving-agent/references/openclaw-integration.md +248 -0
  315. package/skills/vendor/self-improving-agent/scripts/activator.sh +20 -0
  316. package/skills/vendor/self-improving-agent/scripts/error-detector.sh +55 -0
  317. package/skills/vendor/self-improving-agent/scripts/extract-skill.sh +221 -0
  318. package/skills/vendor/skill-vetter/.clawhub/origin.json +7 -0
  319. package/skills/vendor/skill-vetter/SKILL.md +138 -0
  320. package/skills/vendor/skill-vetter/_meta.json +6 -0
  321. package/web/README.md +73 -0
  322. package/web/package.json +65 -0
@@ -0,0 +1,21 @@
1
+ export class MockLLMClient {
2
+ async complete(prompt) {
3
+ return { content: 'Mock response' };
4
+ }
5
+ async chat(messages) {
6
+ // Simple mock logic for testing memory extraction
7
+ const lastMsg = messages[messages.length - 1].content.toLowerCase();
8
+ if (lastMsg.includes('extract memory')) {
9
+ return {
10
+ content: JSON.stringify({
11
+ memories: [
12
+ { type: 'preference', content: 'User is interested in oncology' },
13
+ { type: 'fact', content: 'User is asking about THBS2' }
14
+ ]
15
+ })
16
+ };
17
+ }
18
+ return { content: 'I am a mock LLM.' };
19
+ }
20
+ }
21
+ //# sourceMappingURL=LLMClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMClient.js","sourceRoot":"","sources":["../../src/llm/LLMClient.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,aAAa;IACxB,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAA6C;QACtD,kDAAkD;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAEpE,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvC,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;oBACtB,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gCAAgC,EAAE;wBACjE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE;qBACxD;iBACF,CAAC;aACH,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { LLMClient, LLMResponse, LLMStreamHandler } from './LLMClient.js';
2
+ export declare class OpenAIClient implements LLMClient {
3
+ private openai;
4
+ private model;
5
+ constructor(apiKey: string, baseURL?: string, model?: string);
6
+ complete(prompt: string): Promise<LLMResponse>;
7
+ chat(messages: {
8
+ role: string;
9
+ content: string;
10
+ }[]): Promise<LLMResponse>;
11
+ chatStream(messages: {
12
+ role: string;
13
+ content: string;
14
+ }[], handler: LLMStreamHandler): Promise<void>;
15
+ embed(text: string): Promise<number[]>;
16
+ }
@@ -0,0 +1,58 @@
1
+ import OpenAI from 'openai';
2
+ export class OpenAIClient {
3
+ openai;
4
+ model;
5
+ constructor(apiKey, baseURL, model) {
6
+ this.openai = new OpenAI({
7
+ apiKey,
8
+ baseURL: baseURL || 'https://api.openai.com/v1'
9
+ });
10
+ this.model = model || 'gpt-3.5-turbo';
11
+ }
12
+ async complete(prompt) {
13
+ const response = await this.openai.chat.completions.create({
14
+ model: this.model,
15
+ messages: [{ role: 'user', content: prompt }],
16
+ });
17
+ return { content: response.choices[0].message.content || '' };
18
+ }
19
+ async chat(messages) {
20
+ const response = await this.openai.chat.completions.create({
21
+ model: this.model,
22
+ messages: messages,
23
+ stream: false,
24
+ });
25
+ return { content: response.choices[0].message.content || '' };
26
+ }
27
+ async chatStream(messages, handler) {
28
+ try {
29
+ const stream = await this.openai.chat.completions.create({
30
+ model: this.model,
31
+ messages: messages,
32
+ stream: true,
33
+ });
34
+ let fullText = '';
35
+ for await (const chunk of stream) {
36
+ const content = chunk.choices[0]?.delta?.content || '';
37
+ if (content) {
38
+ fullText += content;
39
+ handler.onToken?.(content);
40
+ }
41
+ }
42
+ handler.onComplete?.(fullText);
43
+ }
44
+ catch (error) {
45
+ handler.onError?.(error);
46
+ throw error;
47
+ }
48
+ }
49
+ async embed(text) {
50
+ const response = await this.openai.embeddings.create({
51
+ model: 'text-embedding-3-small',
52
+ input: text,
53
+ encoding_format: 'float',
54
+ });
55
+ return response.data[0].embedding;
56
+ }
57
+ }
58
+ //# sourceMappingURL=OpenAIClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAIClient.js","sourceRoot":"","sources":["../../src/llm/OpenAIClient.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,OAAO,YAAY;IACf,MAAM,CAAS;IACf,KAAK,CAAS;IAEtB,YAAY,MAAc,EAAE,OAAgB,EAAE,KAAc;QAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,MAAM;YACN,OAAO,EAAE,OAAO,IAAI,2BAA2B;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,eAAe,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAA6C;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,QAAe;YACzB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAA6C,EAAE,OAAyB;QACvF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACvD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,QAAe;gBACzB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;gBACvD,IAAI,OAAO,EAAE,CAAC;oBACZ,QAAQ,IAAI,OAAO,CAAC;oBACpB,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YACnD,KAAK,EAAE,wBAAwB;YAC/B,KAAK,EAAE,IAAI;YACX,eAAe,EAAE,OAAO;SACzB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,41 @@
1
+ import { SQLiteStorage } from '../storage/sqlite.js';
2
+ export interface Memory {
3
+ id: string;
4
+ user_id: string;
5
+ type: 'preference' | 'fact' | 'context' | 'paper' | 'experiment' | 'page_index' | 'page_index_node';
6
+ tier: 'working' | 'short_term' | 'long_term';
7
+ content: string;
8
+ metadata?: any;
9
+ weight: number;
10
+ last_accessed_at: string;
11
+ created_at: string;
12
+ updated_at: string;
13
+ parent_id?: string;
14
+ index_path?: string;
15
+ }
16
+ export declare class MemoryManager {
17
+ storage: SQLiteStorage;
18
+ constructor(storage: SQLiteStorage);
19
+ private initializeSchema;
20
+ addMemory(userId: string, type: Memory['type'], content: string, metadata?: any, weight?: number, tier?: Memory['tier'], parentId?: string): Promise<Memory>;
21
+ addPaper(userId: string, title: string, authors: string[], url?: string, summary?: string): Promise<Memory>;
22
+ private parseRow;
23
+ getMemory(id: string): Promise<Memory>;
24
+ getUserMemories(userId: string, type?: string): Promise<Memory[]>;
25
+ updateMemoryWeight(id: string, delta: number): Promise<void>;
26
+ searchMemories(userId: string, query: string, options?: {
27
+ limit?: number;
28
+ type?: Memory['type'];
29
+ tier?: Memory['tier'];
30
+ }): Promise<Memory[]>;
31
+ getFormattedMemories(userId: string, query?: string): Promise<string>;
32
+ updateMemoryTier(id: string, tier: Memory['tier']): Promise<void>;
33
+ deleteMemory(id: string): Promise<void>;
34
+ getMemoriesByTier(userId: string, tier: Memory['tier']): Promise<Memory[]>;
35
+ consolidateMemories(userId: string): Promise<{
36
+ moved: number;
37
+ promoted: number;
38
+ pruned: number;
39
+ }>;
40
+ consolidatePreferences(userId: string): Promise<void>;
41
+ }
@@ -0,0 +1,221 @@
1
+ import { v4 as uuidv4 } from 'uuid';
2
+ export class MemoryManager {
3
+ storage;
4
+ constructor(storage) {
5
+ this.storage = storage;
6
+ try {
7
+ if (this.storage && typeof this.storage.getDb === 'function') {
8
+ this.initializeSchema();
9
+ }
10
+ }
11
+ catch (e) {
12
+ // Ignore initialization errors in test/mock envs
13
+ }
14
+ }
15
+ initializeSchema() {
16
+ if (!this.storage || typeof this.storage.getDb !== 'function')
17
+ return;
18
+ try {
19
+ const db = this.storage.getDb();
20
+ // Add new columns if not exist (simple migration)
21
+ try {
22
+ db.prepare('ALTER TABLE memories ADD COLUMN tier TEXT DEFAULT "working"').run();
23
+ }
24
+ catch (e) { }
25
+ try {
26
+ db.prepare('ALTER TABLE memories ADD COLUMN last_accessed_at TEXT').run();
27
+ }
28
+ catch (e) { }
29
+ try {
30
+ db.prepare('ALTER TABLE memories ADD COLUMN parent_id TEXT').run();
31
+ }
32
+ catch (e) { }
33
+ try {
34
+ db.prepare('ALTER TABLE memories ADD COLUMN index_path TEXT').run();
35
+ }
36
+ catch (e) { }
37
+ }
38
+ catch (e) {
39
+ // Ignore DB connection errors
40
+ }
41
+ }
42
+ async addMemory(userId, type, content, metadata, weight = 1.0, tier = 'working', parentId) {
43
+ const db = this.storage.getDb();
44
+ const id = uuidv4();
45
+ const metadataStr = metadata ? JSON.stringify(metadata) : null;
46
+ const now = new Date().toISOString();
47
+ // Calculate index_path
48
+ let indexPath = id;
49
+ if (parentId) {
50
+ try {
51
+ const parent = await this.getMemory(parentId);
52
+ if (parent && parent.index_path) {
53
+ indexPath = `${parent.index_path}/${id}`;
54
+ }
55
+ else {
56
+ // Fallback if parent has no path or not found (though should be found)
57
+ indexPath = `${parentId}/${id}`;
58
+ }
59
+ }
60
+ catch (e) {
61
+ // Parent might not exist or error
62
+ }
63
+ }
64
+ const stmt = db.prepare(`
65
+ INSERT INTO memories (id, user_id, type, tier, content, metadata, weight, last_accessed_at, created_at, updated_at, parent_id, index_path)
66
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
67
+ `);
68
+ stmt.run(id, userId, type, tier, content, metadataStr, weight, now, now, now, parentId || null, indexPath);
69
+ return this.getMemory(id);
70
+ }
71
+ async addPaper(userId, title, authors, url, summary) {
72
+ const content = `Paper: ${title} by ${authors.join(', ')}`;
73
+ const metadata = {
74
+ subtype: 'paper',
75
+ title,
76
+ authors,
77
+ url,
78
+ summary
79
+ };
80
+ return this.addMemory(userId, 'paper', content, metadata, 1.0, 'long_term');
81
+ }
82
+ parseRow(row) {
83
+ if (!row)
84
+ return row;
85
+ return {
86
+ ...row,
87
+ metadata: row.metadata ? JSON.parse(row.metadata) : undefined
88
+ };
89
+ }
90
+ async getMemory(id) {
91
+ const db = this.storage.getDb();
92
+ const stmt = db.prepare('SELECT * FROM memories WHERE id = ?');
93
+ const row = stmt.get(id);
94
+ if (!row)
95
+ throw new Error(`Memory with id ${id} not found`);
96
+ return this.parseRow(row);
97
+ }
98
+ async getUserMemories(userId, type) {
99
+ const db = this.storage.getDb();
100
+ let query = 'SELECT * FROM memories WHERE user_id = ?';
101
+ const params = [userId];
102
+ if (type) {
103
+ query += ' AND type = ?';
104
+ params.push(type);
105
+ }
106
+ query += ' ORDER BY weight DESC, created_at DESC';
107
+ const stmt = db.prepare(query);
108
+ const rows = stmt.all(...params);
109
+ return rows.map(this.parseRow);
110
+ }
111
+ async updateMemoryWeight(id, delta) {
112
+ const db = this.storage.getDb();
113
+ const stmt = db.prepare('UPDATE memories SET weight = weight + ? WHERE id = ?');
114
+ stmt.run(delta, id);
115
+ }
116
+ async searchMemories(userId, query, options = {}) {
117
+ const db = this.storage.getDb();
118
+ const limit = options.limit || 5;
119
+ let sql = `
120
+ SELECT * FROM memories
121
+ WHERE user_id = ?
122
+ AND content LIKE ?
123
+ `;
124
+ const params = [userId, `%${query}%`];
125
+ if (options.type) {
126
+ sql += ' AND type = ?';
127
+ params.push(options.type);
128
+ }
129
+ if (options.tier) {
130
+ sql += ' AND tier = ?';
131
+ params.push(options.tier);
132
+ }
133
+ sql += ' ORDER BY weight DESC, created_at DESC LIMIT ?';
134
+ params.push(limit);
135
+ const stmt = db.prepare(sql);
136
+ const rows = stmt.all(...params);
137
+ return rows.map(this.parseRow);
138
+ }
139
+ // Format memories for LLM context injection
140
+ async getFormattedMemories(userId, query) {
141
+ let memories;
142
+ if (query) {
143
+ memories = await this.searchMemories(userId, query);
144
+ // If no relevant memories found, fallback to recent high-weight memories
145
+ if (memories.length === 0) {
146
+ memories = await this.getUserMemories(userId);
147
+ memories = memories.slice(0, 5);
148
+ }
149
+ }
150
+ else {
151
+ memories = await this.getUserMemories(userId);
152
+ memories = memories.slice(0, 10);
153
+ }
154
+ if (memories.length === 0)
155
+ return '';
156
+ return memories.map(m => `- [${m.type.toUpperCase()}] ${m.content} (weight: ${m.weight})`).join('\n');
157
+ }
158
+ // Example of Memory Evolution logic: consolidating preferences
159
+ async updateMemoryTier(id, tier) {
160
+ const db = this.storage.getDb();
161
+ const now = new Date().toISOString();
162
+ db.prepare('UPDATE memories SET tier = ?, updated_at = ? WHERE id = ?').run(tier, now, id);
163
+ }
164
+ async deleteMemory(id) {
165
+ const db = this.storage.getDb();
166
+ db.prepare('DELETE FROM memories WHERE id = ?').run(id);
167
+ }
168
+ async getMemoriesByTier(userId, tier) {
169
+ const db = this.storage.getDb();
170
+ const rows = db.prepare('SELECT * FROM memories WHERE user_id = ? AND tier = ? ORDER BY weight DESC').all(userId, tier);
171
+ return rows.map(this.parseRow);
172
+ }
173
+ // Consolidate memories: Working -> Short-term -> Long-term
174
+ // Logic:
175
+ // 1. Working memory items older than 1 hour move to Short-term
176
+ // 2. Short-term items with high weight (> 5) move to Long-term
177
+ // 3. Short-term items with low weight (< 0.5) and old (> 7 days) are pruned (deleted)
178
+ async consolidateMemories(userId) {
179
+ const db = this.storage.getDb();
180
+ const now = new Date();
181
+ let stats = { moved: 0, promoted: 0, pruned: 0 };
182
+ // 1. Working -> Short-term (if > 1 hour old)
183
+ const workingMemories = await this.getMemoriesByTier(userId, 'working');
184
+ // Log working memories stats if any
185
+ if (workingMemories.length > 0) {
186
+ console.log(`[Memory] Active working memories for ${userId}: ${workingMemories.length}`);
187
+ }
188
+ for (const mem of workingMemories) {
189
+ const age = now.getTime() - new Date(mem.created_at).getTime();
190
+ if (age > 60 * 60 * 1000) {
191
+ console.log(`[Memory] Moving ${mem.id} to short-term`);
192
+ await this.updateMemoryTier(mem.id, 'short_term');
193
+ stats.moved++;
194
+ }
195
+ }
196
+ // 2. Short-term -> Long-term (if weight > 5)
197
+ const shortTermMemories = await this.getMemoriesByTier(userId, 'short_term');
198
+ for (const mem of shortTermMemories) {
199
+ if (mem.weight > 5) {
200
+ console.log(`[Memory] Promoting ${mem.id} to long-term (high importance)`);
201
+ await this.updateMemoryTier(mem.id, 'long_term');
202
+ stats.promoted++;
203
+ }
204
+ else {
205
+ // Pruning check
206
+ const age = now.getTime() - new Date(mem.created_at).getTime();
207
+ if (mem.weight < 0.5 && age > 7 * 24 * 60 * 60 * 1000) {
208
+ console.log(`[Memory] Pruning low-value memory ${mem.id}`);
209
+ db.prepare('DELETE FROM memories WHERE id = ?').run(mem.id);
210
+ stats.pruned++;
211
+ }
212
+ }
213
+ }
214
+ return stats;
215
+ }
216
+ async consolidatePreferences(userId) {
217
+ // This would involve LLM to summarize preferences, but for now just a placeholder
218
+ console.log(`Consolidating preferences for user ${userId}...`);
219
+ }
220
+ }
221
+ //# sourceMappingURL=MemoryManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryManager.js","sourceRoot":"","sources":["../../src/memory/MemoryManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAiBpC,MAAM,OAAO,aAAa;IACjB,OAAO,CAAgB;IAE9B,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,iDAAiD;QACrD,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO;QACtE,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChC,kDAAkD;YAClD,IAAI,CAAC;gBACD,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,EAAE,CAAC;YACpF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACd,IAAI,CAAC;gBACD,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,EAAE,CAAC;YAC9E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACd,IAAI,CAAC;gBACD,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,EAAE,CAAC;YACvE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACd,IAAI,CAAC;gBACD,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,EAAE,CAAC;YACxE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,8BAA8B;QAClC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,MAAc,EACd,IAAoB,EACpB,OAAe,EACf,QAAc,EACd,SAAiB,GAAG,EACpB,OAAuB,SAAS,EAChC,QAAiB;QAEjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,uBAAuB;QACvB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC9B,SAAS,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACH,uEAAuE;oBACvE,SAAS,GAAG,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACrC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,kCAAkC;YACtC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAGvB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,IAAI,IAAI,EAAE,SAAS,CAAC,CAAC;QAE3G,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAa,EAAE,OAAiB,EAAE,GAAY,EAAE,OAAgB;QACpG,MAAM,OAAO,GAAG,UAAU,KAAK,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,OAAO;YAChB,KAAK;YACL,OAAO;YACP,GAAG;YACH,OAAO;SACR,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAEO,QAAQ,CAAC,GAAQ;QACvB,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC;QACrB,OAAO;YACL,GAAG,GAAG;YACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9D,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,EAAU;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,IAAa;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,0CAA0C,CAAC;QACvD,MAAM,MAAM,GAAU,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,IAAI,eAAe,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,KAAK,IAAI,wCAAwC,CAAC;QAElD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,KAAa;QACvD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,MAAc,EACd,KAAa,EACb,UAII,EAAE;QAEN,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QAEjC,IAAI,GAAG,GAAG;;;;KAIT,CAAC;QACF,MAAM,MAAM,GAAU,CAAC,MAAM,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,GAAG,IAAI,eAAe,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,GAAG,IAAI,eAAe,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,GAAG,IAAI,gDAAgD,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,4CAA4C;IACrC,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,KAAc;QAC9D,IAAI,QAAkB,CAAC;QAEvB,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpD,yEAAyE;YACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC9C,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC9C,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAErC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxG,CAAC;IAED,+DAA+D;IACxD,KAAK,CAAC,gBAAgB,CAAC,EAAU,EAAE,IAAoB;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7F,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,EAAU;QAClC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,IAAoB;QACjE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,4EAA4E,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,2DAA2D;IAC3D,UAAU;IACV,+DAA+D;IAC/D,+DAA+D;IAC/D,sFAAsF;IAC/E,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,IAAI,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAEjD,6CAA6C;QAC7C,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACxE,oCAAoC;QACpC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,wCAAwC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;YAC/D,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBACvD,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;gBAClD,KAAK,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACL,CAAC;QAED,6CAA6C;QAC7C,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7E,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,EAAE,iCAAiC,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;gBACjD,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,gBAAgB;gBAChB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC/D,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;oBACnD,OAAO,CAAC,GAAG,CAAC,qCAAqC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3D,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC5D,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,MAAc;QAChD,kFAAkF;QAClF,OAAO,CAAC,GAAG,CAAC,sCAAsC,MAAM,KAAK,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { MemoryManager } from '../MemoryManager.js';
2
+ import { LLMClient } from '../../llm/LLMClient.js';
3
+ export interface ExtractedMemory {
4
+ type: 'preference' | 'fact' | 'context' | 'paper';
5
+ content: string;
6
+ metadata?: any;
7
+ }
8
+ export declare class MemoryEvolutionSystem {
9
+ private memoryManager;
10
+ private llm;
11
+ constructor(memoryManager: MemoryManager, llm: LLMClient);
12
+ evolve(userId: string, userQuery: string, agentResponse: string, onProgress?: (message: string) => void): Promise<{
13
+ added: any[];
14
+ updated: any[];
15
+ }>;
16
+ private parseResponse;
17
+ }
@@ -0,0 +1,71 @@
1
+ export class MemoryEvolutionSystem {
2
+ memoryManager;
3
+ llm;
4
+ constructor(memoryManager, llm) {
5
+ this.memoryManager = memoryManager;
6
+ this.llm = llm;
7
+ }
8
+ // Analyze interaction and extract new memories
9
+ async evolve(userId, userQuery, agentResponse, onProgress) {
10
+ const log = (msg) => {
11
+ if (onProgress) {
12
+ onProgress(msg);
13
+ }
14
+ else {
15
+ console.log(msg);
16
+ }
17
+ };
18
+ log(`[Evolution] Analyzing interaction for user ${userId}...`);
19
+ const prompt = `
20
+ Analyze the following interaction between a User and an AI Assistant.
21
+ Extract any new information about:
22
+ 1. User's preferences, research interests, or factual constraints (type: preference/fact/context).
23
+ 2. Specific research papers or materials mentioned (type: paper).
24
+
25
+ For 'paper' type:
26
+ - Extract the Title, Authors, and URL (if present in markdown link or text).
27
+ - Metadata object: { title, authors (array), url (string), summary (string) }.
28
+
29
+ Output ONLY a JSON object with a "memories" array. Each item should have "type", "content", and optional "metadata".
30
+
31
+ User: "${userQuery}"
32
+ AI: "${agentResponse}"
33
+ `;
34
+ try {
35
+ const response = await this.llm.chat([
36
+ { role: 'system', content: 'You are a memory extraction system. You extract structured memories and research materials from conversations.' },
37
+ { role: 'user', content: prompt }
38
+ ]);
39
+ const extracted = this.parseResponse(response.content);
40
+ const added = [];
41
+ if (extracted && extracted.length > 0) {
42
+ log(`[Evolution] Extracted ${extracted.length} new memories.`);
43
+ for (const mem of extracted) {
44
+ await this.memoryManager.addMemory(userId, mem.type, mem.content, mem.metadata);
45
+ added.push(mem);
46
+ }
47
+ }
48
+ else {
49
+ log('[Evolution] No new memories extracted.');
50
+ }
51
+ return { added, updated: [] };
52
+ }
53
+ catch (error) {
54
+ console.error('[MemoryEvolution] Failed to evolve memory:', error);
55
+ return { added: [], updated: [] };
56
+ }
57
+ }
58
+ parseResponse(content) {
59
+ try {
60
+ // Simple JSON parsing, might need more robust handling for real LLM output
61
+ const jsonStr = content.match(/\{[\s\S]*\}/)?.[0] || content;
62
+ const parsed = JSON.parse(jsonStr);
63
+ return parsed.memories || [];
64
+ }
65
+ catch (e) {
66
+ console.warn('[MemoryEvolution] Failed to parse LLM response:', content);
67
+ return [];
68
+ }
69
+ }
70
+ }
71
+ //# sourceMappingURL=MemoryEvolutionSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryEvolutionSystem.js","sourceRoot":"","sources":["../../../src/memory/evolution/MemoryEvolutionSystem.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,qBAAqB;IACxB,aAAa,CAAgB;IAC7B,GAAG,CAAY;IAEvB,YAAY,aAA4B,EAAE,GAAc;QACtD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,+CAA+C;IACxC,KAAK,CAAC,MAAM,CACjB,MAAc,EACd,SAAiB,EACjB,aAAqB,EACrB,UAAsC;QAEtC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;YAC1B,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QAEF,GAAG,CAAC,8CAA8C,MAAM,KAAK,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG;;;;;;;;;;;;eAYJ,SAAS;aACX,aAAa;KACrB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gHAAgH,EAAE;gBAC7I,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;aAClC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,EAAE,CAAC;YAEjB,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,GAAG,CAAC,yBAAyB,SAAS,CAAC,MAAM,gBAAgB,CAAC,CAAC;gBAC/D,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAChF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAEhC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;YACnE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAe;QACnC,IAAI,CAAC;YACH,2EAA2E;YAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,OAAO,CAAC,CAAC;YACzE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ export interface SearchDocument {
2
+ id: string;
3
+ content: string;
4
+ }
5
+ export declare class BM25Search {
6
+ private documents;
7
+ private docLengths;
8
+ private avgDocLength;
9
+ private invertedIndex;
10
+ private k1;
11
+ private b;
12
+ private tokenizer;
13
+ constructor();
14
+ addDocument(doc: SearchDocument): void;
15
+ addDocuments(docs: SearchDocument[]): void;
16
+ private updateStats;
17
+ search(query: string, limit?: number): {
18
+ id: string;
19
+ score: number;
20
+ }[];
21
+ free(): void;
22
+ }
@@ -0,0 +1,61 @@
1
+ import { get_encoding } from 'tiktoken';
2
+ export class BM25Search {
3
+ documents = new Map(); // id -> tokens
4
+ docLengths = new Map();
5
+ avgDocLength = 0;
6
+ invertedIndex = new Map(); // token -> list of doc ids
7
+ k1 = 1.5;
8
+ b = 0.75;
9
+ tokenizer;
10
+ constructor() {
11
+ this.tokenizer = get_encoding("cl100k_base");
12
+ }
13
+ addDocument(doc) {
14
+ const tokens = Array.from(this.tokenizer.encode(doc.content));
15
+ this.documents.set(doc.id, tokens);
16
+ this.docLengths.set(doc.id, tokens.length);
17
+ // Update index
18
+ const uniqueTokens = new Set(tokens);
19
+ uniqueTokens.forEach(token => {
20
+ if (!this.invertedIndex.has(token)) {
21
+ this.invertedIndex.set(token, []);
22
+ }
23
+ this.invertedIndex.get(token).push(doc.id);
24
+ });
25
+ this.updateStats();
26
+ }
27
+ addDocuments(docs) {
28
+ docs.forEach(doc => this.addDocument(doc));
29
+ }
30
+ updateStats() {
31
+ let totalLength = 0;
32
+ this.docLengths.forEach(len => totalLength += len);
33
+ this.avgDocLength = totalLength / Math.max(1, this.documents.size);
34
+ }
35
+ search(query, limit = 5) {
36
+ const queryTokens = Array.from(this.tokenizer.encode(query));
37
+ const scores = new Map();
38
+ queryTokens.forEach(token => {
39
+ const postingList = this.invertedIndex.get(token);
40
+ if (!postingList)
41
+ return;
42
+ const idf = Math.log(1 + (this.documents.size - postingList.length + 0.5) / (postingList.length + 0.5));
43
+ postingList.forEach(docId => {
44
+ const docLen = this.docLengths.get(docId) || 0;
45
+ const tf = this.documents.get(docId).filter(t => t === token).length;
46
+ const numerator = tf * (this.k1 + 1);
47
+ const denominator = tf + this.k1 * (1 - this.b + this.b * (docLen / this.avgDocLength));
48
+ const score = idf * (numerator / denominator);
49
+ scores.set(docId, (scores.get(docId) || 0) + score);
50
+ });
51
+ });
52
+ return Array.from(scores.entries())
53
+ .sort((a, b) => b[1] - a[1])
54
+ .slice(0, limit)
55
+ .map(([id, score]) => ({ id, score }));
56
+ }
57
+ free() {
58
+ this.tokenizer.free();
59
+ }
60
+ }
61
+ //# sourceMappingURL=BM25Search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BM25Search.js","sourceRoot":"","sources":["../../../src/memory/search/BM25Search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { MemoryManager } from '../MemoryManager.js';
2
+ import { LLMClient } from '../../llm/LLMClient.js';
3
+ export interface PageNode {
4
+ id: string;
5
+ title: string;
6
+ content: string;
7
+ children: PageNode[];
8
+ parentId?: string;
9
+ level: number;
10
+ }
11
+ export declare class PageIndex {
12
+ private memoryManager;
13
+ private llm;
14
+ constructor(memoryManager: MemoryManager, llm: LLMClient);
15
+ /**
16
+ * Ingests a long document and creates a hierarchical tree of memories (Page Index).
17
+ * 1. Create Root Node (Level 0)
18
+ * 2. Split document into logical sections (Leaf Nodes)
19
+ * 3. Recursively summarize sections to build the tree bottom-up
20
+ * 4. Link the top-level summaries to the Root Node
21
+ */
22
+ indexDocument(userId: string, title: string, content: string): Promise<string>;
23
+ private updateIndexPaths;
24
+ private splitIntoSections;
25
+ getTree(rootId: string): Promise<PageNode | null>;
26
+ }