@cicctencent/agent-core 0.1.1 → 0.1.3

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 (439) hide show
  1. package/dist/cjs/agent/engine.d.ts.map +1 -0
  2. package/dist/cjs/agent/engine.js +766 -0
  3. package/dist/cjs/agent/engine.js.map +1 -0
  4. package/dist/cjs/agent/history-manager.d.ts.map +1 -0
  5. package/dist/cjs/agent/history-manager.js +271 -0
  6. package/dist/cjs/agent/history-manager.js.map +1 -0
  7. package/dist/cjs/agent/llm-caller.d.ts.map +1 -0
  8. package/dist/cjs/agent/llm-caller.js +307 -0
  9. package/dist/cjs/agent/llm-caller.js.map +1 -0
  10. package/dist/cjs/agent/tool-executor.d.ts.map +1 -0
  11. package/dist/cjs/agent/tool-executor.js +568 -0
  12. package/dist/cjs/agent/tool-executor.js.map +1 -0
  13. package/dist/cjs/agent/types.d.ts.map +1 -0
  14. package/dist/cjs/agent/types.js +6 -0
  15. package/dist/cjs/agent/types.js.map +1 -0
  16. package/dist/cjs/agent/workflow.d.ts.map +1 -0
  17. package/dist/cjs/agent/workflow.js +262 -0
  18. package/dist/cjs/agent/workflow.js.map +1 -0
  19. package/dist/cjs/context/collector.d.ts.map +1 -0
  20. package/dist/cjs/context/collector.js +94 -0
  21. package/dist/cjs/context/collector.js.map +1 -0
  22. package/dist/cjs/context/manager.d.ts.map +1 -0
  23. package/dist/cjs/context/manager.js +36 -0
  24. package/dist/cjs/context/manager.js.map +1 -0
  25. package/dist/cjs/context/types.d.ts.map +1 -0
  26. package/dist/cjs/context/types.js +6 -0
  27. package/dist/cjs/context/types.js.map +1 -0
  28. package/dist/cjs/hooks/types.d.ts.map +1 -0
  29. package/dist/cjs/hooks/types.js +6 -0
  30. package/dist/cjs/hooks/types.js.map +1 -0
  31. package/dist/cjs/index.d.ts.map +1 -0
  32. package/dist/cjs/index.js +98 -0
  33. package/dist/cjs/index.js.map +1 -0
  34. package/dist/cjs/llm/anthropic-provider.d.ts.map +1 -0
  35. package/dist/cjs/llm/anthropic-provider.js +356 -0
  36. package/dist/cjs/llm/anthropic-provider.js.map +1 -0
  37. package/dist/cjs/llm/factory.d.ts.map +1 -0
  38. package/dist/cjs/llm/factory.js +34 -0
  39. package/dist/cjs/llm/factory.js.map +1 -0
  40. package/dist/cjs/llm/ollama-provider.d.ts.map +1 -0
  41. package/dist/cjs/llm/ollama-provider.js +34 -0
  42. package/dist/cjs/llm/ollama-provider.js.map +1 -0
  43. package/dist/cjs/llm/openai-provider.d.ts.map +1 -0
  44. package/dist/cjs/llm/openai-provider.js +186 -0
  45. package/dist/cjs/llm/openai-provider.js.map +1 -0
  46. package/dist/cjs/llm/provider.d.ts.map +1 -0
  47. package/dist/cjs/llm/provider.js +18 -0
  48. package/dist/cjs/llm/provider.js.map +1 -0
  49. package/dist/cjs/llm/types.d.ts.map +1 -0
  50. package/dist/cjs/llm/types.js +6 -0
  51. package/dist/cjs/llm/types.js.map +1 -0
  52. package/dist/cjs/mcp/base-client.d.ts.map +1 -0
  53. package/dist/cjs/mcp/base-client.js +112 -0
  54. package/dist/cjs/mcp/base-client.js.map +1 -0
  55. package/dist/cjs/mcp/client.d.ts.map +1 -0
  56. package/dist/cjs/mcp/client.js +76 -0
  57. package/dist/cjs/mcp/client.js.map +1 -0
  58. package/dist/cjs/mcp/factory.d.ts.map +1 -0
  59. package/dist/cjs/mcp/factory.js +43 -0
  60. package/dist/cjs/mcp/factory.js.map +1 -0
  61. package/dist/cjs/mcp/http-client.d.ts.map +1 -0
  62. package/dist/cjs/mcp/http-client.js +142 -0
  63. package/dist/cjs/mcp/http-client.js.map +1 -0
  64. package/dist/cjs/mcp/proxy-agent.d.ts.map +1 -0
  65. package/dist/cjs/mcp/proxy-agent.js +195 -0
  66. package/dist/cjs/mcp/proxy-agent.js.map +1 -0
  67. package/dist/cjs/mcp/stdio-client.d.ts.map +1 -0
  68. package/dist/cjs/mcp/stdio-client.js +95 -0
  69. package/dist/cjs/mcp/stdio-client.js.map +1 -0
  70. package/dist/cjs/mcp/types.d.ts.map +1 -0
  71. package/dist/cjs/mcp/types.js +6 -0
  72. package/dist/cjs/mcp/types.js.map +1 -0
  73. package/dist/cjs/memory/checkpoint.d.ts.map +1 -0
  74. package/dist/cjs/memory/checkpoint.js +160 -0
  75. package/dist/cjs/memory/checkpoint.js.map +1 -0
  76. package/dist/cjs/memory/extractor.d.ts.map +1 -0
  77. package/dist/cjs/memory/extractor.js +121 -0
  78. package/dist/cjs/memory/extractor.js.map +1 -0
  79. package/dist/cjs/memory/persona.d.ts.map +1 -0
  80. package/dist/cjs/memory/persona.js +79 -0
  81. package/dist/cjs/memory/persona.js.map +1 -0
  82. package/dist/cjs/memory/pipeline.d.ts.map +1 -0
  83. package/dist/cjs/memory/pipeline.js +148 -0
  84. package/dist/cjs/memory/pipeline.js.map +1 -0
  85. package/dist/cjs/memory/prompts.d.ts.map +1 -0
  86. package/dist/cjs/memory/prompts.js +70 -0
  87. package/dist/cjs/memory/prompts.js.map +1 -0
  88. package/dist/cjs/memory/recall.d.ts.map +1 -0
  89. package/dist/cjs/memory/recall.js +164 -0
  90. package/dist/cjs/memory/recall.js.map +1 -0
  91. package/dist/cjs/memory/scene.d.ts.map +1 -0
  92. package/dist/cjs/memory/scene.js +101 -0
  93. package/dist/cjs/memory/scene.js.map +1 -0
  94. package/dist/cjs/memory/types.d.ts.map +1 -0
  95. package/dist/cjs/memory/types.js +6 -0
  96. package/dist/cjs/memory/types.js.map +1 -0
  97. package/dist/cjs/middleware/types.d.ts.map +1 -0
  98. package/dist/cjs/middleware/types.js +6 -0
  99. package/dist/cjs/middleware/types.js.map +1 -0
  100. package/dist/cjs/package.json +3 -0
  101. package/dist/cjs/sandbox/types.d.ts.map +1 -0
  102. package/dist/cjs/sandbox/types.js +128 -0
  103. package/dist/cjs/sandbox/types.js.map +1 -0
  104. package/dist/cjs/security/guard.d.ts.map +1 -0
  105. package/dist/cjs/security/guard.js +229 -0
  106. package/dist/cjs/security/guard.js.map +1 -0
  107. package/dist/cjs/security/types.d.ts.map +1 -0
  108. package/dist/cjs/security/types.js +6 -0
  109. package/dist/cjs/security/types.js.map +1 -0
  110. package/dist/cjs/skill/manager.d.ts.map +1 -0
  111. package/dist/cjs/skill/manager.js +413 -0
  112. package/dist/cjs/skill/manager.js.map +1 -0
  113. package/dist/cjs/skill/router.d.ts.map +1 -0
  114. package/dist/cjs/skill/router.js +139 -0
  115. package/dist/cjs/skill/router.js.map +1 -0
  116. package/dist/cjs/skill/types.d.ts.map +1 -0
  117. package/dist/cjs/skill/types.js +6 -0
  118. package/dist/cjs/skill/types.js.map +1 -0
  119. package/dist/cjs/tool/delegate.d.ts.map +1 -0
  120. package/dist/cjs/tool/delegate.js +78 -0
  121. package/dist/cjs/tool/delegate.js.map +1 -0
  122. package/dist/cjs/tool/registry.d.ts.map +1 -0
  123. package/dist/cjs/tool/registry.js +57 -0
  124. package/dist/cjs/tool/registry.js.map +1 -0
  125. package/dist/cjs/tool/types.d.ts.map +1 -0
  126. package/dist/cjs/tool/types.js +6 -0
  127. package/dist/cjs/tool/types.js.map +1 -0
  128. package/dist/cjs/types.d.ts.map +1 -0
  129. package/dist/cjs/types.js +6 -0
  130. package/dist/cjs/types.js.map +1 -0
  131. package/dist/cjs/utils/token-counter.d.ts.map +1 -0
  132. package/dist/cjs/utils/token-counter.js +104 -0
  133. package/dist/cjs/utils/token-counter.js.map +1 -0
  134. package/dist/esm/agent/engine.d.ts +113 -0
  135. package/dist/esm/agent/engine.d.ts.map +1 -0
  136. package/dist/esm/agent/engine.js +762 -0
  137. package/dist/esm/agent/engine.js.map +1 -0
  138. package/dist/esm/agent/history-manager.d.ts +78 -0
  139. package/dist/esm/agent/history-manager.d.ts.map +1 -0
  140. package/dist/esm/agent/history-manager.js +267 -0
  141. package/dist/esm/agent/history-manager.js.map +1 -0
  142. package/dist/esm/agent/llm-caller.d.ts +58 -0
  143. package/dist/esm/agent/llm-caller.d.ts.map +1 -0
  144. package/dist/esm/agent/llm-caller.js +303 -0
  145. package/dist/esm/agent/llm-caller.js.map +1 -0
  146. package/dist/esm/agent/tool-executor.d.ts +95 -0
  147. package/dist/esm/agent/tool-executor.d.ts.map +1 -0
  148. package/dist/esm/agent/tool-executor.js +564 -0
  149. package/dist/esm/agent/tool-executor.js.map +1 -0
  150. package/dist/esm/agent/types.d.ts +128 -0
  151. package/dist/esm/agent/types.d.ts.map +1 -0
  152. package/dist/esm/agent/types.js +5 -0
  153. package/dist/esm/agent/types.js.map +1 -0
  154. package/dist/esm/agent/workflow.d.ts +74 -0
  155. package/dist/esm/agent/workflow.d.ts.map +1 -0
  156. package/dist/esm/agent/workflow.js +248 -0
  157. package/dist/esm/agent/workflow.js.map +1 -0
  158. package/dist/esm/context/collector.d.ts +12 -0
  159. package/dist/esm/context/collector.d.ts.map +1 -0
  160. package/dist/esm/context/collector.js +57 -0
  161. package/dist/esm/context/collector.js.map +1 -0
  162. package/dist/esm/context/manager.d.ts +16 -0
  163. package/dist/esm/context/manager.d.ts.map +1 -0
  164. package/dist/esm/context/manager.js +32 -0
  165. package/dist/esm/context/manager.js.map +1 -0
  166. package/dist/esm/context/types.d.ts +39 -0
  167. package/dist/esm/context/types.d.ts.map +1 -0
  168. package/dist/esm/context/types.js +5 -0
  169. package/dist/esm/context/types.js.map +1 -0
  170. package/dist/esm/hooks/types.d.ts +47 -0
  171. package/dist/esm/hooks/types.d.ts.map +1 -0
  172. package/dist/esm/hooks/types.js +5 -0
  173. package/dist/esm/hooks/types.js.map +1 -0
  174. package/{src/index.ts → dist/esm/index.d.ts} +15 -140
  175. package/dist/esm/index.d.ts.map +1 -0
  176. package/dist/esm/index.js +39 -0
  177. package/dist/esm/index.js.map +1 -0
  178. package/dist/esm/llm/anthropic-provider.d.ts +28 -0
  179. package/dist/esm/llm/anthropic-provider.d.ts.map +1 -0
  180. package/dist/esm/llm/anthropic-provider.js +352 -0
  181. package/dist/esm/llm/anthropic-provider.js.map +1 -0
  182. package/{src/llm/factory.ts → dist/esm/llm/factory.d.ts} +3 -18
  183. package/dist/esm/llm/factory.d.ts.map +1 -0
  184. package/dist/esm/llm/factory.js +30 -0
  185. package/dist/esm/llm/factory.js.map +1 -0
  186. package/dist/esm/llm/ollama-provider.d.ts +13 -0
  187. package/dist/esm/llm/ollama-provider.d.ts.map +1 -0
  188. package/dist/esm/llm/ollama-provider.js +30 -0
  189. package/dist/esm/llm/ollama-provider.js.map +1 -0
  190. package/dist/esm/llm/openai-provider.d.ts +18 -0
  191. package/dist/esm/llm/openai-provider.d.ts.map +1 -0
  192. package/dist/esm/llm/openai-provider.js +182 -0
  193. package/dist/esm/llm/openai-provider.js.map +1 -0
  194. package/{src/llm/provider.ts → dist/esm/llm/provider.d.ts} +1 -9
  195. package/dist/esm/llm/provider.d.ts.map +1 -0
  196. package/dist/esm/llm/provider.js +10 -0
  197. package/dist/esm/llm/provider.js.map +1 -0
  198. package/dist/esm/llm/types.d.ts +78 -0
  199. package/dist/esm/llm/types.d.ts.map +1 -0
  200. package/dist/esm/llm/types.js +5 -0
  201. package/dist/esm/llm/types.js.map +1 -0
  202. package/dist/esm/mcp/base-client.d.ts +50 -0
  203. package/dist/esm/mcp/base-client.d.ts.map +1 -0
  204. package/dist/esm/mcp/base-client.js +108 -0
  205. package/dist/esm/mcp/base-client.js.map +1 -0
  206. package/dist/esm/mcp/client.d.ts +27 -0
  207. package/dist/esm/mcp/client.d.ts.map +1 -0
  208. package/dist/esm/mcp/client.js +70 -0
  209. package/dist/esm/mcp/client.js.map +1 -0
  210. package/dist/esm/mcp/factory.d.ts +16 -0
  211. package/dist/esm/mcp/factory.d.ts.map +1 -0
  212. package/dist/esm/mcp/factory.js +39 -0
  213. package/dist/esm/mcp/factory.js.map +1 -0
  214. package/dist/esm/mcp/http-client.d.ts +24 -0
  215. package/dist/esm/mcp/http-client.d.ts.map +1 -0
  216. package/dist/esm/mcp/http-client.js +138 -0
  217. package/dist/esm/mcp/http-client.js.map +1 -0
  218. package/dist/esm/mcp/proxy-agent.d.ts +49 -0
  219. package/dist/esm/mcp/proxy-agent.d.ts.map +1 -0
  220. package/dist/esm/mcp/proxy-agent.js +187 -0
  221. package/dist/esm/mcp/proxy-agent.js.map +1 -0
  222. package/dist/esm/mcp/stdio-client.d.ts +16 -0
  223. package/dist/esm/mcp/stdio-client.d.ts.map +1 -0
  224. package/dist/esm/mcp/stdio-client.js +91 -0
  225. package/dist/esm/mcp/stdio-client.js.map +1 -0
  226. package/dist/esm/mcp/types.d.ts +60 -0
  227. package/dist/esm/mcp/types.d.ts.map +1 -0
  228. package/dist/esm/mcp/types.js +5 -0
  229. package/dist/esm/mcp/types.js.map +1 -0
  230. package/dist/esm/memory/checkpoint.d.ts +62 -0
  231. package/dist/esm/memory/checkpoint.d.ts.map +1 -0
  232. package/dist/esm/memory/checkpoint.js +121 -0
  233. package/dist/esm/memory/checkpoint.js.map +1 -0
  234. package/dist/esm/memory/extractor.d.ts +59 -0
  235. package/dist/esm/memory/extractor.d.ts.map +1 -0
  236. package/dist/esm/memory/extractor.js +117 -0
  237. package/dist/esm/memory/extractor.js.map +1 -0
  238. package/dist/esm/memory/persona.d.ts +38 -0
  239. package/dist/esm/memory/persona.d.ts.map +1 -0
  240. package/dist/esm/memory/persona.js +75 -0
  241. package/dist/esm/memory/persona.js.map +1 -0
  242. package/dist/esm/memory/pipeline.d.ts +50 -0
  243. package/dist/esm/memory/pipeline.d.ts.map +1 -0
  244. package/dist/esm/memory/pipeline.js +144 -0
  245. package/dist/esm/memory/pipeline.js.map +1 -0
  246. package/dist/esm/memory/prompts.d.ts +9 -0
  247. package/dist/esm/memory/prompts.d.ts.map +1 -0
  248. package/{src/memory/prompts.ts → dist/esm/memory/prompts.js} +6 -13
  249. package/dist/esm/memory/prompts.js.map +1 -0
  250. package/dist/esm/memory/recall.d.ts +66 -0
  251. package/dist/esm/memory/recall.d.ts.map +1 -0
  252. package/dist/esm/memory/recall.js +159 -0
  253. package/dist/esm/memory/recall.js.map +1 -0
  254. package/dist/esm/memory/scene.d.ts +49 -0
  255. package/dist/esm/memory/scene.d.ts.map +1 -0
  256. package/dist/esm/memory/scene.js +97 -0
  257. package/dist/esm/memory/scene.js.map +1 -0
  258. package/dist/esm/memory/types.d.ts +43 -0
  259. package/dist/esm/memory/types.d.ts.map +1 -0
  260. package/dist/esm/memory/types.js +5 -0
  261. package/dist/esm/memory/types.js.map +1 -0
  262. package/dist/esm/middleware/types.d.ts +52 -0
  263. package/dist/esm/middleware/types.d.ts.map +1 -0
  264. package/dist/esm/middleware/types.js +5 -0
  265. package/dist/esm/middleware/types.js.map +1 -0
  266. package/dist/esm/package.json +3 -0
  267. package/dist/esm/sandbox/types.d.ts +59 -0
  268. package/dist/esm/sandbox/types.d.ts.map +1 -0
  269. package/dist/esm/sandbox/types.js +125 -0
  270. package/dist/esm/sandbox/types.js.map +1 -0
  271. package/dist/esm/security/guard.d.ts +41 -0
  272. package/dist/esm/security/guard.d.ts.map +1 -0
  273. package/dist/esm/security/guard.js +225 -0
  274. package/dist/esm/security/guard.js.map +1 -0
  275. package/dist/esm/security/types.d.ts +36 -0
  276. package/dist/esm/security/types.d.ts.map +1 -0
  277. package/dist/esm/security/types.js +5 -0
  278. package/dist/esm/security/types.js.map +1 -0
  279. package/dist/esm/skill/manager.d.ts +95 -0
  280. package/dist/esm/skill/manager.d.ts.map +1 -0
  281. package/dist/esm/skill/manager.js +376 -0
  282. package/dist/esm/skill/manager.js.map +1 -0
  283. package/dist/esm/skill/router.d.ts +26 -0
  284. package/dist/esm/skill/router.d.ts.map +1 -0
  285. package/dist/esm/skill/router.js +135 -0
  286. package/dist/esm/skill/router.js.map +1 -0
  287. package/dist/esm/skill/types.d.ts +55 -0
  288. package/dist/esm/skill/types.d.ts.map +1 -0
  289. package/dist/esm/skill/types.js +5 -0
  290. package/dist/esm/skill/types.js.map +1 -0
  291. package/dist/esm/tool/delegate.d.ts +34 -0
  292. package/dist/esm/tool/delegate.d.ts.map +1 -0
  293. package/dist/esm/tool/delegate.js +75 -0
  294. package/dist/esm/tool/delegate.js.map +1 -0
  295. package/dist/esm/tool/registry.d.ts +24 -0
  296. package/dist/esm/tool/registry.d.ts.map +1 -0
  297. package/dist/esm/tool/registry.js +53 -0
  298. package/dist/esm/tool/registry.js.map +1 -0
  299. package/dist/esm/tool/types.d.ts +101 -0
  300. package/dist/esm/tool/types.d.ts.map +1 -0
  301. package/dist/esm/tool/types.js +5 -0
  302. package/dist/esm/tool/types.js.map +1 -0
  303. package/dist/esm/types.d.ts +150 -0
  304. package/dist/esm/types.d.ts.map +1 -0
  305. package/dist/esm/types.js +5 -0
  306. package/dist/esm/types.js.map +1 -0
  307. package/dist/esm/utils/token-counter.d.ts +22 -0
  308. package/dist/esm/utils/token-counter.d.ts.map +1 -0
  309. package/dist/esm/utils/token-counter.js +99 -0
  310. package/dist/esm/utils/token-counter.js.map +1 -0
  311. package/package.json +16 -10
  312. package/dist/agent/engine.d.ts.map +0 -1
  313. package/dist/agent/history-manager.d.ts.map +0 -1
  314. package/dist/agent/llm-caller.d.ts.map +0 -1
  315. package/dist/agent/tool-executor.d.ts.map +0 -1
  316. package/dist/agent/types.d.ts.map +0 -1
  317. package/dist/agent/workflow.d.ts.map +0 -1
  318. package/dist/context/collector.d.ts.map +0 -1
  319. package/dist/context/manager.d.ts.map +0 -1
  320. package/dist/context/types.d.ts.map +0 -1
  321. package/dist/hooks/types.d.ts.map +0 -1
  322. package/dist/index.d.ts.map +0 -1
  323. package/dist/llm/anthropic-provider.d.ts.map +0 -1
  324. package/dist/llm/factory.d.ts.map +0 -1
  325. package/dist/llm/ollama-provider.d.ts.map +0 -1
  326. package/dist/llm/openai-provider.d.ts.map +0 -1
  327. package/dist/llm/provider.d.ts.map +0 -1
  328. package/dist/llm/types.d.ts.map +0 -1
  329. package/dist/mcp/base-client.d.ts.map +0 -1
  330. package/dist/mcp/client.d.ts.map +0 -1
  331. package/dist/mcp/factory.d.ts.map +0 -1
  332. package/dist/mcp/http-client.d.ts.map +0 -1
  333. package/dist/mcp/proxy-agent.d.ts.map +0 -1
  334. package/dist/mcp/stdio-client.d.ts.map +0 -1
  335. package/dist/mcp/types.d.ts.map +0 -1
  336. package/dist/memory/checkpoint.d.ts.map +0 -1
  337. package/dist/memory/extractor.d.ts.map +0 -1
  338. package/dist/memory/persona.d.ts.map +0 -1
  339. package/dist/memory/pipeline.d.ts.map +0 -1
  340. package/dist/memory/prompts.d.ts.map +0 -1
  341. package/dist/memory/recall.d.ts.map +0 -1
  342. package/dist/memory/scene.d.ts.map +0 -1
  343. package/dist/memory/types.d.ts.map +0 -1
  344. package/dist/middleware/types.d.ts.map +0 -1
  345. package/dist/sandbox/types.d.ts.map +0 -1
  346. package/dist/security/guard.d.ts.map +0 -1
  347. package/dist/security/types.d.ts.map +0 -1
  348. package/dist/skill/manager.d.ts.map +0 -1
  349. package/dist/skill/router.d.ts.map +0 -1
  350. package/dist/skill/types.d.ts.map +0 -1
  351. package/dist/tool/delegate.d.ts.map +0 -1
  352. package/dist/tool/registry.d.ts.map +0 -1
  353. package/dist/tool/types.d.ts.map +0 -1
  354. package/dist/types.d.ts.map +0 -1
  355. package/dist/utils/token-counter.d.ts.map +0 -1
  356. package/src/agent/engine.ts +0 -875
  357. package/src/agent/history-manager.ts +0 -323
  358. package/src/agent/llm-caller.ts +0 -383
  359. package/src/agent/tool-executor.ts +0 -713
  360. package/src/agent/types.ts +0 -136
  361. package/src/agent/workflow.ts +0 -339
  362. package/src/context/collector.ts +0 -59
  363. package/src/context/manager.ts +0 -40
  364. package/src/context/types.ts +0 -51
  365. package/src/hooks/types.ts +0 -77
  366. package/src/llm/anthropic-provider.ts +0 -412
  367. package/src/llm/ollama-provider.ts +0 -39
  368. package/src/llm/openai-provider.ts +0 -200
  369. package/src/llm/types.ts +0 -91
  370. package/src/mcp/base-client.ts +0 -159
  371. package/src/mcp/client.ts +0 -81
  372. package/src/mcp/factory.ts +0 -45
  373. package/src/mcp/http-client.ts +0 -149
  374. package/src/mcp/proxy-agent.ts +0 -227
  375. package/src/mcp/stdio-client.ts +0 -104
  376. package/src/mcp/types.ts +0 -65
  377. package/src/memory/checkpoint.ts +0 -146
  378. package/src/memory/extractor.ts +0 -164
  379. package/src/memory/persona.ts +0 -106
  380. package/src/memory/pipeline.ts +0 -192
  381. package/src/memory/recall.ts +0 -217
  382. package/src/memory/scene.ts +0 -137
  383. package/src/memory/types.ts +0 -54
  384. package/src/middleware/types.ts +0 -62
  385. package/src/sandbox/types.ts +0 -185
  386. package/src/security/guard.ts +0 -249
  387. package/src/security/types.ts +0 -46
  388. package/src/skill/manager.ts +0 -420
  389. package/src/skill/router.ts +0 -158
  390. package/src/skill/types.ts +0 -67
  391. package/src/tool/delegate.ts +0 -105
  392. package/src/tool/registry.ts +0 -64
  393. package/src/tool/types.ts +0 -124
  394. package/src/types.ts +0 -188
  395. package/src/utils/token-counter.ts +0 -108
  396. /package/dist/{agent → cjs/agent}/engine.d.ts +0 -0
  397. /package/dist/{agent → cjs/agent}/history-manager.d.ts +0 -0
  398. /package/dist/{agent → cjs/agent}/llm-caller.d.ts +0 -0
  399. /package/dist/{agent → cjs/agent}/tool-executor.d.ts +0 -0
  400. /package/dist/{agent → cjs/agent}/types.d.ts +0 -0
  401. /package/dist/{agent → cjs/agent}/workflow.d.ts +0 -0
  402. /package/dist/{context → cjs/context}/collector.d.ts +0 -0
  403. /package/dist/{context → cjs/context}/manager.d.ts +0 -0
  404. /package/dist/{context → cjs/context}/types.d.ts +0 -0
  405. /package/dist/{hooks → cjs/hooks}/types.d.ts +0 -0
  406. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  407. /package/dist/{llm → cjs/llm}/anthropic-provider.d.ts +0 -0
  408. /package/dist/{llm → cjs/llm}/factory.d.ts +0 -0
  409. /package/dist/{llm → cjs/llm}/ollama-provider.d.ts +0 -0
  410. /package/dist/{llm → cjs/llm}/openai-provider.d.ts +0 -0
  411. /package/dist/{llm → cjs/llm}/provider.d.ts +0 -0
  412. /package/dist/{llm → cjs/llm}/types.d.ts +0 -0
  413. /package/dist/{mcp → cjs/mcp}/base-client.d.ts +0 -0
  414. /package/dist/{mcp → cjs/mcp}/client.d.ts +0 -0
  415. /package/dist/{mcp → cjs/mcp}/factory.d.ts +0 -0
  416. /package/dist/{mcp → cjs/mcp}/http-client.d.ts +0 -0
  417. /package/dist/{mcp → cjs/mcp}/proxy-agent.d.ts +0 -0
  418. /package/dist/{mcp → cjs/mcp}/stdio-client.d.ts +0 -0
  419. /package/dist/{mcp → cjs/mcp}/types.d.ts +0 -0
  420. /package/dist/{memory → cjs/memory}/checkpoint.d.ts +0 -0
  421. /package/dist/{memory → cjs/memory}/extractor.d.ts +0 -0
  422. /package/dist/{memory → cjs/memory}/persona.d.ts +0 -0
  423. /package/dist/{memory → cjs/memory}/pipeline.d.ts +0 -0
  424. /package/dist/{memory → cjs/memory}/prompts.d.ts +0 -0
  425. /package/dist/{memory → cjs/memory}/recall.d.ts +0 -0
  426. /package/dist/{memory → cjs/memory}/scene.d.ts +0 -0
  427. /package/dist/{memory → cjs/memory}/types.d.ts +0 -0
  428. /package/dist/{middleware → cjs/middleware}/types.d.ts +0 -0
  429. /package/dist/{sandbox → cjs/sandbox}/types.d.ts +0 -0
  430. /package/dist/{security → cjs/security}/guard.d.ts +0 -0
  431. /package/dist/{security → cjs/security}/types.d.ts +0 -0
  432. /package/dist/{skill → cjs/skill}/manager.d.ts +0 -0
  433. /package/dist/{skill → cjs/skill}/router.d.ts +0 -0
  434. /package/dist/{skill → cjs/skill}/types.d.ts +0 -0
  435. /package/dist/{tool → cjs/tool}/delegate.d.ts +0 -0
  436. /package/dist/{tool → cjs/tool}/registry.d.ts +0 -0
  437. /package/dist/{tool → cjs/tool}/types.d.ts +0 -0
  438. /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  439. /package/dist/{utils → cjs/utils}/token-counter.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,YAAY,CAAC;IACxB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,qEAAqE;IACrE,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,aAAa,CAAC,EAAE,OAAO,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE;;;;;OAKG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAID,MAAM,WAAW,SAAS;IACxB,gBAAgB;IAChB,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD,eAAe;IACf,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEvC,aAAa;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvE,qBAAqB;IACrB,aAAa,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAEtF,mBAAmB;IACnB,YAAY,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C,WAAW;IACX,UAAU,IAAI,IAAI,CAAC;IAEnB,WAAW;IACX,WAAW,IAAI,OAAO,CAAC;CACxB"}
@@ -0,0 +1,5 @@
1
+ // ============================================================
2
+ // MCP Client 类型定义
3
+ // ============================================================
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcp/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kBAAkB;AAClB,+DAA+D"}
@@ -0,0 +1,62 @@
1
+ /** 检查点数据 */
2
+ export interface CheckpointData {
3
+ /** 上次 L2 聚合时的 L1 条目总数 */
4
+ lastL1Count: number;
5
+ /** 上次 L3 生成时的 L2 条目总数 */
6
+ lastL2Count: number;
7
+ /** 最后执行时间(ISO 字符串) */
8
+ lastRunAt: string;
9
+ /** 累计执行次数 */
10
+ runCount: number;
11
+ }
12
+ /**
13
+ * 记忆管道检查点
14
+ *
15
+ * 用于管道调度器判断是否需要触发 L2/L3:
16
+ * - 当 L1 增量(当前 - lastL1Count)达到阈值时触发 L2
17
+ * - 当 L2 增量(当前 - lastL2Count)达到阈值时触发 L3
18
+ */
19
+ export declare class MemoryCheckpoint {
20
+ private filePath;
21
+ private data;
22
+ /**
23
+ * @param filePath 检查点文件路径,默认为 {cwd}/data/memories/checkpoint.json
24
+ */
25
+ constructor(filePath?: string);
26
+ /** 获取当前检查点数据 */
27
+ get(): CheckpointData;
28
+ /**
29
+ * 判断是否应触发 L2 聚合
30
+ * @param currentL1Count 当前 L1 条目总数
31
+ * @param threshold L2 触发阈值
32
+ */
33
+ shouldTriggerL2(currentL1Count: number, threshold: number): boolean;
34
+ /**
35
+ * 判断是否应触发 L3 画像更新
36
+ * @param currentL2Count 当前 L2 条目总数
37
+ * @param threshold L3 触发阈值
38
+ */
39
+ shouldTriggerL3(currentL2Count: number, threshold: number): boolean;
40
+ /**
41
+ * 更新检查点(L2 聚合完成后调用)
42
+ */
43
+ updateL2(currentL1Count: number): void;
44
+ /**
45
+ * 更新检查点(L3 画像完成后调用)
46
+ */
47
+ updateL3(currentL2Count: number): void;
48
+ /**
49
+ * 重置检查点(用于手动触发全量重建)
50
+ */
51
+ reset(): void;
52
+ private load;
53
+ private persist;
54
+ }
55
+ /**
56
+ * 获取全局检查点实例
57
+ * @param filePath 可选,首次调用时指定自定义路径
58
+ */
59
+ export declare function getMemoryCheckpoint(filePath?: string): MemoryCheckpoint;
60
+ /** 重置全局实例(用于测试或路径变更场景) */
61
+ export declare function resetMemoryCheckpoint(): void;
62
+ //# sourceMappingURL=checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../src/memory/checkpoint.ts"],"names":[],"mappings":"AAWA,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAYD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;gBACS,QAAQ,CAAC,EAAE,MAAM;IAK7B,gBAAgB;IAChB,GAAG,IAAI,cAAc;IAIrB;;;;OAIG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAInE;;;;OAIG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAInE;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAOtC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAMtC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,OAAO;CAWhB;AAKD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAKvE;AAED,0BAA0B;AAC1B,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,121 @@
1
+ // ============================================================
2
+ // MemoryCheckpoint — 记忆管道检查点
3
+ // ============================================================
4
+ // 记录管道调度器的执行状态,避免重复处理:
5
+ // - 上次 L2 聚合时的 L1 条目数
6
+ // - 上次 L3 生成时的 L2 条目数
7
+ // - 最后执行时间
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ const DEFAULT_CHECKPOINT = {
11
+ lastL1Count: 0,
12
+ lastL2Count: 0,
13
+ lastRunAt: '',
14
+ runCount: 0,
15
+ };
16
+ /** 默认检查点文件路径(基于 process.cwd()) */
17
+ const DEFAULT_CHECKPOINT_PATH = 'data/memories/checkpoint.json';
18
+ /**
19
+ * 记忆管道检查点
20
+ *
21
+ * 用于管道调度器判断是否需要触发 L2/L3:
22
+ * - 当 L1 增量(当前 - lastL1Count)达到阈值时触发 L2
23
+ * - 当 L2 增量(当前 - lastL2Count)达到阈值时触发 L3
24
+ */
25
+ export class MemoryCheckpoint {
26
+ filePath;
27
+ data;
28
+ /**
29
+ * @param filePath 检查点文件路径,默认为 {cwd}/data/memories/checkpoint.json
30
+ */
31
+ constructor(filePath) {
32
+ this.filePath = filePath ?? path.join(process.cwd(), DEFAULT_CHECKPOINT_PATH);
33
+ this.data = this.load();
34
+ }
35
+ /** 获取当前检查点数据 */
36
+ get() {
37
+ return { ...this.data };
38
+ }
39
+ /**
40
+ * 判断是否应触发 L2 聚合
41
+ * @param currentL1Count 当前 L1 条目总数
42
+ * @param threshold L2 触发阈值
43
+ */
44
+ shouldTriggerL2(currentL1Count, threshold) {
45
+ return (currentL1Count - this.data.lastL1Count) >= threshold;
46
+ }
47
+ /**
48
+ * 判断是否应触发 L3 画像更新
49
+ * @param currentL2Count 当前 L2 条目总数
50
+ * @param threshold L3 触发阈值
51
+ */
52
+ shouldTriggerL3(currentL2Count, threshold) {
53
+ return (currentL2Count - this.data.lastL2Count) >= threshold;
54
+ }
55
+ /**
56
+ * 更新检查点(L2 聚合完成后调用)
57
+ */
58
+ updateL2(currentL1Count) {
59
+ this.data.lastL1Count = currentL1Count;
60
+ this.data.lastRunAt = new Date().toISOString();
61
+ this.data.runCount++;
62
+ this.persist();
63
+ }
64
+ /**
65
+ * 更新检查点(L3 画像完成后调用)
66
+ */
67
+ updateL3(currentL2Count) {
68
+ this.data.lastL2Count = currentL2Count;
69
+ this.data.lastRunAt = new Date().toISOString();
70
+ this.persist();
71
+ }
72
+ /**
73
+ * 重置检查点(用于手动触发全量重建)
74
+ */
75
+ reset() {
76
+ this.data = { ...DEFAULT_CHECKPOINT };
77
+ this.persist();
78
+ }
79
+ load() {
80
+ try {
81
+ if (fs.existsSync(this.filePath)) {
82
+ const raw = fs.readFileSync(this.filePath, 'utf-8');
83
+ const data = JSON.parse(raw);
84
+ return { ...DEFAULT_CHECKPOINT, ...data };
85
+ }
86
+ }
87
+ catch (err) {
88
+ console.warn('[MemoryCheckpoint] Failed to load:', err);
89
+ }
90
+ return { ...DEFAULT_CHECKPOINT };
91
+ }
92
+ persist() {
93
+ try {
94
+ const dir = path.dirname(this.filePath);
95
+ if (!fs.existsSync(dir)) {
96
+ fs.mkdirSync(dir, { recursive: true });
97
+ }
98
+ fs.writeFileSync(this.filePath, JSON.stringify(this.data, null, 2), 'utf-8');
99
+ }
100
+ catch (err) {
101
+ console.warn('[MemoryCheckpoint] Failed to persist:', err);
102
+ }
103
+ }
104
+ }
105
+ /** 全局单例(可配置路径) */
106
+ let checkpointInstance = null;
107
+ /**
108
+ * 获取全局检查点实例
109
+ * @param filePath 可选,首次调用时指定自定义路径
110
+ */
111
+ export function getMemoryCheckpoint(filePath) {
112
+ if (!checkpointInstance) {
113
+ checkpointInstance = new MemoryCheckpoint(filePath);
114
+ }
115
+ return checkpointInstance;
116
+ }
117
+ /** 重置全局实例(用于测试或路径变更场景) */
118
+ export function resetMemoryCheckpoint() {
119
+ checkpointInstance = null;
120
+ }
121
+ //# sourceMappingURL=checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../src/memory/checkpoint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { LLMProvider } from '../llm/types.ts';
2
+ import type { Message } from '../types.ts';
3
+ /** 从对话中提取的原子事实 */
4
+ export interface AtomFact {
5
+ /** 记忆键(snake_case,用于 upsert) */
6
+ key: string;
7
+ /** 事实内容 */
8
+ content: string;
9
+ /** 分类 */
10
+ category: 'user_preference' | 'project_knowledge' | 'learned_fact' | 'custom';
11
+ /** 重要程度 1-5 */
12
+ importance: number;
13
+ /** 来源会话 ID */
14
+ sourceSessionId: string;
15
+ }
16
+ /** 提取配置 */
17
+ export interface ExtractorOptions {
18
+ /** LLM Provider 实例 */
19
+ llmProvider: LLMProvider;
20
+ /** 单次提取最大原子事实数,默认 5 */
21
+ maxFactsPerSession?: number;
22
+ /** 触发提取的最小迭代次数,默认 3 */
23
+ minIterations?: number;
24
+ /** 提取超时(毫秒),默认 30000 */
25
+ timeoutMs?: number;
26
+ }
27
+ /**
28
+ * LLM 驱动的原子事实提取器
29
+ * 从对话历史中提取持久性、可复用的结构化事实(L1 Atom)
30
+ */
31
+ export declare class MemoryExtractor {
32
+ private llmProvider;
33
+ private maxFactsPerSession;
34
+ private minIterations;
35
+ private timeoutMs;
36
+ constructor(opts: ExtractorOptions);
37
+ /**
38
+ * 从对话消息中提取原子事实
39
+ * @param messages 对话消息列表
40
+ * @param sessionId 当前会话 ID
41
+ * @param existingKeys 已有的记忆键(用于去重)
42
+ * @returns 提取到的原子事实数组
43
+ */
44
+ extract(messages: Message[], sessionId: string, existingKeys: string[]): Promise<AtomFact[]>;
45
+ /**
46
+ * 调用 LLM 提取事实
47
+ */
48
+ private callLLM;
49
+ /**
50
+ * 解析 LLM 输出的 JSON 数组
51
+ */
52
+ private parseFacts;
53
+ private normalizeCategory;
54
+ /**
55
+ * 构建对话摘要(将消息列表压缩为文本,限制总字符数)
56
+ */
57
+ private buildMessagesSummary;
58
+ }
59
+ //# sourceMappingURL=extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/memory/extractor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,kBAAkB;AAClB,MAAM,WAAW,QAAQ;IACvB,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS;IACT,QAAQ,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,cAAc,GAAG,QAAQ,CAAC;IAC9E,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,WAAW;AACX,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,uBAAuB;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uBAAuB;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,gBAAgB;IAOlC;;;;;;OAMG;IACG,OAAO,CACX,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAetB;;OAEG;YACW,OAAO;IAqBrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAuB7B"}
@@ -0,0 +1,117 @@
1
+ // ============================================================
2
+ // MemoryExtractor — LLM 驱动的原子事实提取器
3
+ // ============================================================
4
+ import { EXTRACTION_SYSTEM_PROMPT, buildExtractionUserPrompt, } from "./prompts.js";
5
+ /**
6
+ * LLM 驱动的原子事实提取器
7
+ * 从对话历史中提取持久性、可复用的结构化事实(L1 Atom)
8
+ */
9
+ export class MemoryExtractor {
10
+ llmProvider;
11
+ maxFactsPerSession;
12
+ minIterations;
13
+ timeoutMs;
14
+ constructor(opts) {
15
+ this.llmProvider = opts.llmProvider;
16
+ this.maxFactsPerSession = opts.maxFactsPerSession ?? 5;
17
+ this.minIterations = opts.minIterations ?? 3;
18
+ this.timeoutMs = opts.timeoutMs ?? 30000;
19
+ }
20
+ /**
21
+ * 从对话消息中提取原子事实
22
+ * @param messages 对话消息列表
23
+ * @param sessionId 当前会话 ID
24
+ * @param existingKeys 已有的记忆键(用于去重)
25
+ * @returns 提取到的原子事实数组
26
+ */
27
+ async extract(messages, sessionId, existingKeys) {
28
+ // 构建对话摘要(避免超长对话)
29
+ const summary = this.buildMessagesSummary(messages);
30
+ const userPrompt = buildExtractionUserPrompt(summary, existingKeys);
31
+ try {
32
+ const result = await this.callLLM(userPrompt);
33
+ return this.parseFacts(result, sessionId);
34
+ }
35
+ catch (err) {
36
+ console.warn(`[MemoryExtractor] Extraction failed: ${err?.message || err}`);
37
+ return [];
38
+ }
39
+ }
40
+ /**
41
+ * 调用 LLM 提取事实
42
+ */
43
+ async callLLM(userPrompt) {
44
+ const messages = [
45
+ { role: 'system', content: EXTRACTION_SYSTEM_PROMPT },
46
+ { role: 'user', content: userPrompt },
47
+ ];
48
+ const chunks = [];
49
+ const stream = this.llmProvider.chatStream({
50
+ messages,
51
+ abortSignal: AbortSignal.timeout(this.timeoutMs),
52
+ });
53
+ for await (const chunk of stream) {
54
+ if (chunk.delta.content) {
55
+ chunks.push(chunk.delta.content);
56
+ }
57
+ }
58
+ return chunks.join('');
59
+ }
60
+ /**
61
+ * 解析 LLM 输出的 JSON 数组
62
+ */
63
+ parseFacts(raw, sessionId) {
64
+ // 尝试提取 JSON 数组(LLM 可能输出额外文本)
65
+ const jsonMatch = raw.match(/\[[\s\S]*\]/);
66
+ if (!jsonMatch)
67
+ return [];
68
+ try {
69
+ const parsed = JSON.parse(jsonMatch[0]);
70
+ if (!Array.isArray(parsed))
71
+ return [];
72
+ return parsed
73
+ .filter((item) => item.key && item.content)
74
+ .slice(0, this.maxFactsPerSession)
75
+ .map((item) => ({
76
+ key: String(item.key).replace(/[^a-z0-9_]/g, '_').toLowerCase(),
77
+ content: String(item.content),
78
+ category: this.normalizeCategory(item.category),
79
+ importance: Math.min(5, Math.max(1, Number(item.importance) || 3)),
80
+ sourceSessionId: sessionId,
81
+ }));
82
+ }
83
+ catch {
84
+ console.warn('[MemoryExtractor] Failed to parse LLM output as JSON');
85
+ return [];
86
+ }
87
+ }
88
+ normalizeCategory(cat) {
89
+ const valid = ['user_preference', 'project_knowledge', 'learned_fact', 'custom'];
90
+ return valid.includes(cat) ? cat : 'custom';
91
+ }
92
+ /**
93
+ * 构建对话摘要(将消息列表压缩为文本,限制总字符数)
94
+ */
95
+ buildMessagesSummary(messages) {
96
+ const maxChars = 6000;
97
+ const lines = [];
98
+ let totalLen = 0;
99
+ for (const msg of messages) {
100
+ if (msg.role === 'system')
101
+ continue;
102
+ const role = msg.role === 'user' ? 'USER' : msg.role === 'assistant' ? 'ASSISTANT' : 'TOOL';
103
+ const content = typeof msg.content === 'string'
104
+ ? msg.content.slice(0, 500)
105
+ : JSON.stringify(msg.content).slice(0, 500);
106
+ const line = `[${role}] ${content}`;
107
+ if (totalLen + line.length > maxChars) {
108
+ lines.push(`... (${messages.length - lines.length} more messages truncated)`);
109
+ break;
110
+ }
111
+ lines.push(line);
112
+ totalLen += line.length;
113
+ }
114
+ return lines.join('\n');
115
+ }
116
+ }
117
+ //# sourceMappingURL=extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../../src/memory/extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { LLMProvider } from '../llm/types.ts';
2
+ import type { SceneBlock } from './scene.ts';
3
+ /** 画像维度 */
4
+ export interface PersonaFacet {
5
+ /** 维度键(如 coding_style, tool_preference) */
6
+ key: string;
7
+ /** 维度内容(markdown) */
8
+ content: string;
9
+ }
10
+ /** 画像生成器配置 */
11
+ export interface PersonaGeneratorOptions {
12
+ llmProvider: LLMProvider;
13
+ /** 超时(毫秒),默认 30000 */
14
+ timeoutMs?: number;
15
+ }
16
+ /**
17
+ * L3 用户画像生成器
18
+ *
19
+ * 工作流程:
20
+ * 1. 接收 L2 场景块列表
21
+ * 2. 通过 LLM 从场景中提炼稳定用户特征
22
+ * 3. 增量更新画像(保留已有内容,仅修改受影响的部分)
23
+ */
24
+ export declare class PersonaGenerator {
25
+ private llmProvider;
26
+ private timeoutMs;
27
+ constructor(opts: PersonaGeneratorOptions);
28
+ /**
29
+ * 生成或更新用户画像
30
+ * @param scenes L2 场景块列表
31
+ * @param existingPersona 已有画像(markdown 文本,用于增量更新)
32
+ * @returns 更新后的画像 markdown
33
+ */
34
+ generate(scenes: SceneBlock[], existingPersona?: string): Promise<string>;
35
+ private buildUserPrompt;
36
+ private callLLM;
37
+ }
38
+ //# sourceMappingURL=persona.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona.d.ts","sourceRoot":"","sources":["../../../src/memory/persona.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,cAAc;AACd,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,uBAAuB;IAKzC;;;;;OAKG;IACG,QAAQ,CACZ,MAAM,EAAE,UAAU,EAAE,EACpB,eAAe,GAAE,MAAW,GAC3B,OAAO,CAAC,MAAM,CAAC;IAalB,OAAO,CAAC,eAAe;YAoBT,OAAO;CAoBtB"}
@@ -0,0 +1,75 @@
1
+ // ============================================================
2
+ // PersonaGenerator — L3 用户画像生成器
3
+ // ============================================================
4
+ // 基于 L2 场景块生成/增量更新用户画像(L3 Persona),
5
+ // 画像以 markdown 格式存储,注入 prompt 时提供用户全貌
6
+ import { PERSONA_GENERATION_SYSTEM_PROMPT } from "./prompts.js";
7
+ /**
8
+ * L3 用户画像生成器
9
+ *
10
+ * 工作流程:
11
+ * 1. 接收 L2 场景块列表
12
+ * 2. 通过 LLM 从场景中提炼稳定用户特征
13
+ * 3. 增量更新画像(保留已有内容,仅修改受影响的部分)
14
+ */
15
+ export class PersonaGenerator {
16
+ llmProvider;
17
+ timeoutMs;
18
+ constructor(opts) {
19
+ this.llmProvider = opts.llmProvider;
20
+ this.timeoutMs = opts.timeoutMs ?? 30000;
21
+ }
22
+ /**
23
+ * 生成或更新用户画像
24
+ * @param scenes L2 场景块列表
25
+ * @param existingPersona 已有画像(markdown 文本,用于增量更新)
26
+ * @returns 更新后的画像 markdown
27
+ */
28
+ async generate(scenes, existingPersona = '') {
29
+ if (scenes.length === 0 && !existingPersona)
30
+ return '';
31
+ const userPrompt = this.buildUserPrompt(scenes, existingPersona);
32
+ try {
33
+ return await this.callLLM(userPrompt);
34
+ }
35
+ catch (err) {
36
+ console.warn(`[PersonaGenerator] Generation failed: ${err?.message || err}`);
37
+ return existingPersona;
38
+ }
39
+ }
40
+ buildUserPrompt(scenes, existingPersona) {
41
+ let prompt = '';
42
+ if (scenes.length > 0) {
43
+ const scenesText = scenes
44
+ .map(s => `### ${s.title}\n${s.description}\nAtoms: ${s.atomIds.length}`)
45
+ .join('\n\n');
46
+ prompt += `**Scenario blocks:**\n${scenesText}\n\n`;
47
+ }
48
+ if (existingPersona) {
49
+ prompt += `**Existing persona (update incrementally, preserve unaffected sections):**\n${existingPersona}\n\n`;
50
+ prompt += `Update the persona based on the new scenario blocks above. Preserve sections not affected by new data.`;
51
+ }
52
+ else {
53
+ prompt += `Generate a user persona based on the scenario blocks above. Use markdown with clear section headers.`;
54
+ }
55
+ return prompt;
56
+ }
57
+ async callLLM(userPrompt) {
58
+ const messages = [
59
+ { role: 'system', content: PERSONA_GENERATION_SYSTEM_PROMPT },
60
+ { role: 'user', content: userPrompt },
61
+ ];
62
+ const chunks = [];
63
+ const stream = this.llmProvider.chatStream({
64
+ messages,
65
+ abortSignal: AbortSignal.timeout(this.timeoutMs),
66
+ });
67
+ for await (const chunk of stream) {
68
+ if (chunk.delta.content) {
69
+ chunks.push(chunk.delta.content);
70
+ }
71
+ }
72
+ return chunks.join('').trim();
73
+ }
74
+ }
75
+ //# sourceMappingURL=persona.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona.js","sourceRoot":"","sources":["../../../src/memory/persona.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;AAC/D,oCAAoC;AACpC,sCAAsC;AAItC,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAkBhE;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IACnB,WAAW,CAAc;IACzB,SAAS,CAAS;IAE1B,YAAY,IAA6B;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,MAAoB,EACpB,kBAA0B,EAAE;QAE5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,yCAAyC,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;YAC7E,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAAoB,EAAE,eAAuB;QACnE,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,UAAU,GAAG,MAAM;iBACtB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,WAAW,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;iBACxE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChB,MAAM,IAAI,yBAAyB,UAAU,MAAM,CAAC;QACtD,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,IAAI,+EAA+E,eAAe,MAAM,CAAC;YAC/G,MAAM,IAAI,wGAAwG,CAAC;QACrH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,sGAAsG,CAAC;QACnH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,UAAkB;QACtC,MAAM,QAAQ,GAAc;YAC1B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gCAAgC,EAAE;YAC7D,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;SACtC,CAAC;QAEF,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YACzC,QAAQ;YACR,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;SACjD,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,50 @@
1
+ import type { LLMProvider } from '../llm/types.ts';
2
+ import type { MemoryServiceLike } from './types.ts';
3
+ import { type SceneBlock } from './scene.ts';
4
+ import type { Message } from '../types.ts';
5
+ /** 管道配置 */
6
+ export interface PipelineOptions {
7
+ llmProvider: LLMProvider;
8
+ /** 触发 L2 聚合的 L1 增量阈值(新 L1 条目数),默认 5 */
9
+ l2Threshold?: number;
10
+ /** 触发 L3 画像更新的 L2 增量阈值,默认 3 */
11
+ l3Threshold?: number;
12
+ }
13
+ /** 管道执行结果 */
14
+ export interface PipelineResult {
15
+ /** 本次提取的 L1 原子事实数 */
16
+ l1Extracted: number;
17
+ /** 是否触发了 L2 聚合 */
18
+ l2Triggered: boolean;
19
+ /** 是否触发了 L3 画像更新 */
20
+ l3Triggered: boolean;
21
+ /** 新的场景块(如果触发了 L2) */
22
+ newScenes?: SceneBlock[];
23
+ /** 更新的画像(如果触发了 L3) */
24
+ newPersona?: string;
25
+ }
26
+ /**
27
+ * 记忆管道调度器
28
+ *
29
+ * 调度策略:
30
+ * 1. 每次对话结束:提取 L1 原子事实
31
+ * 2. L1 累积达到阈值:触发 L2 场景聚合
32
+ * 3. L2 累积达到阈值:触发 L3 画像生成
33
+ *
34
+ * 所有操作均为 fire-and-forget,不阻塞对话响应
35
+ */
36
+ export declare class MemoryPipeline {
37
+ private llmProvider;
38
+ private l2Threshold;
39
+ private l3Threshold;
40
+ constructor(opts: PipelineOptions);
41
+ /**
42
+ * 执行完整管道(L1 提取 → 条件触发 L2 → 条件触发 L3)
43
+ *
44
+ * @param messages 对话消息
45
+ * @param sessionId 会话 ID
46
+ * @param memoryService MemoryService 实例(延迟导入避免循环依赖)
47
+ */
48
+ run(messages: Message[], sessionId: string, memoryService: MemoryServiceLike): Promise<PipelineResult>;
49
+ }
50
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/memory/pipeline.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAA4B,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE9E,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,WAAW;AACX,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,sBAAsB;IACtB,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;IACzB,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;gBAEhB,IAAI,EAAE,eAAe;IAMjC;;;;;;OAMG;IACG,GAAG,CACP,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,iBAAiB,GAC/B,OAAO,CAAC,cAAc,CAAC;CAwH3B"}