@cicctencent/agent-core 0.1.1 → 0.1.4

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 (441) hide show
  1. package/README.md +14 -927
  2. package/dist/cjs/agent/engine.d.ts.map +1 -0
  3. package/dist/cjs/agent/engine.js +766 -0
  4. package/dist/cjs/agent/engine.js.map +1 -0
  5. package/dist/cjs/agent/history-manager.d.ts.map +1 -0
  6. package/dist/cjs/agent/history-manager.js +271 -0
  7. package/dist/cjs/agent/history-manager.js.map +1 -0
  8. package/dist/cjs/agent/llm-caller.d.ts.map +1 -0
  9. package/dist/cjs/agent/llm-caller.js +307 -0
  10. package/dist/cjs/agent/llm-caller.js.map +1 -0
  11. package/dist/cjs/agent/tool-executor.d.ts.map +1 -0
  12. package/dist/cjs/agent/tool-executor.js +568 -0
  13. package/dist/cjs/agent/tool-executor.js.map +1 -0
  14. package/dist/cjs/agent/types.d.ts.map +1 -0
  15. package/dist/cjs/agent/types.js +6 -0
  16. package/dist/cjs/agent/types.js.map +1 -0
  17. package/dist/cjs/agent/workflow.d.ts.map +1 -0
  18. package/dist/cjs/agent/workflow.js +262 -0
  19. package/dist/cjs/agent/workflow.js.map +1 -0
  20. package/dist/cjs/context/collector.d.ts.map +1 -0
  21. package/dist/cjs/context/collector.js +94 -0
  22. package/dist/cjs/context/collector.js.map +1 -0
  23. package/dist/cjs/context/manager.d.ts.map +1 -0
  24. package/dist/cjs/context/manager.js +36 -0
  25. package/dist/cjs/context/manager.js.map +1 -0
  26. package/dist/cjs/context/types.d.ts.map +1 -0
  27. package/dist/cjs/context/types.js +6 -0
  28. package/dist/cjs/context/types.js.map +1 -0
  29. package/dist/cjs/hooks/types.d.ts.map +1 -0
  30. package/dist/cjs/hooks/types.js +6 -0
  31. package/dist/cjs/hooks/types.js.map +1 -0
  32. package/dist/{index.d.ts → cjs/index.d.ts} +1 -0
  33. package/dist/cjs/index.d.ts.map +1 -0
  34. package/dist/cjs/index.js +98 -0
  35. package/dist/cjs/index.js.map +1 -0
  36. package/dist/cjs/llm/anthropic-provider.d.ts.map +1 -0
  37. package/dist/cjs/llm/anthropic-provider.js +356 -0
  38. package/dist/cjs/llm/anthropic-provider.js.map +1 -0
  39. package/dist/cjs/llm/factory.d.ts.map +1 -0
  40. package/dist/cjs/llm/factory.js +34 -0
  41. package/dist/cjs/llm/factory.js.map +1 -0
  42. package/dist/cjs/llm/ollama-provider.d.ts.map +1 -0
  43. package/dist/cjs/llm/ollama-provider.js +34 -0
  44. package/dist/cjs/llm/ollama-provider.js.map +1 -0
  45. package/dist/cjs/llm/openai-provider.d.ts.map +1 -0
  46. package/dist/cjs/llm/openai-provider.js +186 -0
  47. package/dist/cjs/llm/openai-provider.js.map +1 -0
  48. package/dist/cjs/llm/provider.d.ts.map +1 -0
  49. package/dist/cjs/llm/provider.js +18 -0
  50. package/dist/cjs/llm/provider.js.map +1 -0
  51. package/dist/cjs/llm/types.d.ts.map +1 -0
  52. package/dist/cjs/llm/types.js +6 -0
  53. package/dist/cjs/llm/types.js.map +1 -0
  54. package/dist/cjs/mcp/base-client.d.ts.map +1 -0
  55. package/dist/cjs/mcp/base-client.js +112 -0
  56. package/dist/cjs/mcp/base-client.js.map +1 -0
  57. package/dist/cjs/mcp/client.d.ts.map +1 -0
  58. package/dist/cjs/mcp/client.js +76 -0
  59. package/dist/cjs/mcp/client.js.map +1 -0
  60. package/dist/cjs/mcp/factory.d.ts.map +1 -0
  61. package/dist/cjs/mcp/factory.js +43 -0
  62. package/dist/cjs/mcp/factory.js.map +1 -0
  63. package/dist/cjs/mcp/http-client.d.ts.map +1 -0
  64. package/dist/cjs/mcp/http-client.js +142 -0
  65. package/dist/cjs/mcp/http-client.js.map +1 -0
  66. package/dist/cjs/mcp/proxy-agent.d.ts.map +1 -0
  67. package/dist/cjs/mcp/proxy-agent.js +195 -0
  68. package/dist/cjs/mcp/proxy-agent.js.map +1 -0
  69. package/dist/cjs/mcp/stdio-client.d.ts.map +1 -0
  70. package/dist/cjs/mcp/stdio-client.js +95 -0
  71. package/dist/cjs/mcp/stdio-client.js.map +1 -0
  72. package/dist/cjs/mcp/types.d.ts.map +1 -0
  73. package/dist/cjs/mcp/types.js +6 -0
  74. package/dist/cjs/mcp/types.js.map +1 -0
  75. package/dist/cjs/memory/checkpoint.d.ts.map +1 -0
  76. package/dist/cjs/memory/checkpoint.js +160 -0
  77. package/dist/cjs/memory/checkpoint.js.map +1 -0
  78. package/dist/cjs/memory/extractor.d.ts.map +1 -0
  79. package/dist/cjs/memory/extractor.js +121 -0
  80. package/dist/cjs/memory/extractor.js.map +1 -0
  81. package/dist/cjs/memory/persona.d.ts.map +1 -0
  82. package/dist/cjs/memory/persona.js +79 -0
  83. package/dist/cjs/memory/persona.js.map +1 -0
  84. package/dist/cjs/memory/pipeline.d.ts.map +1 -0
  85. package/dist/cjs/memory/pipeline.js +148 -0
  86. package/dist/cjs/memory/pipeline.js.map +1 -0
  87. package/dist/cjs/memory/prompts.d.ts.map +1 -0
  88. package/dist/cjs/memory/prompts.js +70 -0
  89. package/dist/cjs/memory/prompts.js.map +1 -0
  90. package/dist/cjs/memory/recall.d.ts.map +1 -0
  91. package/dist/cjs/memory/recall.js +164 -0
  92. package/dist/cjs/memory/recall.js.map +1 -0
  93. package/dist/cjs/memory/scene.d.ts.map +1 -0
  94. package/dist/cjs/memory/scene.js +101 -0
  95. package/dist/cjs/memory/scene.js.map +1 -0
  96. package/dist/cjs/memory/types.d.ts.map +1 -0
  97. package/dist/cjs/memory/types.js +6 -0
  98. package/dist/cjs/memory/types.js.map +1 -0
  99. package/dist/cjs/middleware/types.d.ts.map +1 -0
  100. package/dist/cjs/middleware/types.js +6 -0
  101. package/dist/cjs/middleware/types.js.map +1 -0
  102. package/dist/cjs/package.json +3 -0
  103. package/dist/cjs/sandbox/types.d.ts.map +1 -0
  104. package/dist/cjs/sandbox/types.js +128 -0
  105. package/dist/cjs/sandbox/types.js.map +1 -0
  106. package/dist/{security → cjs/security}/guard.d.ts +1 -6
  107. package/dist/cjs/security/guard.d.ts.map +1 -0
  108. package/dist/cjs/security/guard.js +291 -0
  109. package/dist/cjs/security/guard.js.map +1 -0
  110. package/dist/{security → cjs/security}/types.d.ts +6 -2
  111. package/dist/cjs/security/types.d.ts.map +1 -0
  112. package/dist/cjs/security/types.js +6 -0
  113. package/dist/cjs/security/types.js.map +1 -0
  114. package/dist/cjs/skill/manager.d.ts.map +1 -0
  115. package/dist/cjs/skill/manager.js +413 -0
  116. package/dist/cjs/skill/manager.js.map +1 -0
  117. package/dist/cjs/skill/router.d.ts.map +1 -0
  118. package/dist/cjs/skill/router.js +139 -0
  119. package/dist/cjs/skill/router.js.map +1 -0
  120. package/dist/cjs/skill/types.d.ts.map +1 -0
  121. package/dist/cjs/skill/types.js +6 -0
  122. package/dist/cjs/skill/types.js.map +1 -0
  123. package/dist/cjs/tool/delegate.d.ts.map +1 -0
  124. package/dist/cjs/tool/delegate.js +78 -0
  125. package/dist/cjs/tool/delegate.js.map +1 -0
  126. package/dist/cjs/tool/registry.d.ts +49 -0
  127. package/dist/cjs/tool/registry.d.ts.map +1 -0
  128. package/dist/cjs/tool/registry.js +87 -0
  129. package/dist/cjs/tool/registry.js.map +1 -0
  130. package/dist/cjs/tool/types.d.ts.map +1 -0
  131. package/dist/cjs/tool/types.js +6 -0
  132. package/dist/cjs/tool/types.js.map +1 -0
  133. package/dist/cjs/types.d.ts.map +1 -0
  134. package/dist/cjs/types.js +6 -0
  135. package/dist/cjs/types.js.map +1 -0
  136. package/dist/cjs/utils/token-counter.d.ts.map +1 -0
  137. package/dist/cjs/utils/token-counter.js +104 -0
  138. package/dist/cjs/utils/token-counter.js.map +1 -0
  139. package/dist/esm/agent/engine.d.ts +113 -0
  140. package/dist/esm/agent/engine.d.ts.map +1 -0
  141. package/dist/esm/agent/engine.js +762 -0
  142. package/dist/esm/agent/engine.js.map +1 -0
  143. package/dist/esm/agent/history-manager.d.ts +78 -0
  144. package/dist/esm/agent/history-manager.d.ts.map +1 -0
  145. package/dist/esm/agent/history-manager.js +267 -0
  146. package/dist/esm/agent/history-manager.js.map +1 -0
  147. package/dist/esm/agent/llm-caller.d.ts +58 -0
  148. package/dist/esm/agent/llm-caller.d.ts.map +1 -0
  149. package/dist/esm/agent/llm-caller.js +303 -0
  150. package/dist/esm/agent/llm-caller.js.map +1 -0
  151. package/dist/esm/agent/tool-executor.d.ts +95 -0
  152. package/dist/esm/agent/tool-executor.d.ts.map +1 -0
  153. package/dist/esm/agent/tool-executor.js +564 -0
  154. package/dist/esm/agent/tool-executor.js.map +1 -0
  155. package/dist/esm/agent/types.d.ts +128 -0
  156. package/dist/esm/agent/types.d.ts.map +1 -0
  157. package/dist/esm/agent/types.js +5 -0
  158. package/dist/esm/agent/types.js.map +1 -0
  159. package/dist/esm/agent/workflow.d.ts +74 -0
  160. package/dist/esm/agent/workflow.d.ts.map +1 -0
  161. package/dist/esm/agent/workflow.js +248 -0
  162. package/dist/esm/agent/workflow.js.map +1 -0
  163. package/dist/esm/context/collector.d.ts +12 -0
  164. package/dist/esm/context/collector.d.ts.map +1 -0
  165. package/dist/esm/context/collector.js +57 -0
  166. package/dist/esm/context/collector.js.map +1 -0
  167. package/dist/esm/context/manager.d.ts +16 -0
  168. package/dist/esm/context/manager.d.ts.map +1 -0
  169. package/dist/esm/context/manager.js +32 -0
  170. package/dist/esm/context/manager.js.map +1 -0
  171. package/dist/esm/context/types.d.ts +39 -0
  172. package/dist/esm/context/types.d.ts.map +1 -0
  173. package/dist/esm/context/types.js +5 -0
  174. package/dist/esm/context/types.js.map +1 -0
  175. package/dist/esm/hooks/types.d.ts +47 -0
  176. package/dist/esm/hooks/types.d.ts.map +1 -0
  177. package/dist/esm/hooks/types.js +5 -0
  178. package/dist/esm/hooks/types.js.map +1 -0
  179. package/{src/index.ts → dist/esm/index.d.ts} +16 -140
  180. package/dist/esm/index.d.ts.map +1 -0
  181. package/dist/esm/index.js +39 -0
  182. package/dist/esm/index.js.map +1 -0
  183. package/dist/esm/llm/anthropic-provider.d.ts +28 -0
  184. package/dist/esm/llm/anthropic-provider.d.ts.map +1 -0
  185. package/dist/esm/llm/anthropic-provider.js +352 -0
  186. package/dist/esm/llm/anthropic-provider.js.map +1 -0
  187. package/{src/llm/factory.ts → dist/esm/llm/factory.d.ts} +3 -18
  188. package/dist/esm/llm/factory.d.ts.map +1 -0
  189. package/dist/esm/llm/factory.js +30 -0
  190. package/dist/esm/llm/factory.js.map +1 -0
  191. package/dist/esm/llm/ollama-provider.d.ts +13 -0
  192. package/dist/esm/llm/ollama-provider.d.ts.map +1 -0
  193. package/dist/esm/llm/ollama-provider.js +30 -0
  194. package/dist/esm/llm/ollama-provider.js.map +1 -0
  195. package/dist/esm/llm/openai-provider.d.ts +18 -0
  196. package/dist/esm/llm/openai-provider.d.ts.map +1 -0
  197. package/dist/esm/llm/openai-provider.js +182 -0
  198. package/dist/esm/llm/openai-provider.js.map +1 -0
  199. package/{src/llm/provider.ts → dist/esm/llm/provider.d.ts} +1 -9
  200. package/dist/esm/llm/provider.d.ts.map +1 -0
  201. package/dist/esm/llm/provider.js +10 -0
  202. package/dist/esm/llm/provider.js.map +1 -0
  203. package/dist/esm/llm/types.d.ts +78 -0
  204. package/dist/esm/llm/types.d.ts.map +1 -0
  205. package/dist/esm/llm/types.js +5 -0
  206. package/dist/esm/llm/types.js.map +1 -0
  207. package/dist/esm/mcp/base-client.d.ts +50 -0
  208. package/dist/esm/mcp/base-client.d.ts.map +1 -0
  209. package/dist/esm/mcp/base-client.js +108 -0
  210. package/dist/esm/mcp/base-client.js.map +1 -0
  211. package/dist/esm/mcp/client.d.ts +27 -0
  212. package/dist/esm/mcp/client.d.ts.map +1 -0
  213. package/dist/esm/mcp/client.js +70 -0
  214. package/dist/esm/mcp/client.js.map +1 -0
  215. package/dist/esm/mcp/factory.d.ts +16 -0
  216. package/dist/esm/mcp/factory.d.ts.map +1 -0
  217. package/dist/esm/mcp/factory.js +39 -0
  218. package/dist/esm/mcp/factory.js.map +1 -0
  219. package/dist/esm/mcp/http-client.d.ts +24 -0
  220. package/dist/esm/mcp/http-client.d.ts.map +1 -0
  221. package/dist/esm/mcp/http-client.js +138 -0
  222. package/dist/esm/mcp/http-client.js.map +1 -0
  223. package/dist/esm/mcp/proxy-agent.d.ts +49 -0
  224. package/dist/esm/mcp/proxy-agent.d.ts.map +1 -0
  225. package/dist/esm/mcp/proxy-agent.js +187 -0
  226. package/dist/esm/mcp/proxy-agent.js.map +1 -0
  227. package/dist/esm/mcp/stdio-client.d.ts +16 -0
  228. package/dist/esm/mcp/stdio-client.d.ts.map +1 -0
  229. package/dist/esm/mcp/stdio-client.js +91 -0
  230. package/dist/esm/mcp/stdio-client.js.map +1 -0
  231. package/dist/esm/mcp/types.d.ts +60 -0
  232. package/dist/esm/mcp/types.d.ts.map +1 -0
  233. package/dist/esm/mcp/types.js +5 -0
  234. package/dist/esm/mcp/types.js.map +1 -0
  235. package/dist/esm/memory/checkpoint.d.ts +62 -0
  236. package/dist/esm/memory/checkpoint.d.ts.map +1 -0
  237. package/dist/esm/memory/checkpoint.js +121 -0
  238. package/dist/esm/memory/checkpoint.js.map +1 -0
  239. package/dist/esm/memory/extractor.d.ts +59 -0
  240. package/dist/esm/memory/extractor.d.ts.map +1 -0
  241. package/dist/esm/memory/extractor.js +117 -0
  242. package/dist/esm/memory/extractor.js.map +1 -0
  243. package/dist/esm/memory/persona.d.ts +38 -0
  244. package/dist/esm/memory/persona.d.ts.map +1 -0
  245. package/dist/esm/memory/persona.js +75 -0
  246. package/dist/esm/memory/persona.js.map +1 -0
  247. package/dist/esm/memory/pipeline.d.ts +50 -0
  248. package/dist/esm/memory/pipeline.d.ts.map +1 -0
  249. package/dist/esm/memory/pipeline.js +144 -0
  250. package/dist/esm/memory/pipeline.js.map +1 -0
  251. package/dist/esm/memory/prompts.d.ts +9 -0
  252. package/dist/esm/memory/prompts.d.ts.map +1 -0
  253. package/{src/memory/prompts.ts → dist/esm/memory/prompts.js} +6 -13
  254. package/dist/esm/memory/prompts.js.map +1 -0
  255. package/dist/esm/memory/recall.d.ts +66 -0
  256. package/dist/esm/memory/recall.d.ts.map +1 -0
  257. package/dist/esm/memory/recall.js +159 -0
  258. package/dist/esm/memory/recall.js.map +1 -0
  259. package/dist/esm/memory/scene.d.ts +49 -0
  260. package/dist/esm/memory/scene.d.ts.map +1 -0
  261. package/dist/esm/memory/scene.js +97 -0
  262. package/dist/esm/memory/scene.js.map +1 -0
  263. package/dist/esm/memory/types.d.ts +43 -0
  264. package/dist/esm/memory/types.d.ts.map +1 -0
  265. package/dist/esm/memory/types.js +5 -0
  266. package/dist/esm/memory/types.js.map +1 -0
  267. package/dist/esm/middleware/types.d.ts +52 -0
  268. package/dist/esm/middleware/types.d.ts.map +1 -0
  269. package/dist/esm/middleware/types.js +5 -0
  270. package/dist/esm/middleware/types.js.map +1 -0
  271. package/dist/esm/package.json +3 -0
  272. package/dist/esm/sandbox/types.d.ts +59 -0
  273. package/dist/esm/sandbox/types.d.ts.map +1 -0
  274. package/dist/esm/sandbox/types.js +125 -0
  275. package/dist/esm/sandbox/types.js.map +1 -0
  276. package/dist/esm/security/guard.d.ts +36 -0
  277. package/dist/esm/security/guard.d.ts.map +1 -0
  278. package/dist/esm/security/guard.js +287 -0
  279. package/dist/esm/security/guard.js.map +1 -0
  280. package/dist/esm/security/types.d.ts +40 -0
  281. package/dist/esm/security/types.d.ts.map +1 -0
  282. package/dist/esm/security/types.js +5 -0
  283. package/dist/esm/security/types.js.map +1 -0
  284. package/dist/esm/skill/manager.d.ts +95 -0
  285. package/dist/esm/skill/manager.d.ts.map +1 -0
  286. package/dist/esm/skill/manager.js +376 -0
  287. package/dist/esm/skill/manager.js.map +1 -0
  288. package/dist/esm/skill/router.d.ts +26 -0
  289. package/dist/esm/skill/router.d.ts.map +1 -0
  290. package/dist/esm/skill/router.js +135 -0
  291. package/dist/esm/skill/router.js.map +1 -0
  292. package/dist/esm/skill/types.d.ts +55 -0
  293. package/dist/esm/skill/types.d.ts.map +1 -0
  294. package/dist/esm/skill/types.js +5 -0
  295. package/dist/esm/skill/types.js.map +1 -0
  296. package/dist/esm/tool/delegate.d.ts +34 -0
  297. package/dist/esm/tool/delegate.d.ts.map +1 -0
  298. package/dist/esm/tool/delegate.js +75 -0
  299. package/dist/esm/tool/delegate.js.map +1 -0
  300. package/dist/esm/tool/registry.d.ts +49 -0
  301. package/dist/esm/tool/registry.d.ts.map +1 -0
  302. package/dist/esm/tool/registry.js +83 -0
  303. package/dist/esm/tool/registry.js.map +1 -0
  304. package/dist/esm/tool/types.d.ts +101 -0
  305. package/dist/esm/tool/types.d.ts.map +1 -0
  306. package/dist/esm/tool/types.js +5 -0
  307. package/dist/esm/tool/types.js.map +1 -0
  308. package/dist/esm/types.d.ts +150 -0
  309. package/dist/esm/types.d.ts.map +1 -0
  310. package/dist/esm/types.js +5 -0
  311. package/dist/esm/types.js.map +1 -0
  312. package/dist/esm/utils/token-counter.d.ts +22 -0
  313. package/dist/esm/utils/token-counter.d.ts.map +1 -0
  314. package/dist/esm/utils/token-counter.js +99 -0
  315. package/dist/esm/utils/token-counter.js.map +1 -0
  316. package/package.json +16 -10
  317. package/dist/agent/engine.d.ts.map +0 -1
  318. package/dist/agent/history-manager.d.ts.map +0 -1
  319. package/dist/agent/llm-caller.d.ts.map +0 -1
  320. package/dist/agent/tool-executor.d.ts.map +0 -1
  321. package/dist/agent/types.d.ts.map +0 -1
  322. package/dist/agent/workflow.d.ts.map +0 -1
  323. package/dist/context/collector.d.ts.map +0 -1
  324. package/dist/context/manager.d.ts.map +0 -1
  325. package/dist/context/types.d.ts.map +0 -1
  326. package/dist/hooks/types.d.ts.map +0 -1
  327. package/dist/index.d.ts.map +0 -1
  328. package/dist/llm/anthropic-provider.d.ts.map +0 -1
  329. package/dist/llm/factory.d.ts.map +0 -1
  330. package/dist/llm/ollama-provider.d.ts.map +0 -1
  331. package/dist/llm/openai-provider.d.ts.map +0 -1
  332. package/dist/llm/provider.d.ts.map +0 -1
  333. package/dist/llm/types.d.ts.map +0 -1
  334. package/dist/mcp/base-client.d.ts.map +0 -1
  335. package/dist/mcp/client.d.ts.map +0 -1
  336. package/dist/mcp/factory.d.ts.map +0 -1
  337. package/dist/mcp/http-client.d.ts.map +0 -1
  338. package/dist/mcp/proxy-agent.d.ts.map +0 -1
  339. package/dist/mcp/stdio-client.d.ts.map +0 -1
  340. package/dist/mcp/types.d.ts.map +0 -1
  341. package/dist/memory/checkpoint.d.ts.map +0 -1
  342. package/dist/memory/extractor.d.ts.map +0 -1
  343. package/dist/memory/persona.d.ts.map +0 -1
  344. package/dist/memory/pipeline.d.ts.map +0 -1
  345. package/dist/memory/prompts.d.ts.map +0 -1
  346. package/dist/memory/recall.d.ts.map +0 -1
  347. package/dist/memory/scene.d.ts.map +0 -1
  348. package/dist/memory/types.d.ts.map +0 -1
  349. package/dist/middleware/types.d.ts.map +0 -1
  350. package/dist/sandbox/types.d.ts.map +0 -1
  351. package/dist/security/guard.d.ts.map +0 -1
  352. package/dist/security/types.d.ts.map +0 -1
  353. package/dist/skill/manager.d.ts.map +0 -1
  354. package/dist/skill/router.d.ts.map +0 -1
  355. package/dist/skill/types.d.ts.map +0 -1
  356. package/dist/tool/delegate.d.ts.map +0 -1
  357. package/dist/tool/registry.d.ts +0 -24
  358. package/dist/tool/registry.d.ts.map +0 -1
  359. package/dist/tool/types.d.ts.map +0 -1
  360. package/dist/types.d.ts.map +0 -1
  361. package/dist/utils/token-counter.d.ts.map +0 -1
  362. package/src/agent/engine.ts +0 -875
  363. package/src/agent/history-manager.ts +0 -323
  364. package/src/agent/llm-caller.ts +0 -383
  365. package/src/agent/tool-executor.ts +0 -713
  366. package/src/agent/types.ts +0 -136
  367. package/src/agent/workflow.ts +0 -339
  368. package/src/context/collector.ts +0 -59
  369. package/src/context/manager.ts +0 -40
  370. package/src/context/types.ts +0 -51
  371. package/src/hooks/types.ts +0 -77
  372. package/src/llm/anthropic-provider.ts +0 -412
  373. package/src/llm/ollama-provider.ts +0 -39
  374. package/src/llm/openai-provider.ts +0 -200
  375. package/src/llm/types.ts +0 -91
  376. package/src/mcp/base-client.ts +0 -159
  377. package/src/mcp/client.ts +0 -81
  378. package/src/mcp/factory.ts +0 -45
  379. package/src/mcp/http-client.ts +0 -149
  380. package/src/mcp/proxy-agent.ts +0 -227
  381. package/src/mcp/stdio-client.ts +0 -104
  382. package/src/mcp/types.ts +0 -65
  383. package/src/memory/checkpoint.ts +0 -146
  384. package/src/memory/extractor.ts +0 -164
  385. package/src/memory/persona.ts +0 -106
  386. package/src/memory/pipeline.ts +0 -192
  387. package/src/memory/recall.ts +0 -217
  388. package/src/memory/scene.ts +0 -137
  389. package/src/memory/types.ts +0 -54
  390. package/src/middleware/types.ts +0 -62
  391. package/src/sandbox/types.ts +0 -185
  392. package/src/security/guard.ts +0 -249
  393. package/src/security/types.ts +0 -46
  394. package/src/skill/manager.ts +0 -420
  395. package/src/skill/router.ts +0 -158
  396. package/src/skill/types.ts +0 -67
  397. package/src/tool/delegate.ts +0 -105
  398. package/src/tool/registry.ts +0 -64
  399. package/src/tool/types.ts +0 -124
  400. package/src/types.ts +0 -188
  401. package/src/utils/token-counter.ts +0 -108
  402. /package/dist/{agent → cjs/agent}/engine.d.ts +0 -0
  403. /package/dist/{agent → cjs/agent}/history-manager.d.ts +0 -0
  404. /package/dist/{agent → cjs/agent}/llm-caller.d.ts +0 -0
  405. /package/dist/{agent → cjs/agent}/tool-executor.d.ts +0 -0
  406. /package/dist/{agent → cjs/agent}/types.d.ts +0 -0
  407. /package/dist/{agent → cjs/agent}/workflow.d.ts +0 -0
  408. /package/dist/{context → cjs/context}/collector.d.ts +0 -0
  409. /package/dist/{context → cjs/context}/manager.d.ts +0 -0
  410. /package/dist/{context → cjs/context}/types.d.ts +0 -0
  411. /package/dist/{hooks → cjs/hooks}/types.d.ts +0 -0
  412. /package/dist/{llm → cjs/llm}/anthropic-provider.d.ts +0 -0
  413. /package/dist/{llm → cjs/llm}/factory.d.ts +0 -0
  414. /package/dist/{llm → cjs/llm}/ollama-provider.d.ts +0 -0
  415. /package/dist/{llm → cjs/llm}/openai-provider.d.ts +0 -0
  416. /package/dist/{llm → cjs/llm}/provider.d.ts +0 -0
  417. /package/dist/{llm → cjs/llm}/types.d.ts +0 -0
  418. /package/dist/{mcp → cjs/mcp}/base-client.d.ts +0 -0
  419. /package/dist/{mcp → cjs/mcp}/client.d.ts +0 -0
  420. /package/dist/{mcp → cjs/mcp}/factory.d.ts +0 -0
  421. /package/dist/{mcp → cjs/mcp}/http-client.d.ts +0 -0
  422. /package/dist/{mcp → cjs/mcp}/proxy-agent.d.ts +0 -0
  423. /package/dist/{mcp → cjs/mcp}/stdio-client.d.ts +0 -0
  424. /package/dist/{mcp → cjs/mcp}/types.d.ts +0 -0
  425. /package/dist/{memory → cjs/memory}/checkpoint.d.ts +0 -0
  426. /package/dist/{memory → cjs/memory}/extractor.d.ts +0 -0
  427. /package/dist/{memory → cjs/memory}/persona.d.ts +0 -0
  428. /package/dist/{memory → cjs/memory}/pipeline.d.ts +0 -0
  429. /package/dist/{memory → cjs/memory}/prompts.d.ts +0 -0
  430. /package/dist/{memory → cjs/memory}/recall.d.ts +0 -0
  431. /package/dist/{memory → cjs/memory}/scene.d.ts +0 -0
  432. /package/dist/{memory → cjs/memory}/types.d.ts +0 -0
  433. /package/dist/{middleware → cjs/middleware}/types.d.ts +0 -0
  434. /package/dist/{sandbox → cjs/sandbox}/types.d.ts +0 -0
  435. /package/dist/{skill → cjs/skill}/manager.d.ts +0 -0
  436. /package/dist/{skill → cjs/skill}/router.d.ts +0 -0
  437. /package/dist/{skill → cjs/skill}/types.d.ts +0 -0
  438. /package/dist/{tool → cjs/tool}/delegate.d.ts +0 -0
  439. /package/dist/{tool → cjs/tool}/types.d.ts +0 -0
  440. /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  441. /package/dist/{utils → cjs/utils}/token-counter.d.ts +0 -0
@@ -1,77 +0,0 @@
1
- // ============================================================
2
- // Hooks — 生命周期钩子类型定义
3
- // ============================================================
4
-
5
- import type { Message, TokenUsage } from '../types.ts';
6
- import type { ToolDefinition } from '../tool/types.ts';
7
-
8
- // ---- Hook 事件类型(7 个)----
9
-
10
- export type HookEvent =
11
- | 'before_tool' // 工具执行前(可阻止/修改参数)
12
- | 'after_tool' // 工具执行后(可注入信息到结果)
13
- | 'before_ll_call' // LLM 调用前(可审查 messages/tools)
14
- | 'after_ll_call' // LLM 调用后(可审查响应)
15
- | 'on_iteration_start' // 每轮迭代开始(可注入上下文信息)
16
- | 'on_error' // 任何错误发生时
17
- | 'on_complete'; // Agent Loop 完成时
18
-
19
- // ---- Hook 上下文 ----
20
-
21
- /**
22
- * Hook 处理器接收的上下文信息
23
- * 不同事件携带不同的字段组合
24
- */
25
- export interface HookContext {
26
- sessionId: string;
27
- iteration: number;
28
- traceId?: string;
29
-
30
- // before_tool / after_tool
31
- tool?: string;
32
- args?: Record<string, unknown>;
33
- result?: string;
34
- isError?: boolean;
35
- duration?: number;
36
-
37
- // before_ll_call / after_ll_call
38
- messages?: Message[];
39
- tools?: ToolDefinition[];
40
- response?: Message;
41
-
42
- // on_error
43
- error?: string;
44
- recoverable?: boolean;
45
-
46
- // on_complete
47
- totalIterations?: number;
48
- usage?: TokenUsage;
49
- }
50
-
51
- // ---- Hook 返回值 ----
52
-
53
- /**
54
- * Hook 处理器的返回值
55
- * 仅 before_tool 和 after_tool 的返回值有实际效果
56
- */
57
- export interface HookResult {
58
- /** before_tool: 阻止工具执行 */
59
- block?: boolean;
60
- /** block 时的原因(返回给 LLM) */
61
- reason?: string;
62
- /** before_tool: 修改工具参数(与原始 args 合并) */
63
- modify?: Record<string, unknown>;
64
- /** after_tool: 追加到工具结果末尾 */
65
- inject?: string;
66
- }
67
-
68
- // ---- Hook 定义 ----
69
-
70
- export interface Hook {
71
- /** Hook 名称(用于日志和调试) */
72
- name: string;
73
- /** 监听的事件类型 */
74
- event: HookEvent;
75
- /** 处理器函数 */
76
- handler: (ctx: HookContext) => Promise<HookResult | void>;
77
- }
@@ -1,412 +0,0 @@
1
- /**
2
- * @file Anthropic Claude LLM Provider
3
- * @description 实现 Anthropic Messages API,支持 Claude 系列模型,
4
- * 内部自动完成 OpenAI 格式 ↔ Anthropic 格式的双向转换
5
- */
6
-
7
- import type { LLMProvider, ModelConfig, ModelInfo, ChatParams, ChatResponse, ChatChunk } from './types.ts';
8
- import type { Message, ToolCall } from '../types.ts';
9
-
10
- // ---- Anthropic API 内部类型 ----
11
-
12
- interface AnthropicContentBlock {
13
- type: 'text' | 'tool_use' | 'tool_result';
14
- text?: string;
15
- id?: string;
16
- name?: string;
17
- input?: Record<string, unknown>;
18
- tool_use_id?: string;
19
- content?: string;
20
- }
21
-
22
- interface AnthropicMessage {
23
- role: 'user' | 'assistant';
24
- content: string | AnthropicContentBlock[];
25
- }
26
-
27
- interface AnthropicTool {
28
- name: string;
29
- description?: string;
30
- input_schema: Record<string, unknown>;
31
- }
32
-
33
- // ---- 上下文窗口映射 ----
34
-
35
- const CONTEXT_WINDOWS: Record<string, number> = {
36
- 'claude-sonnet-4': 200000,
37
- 'claude-opus-4': 200000,
38
- 'claude-3-5-sonnet': 200000,
39
- 'claude-3-5-haiku': 200000,
40
- 'claude-3-opus': 200000,
41
- 'claude-3-sonnet': 200000,
42
- 'claude-3-haiku': 200000,
43
- };
44
-
45
- function getContextWindow(model: string): number {
46
- for (const [prefix, ctx] of Object.entries(CONTEXT_WINDOWS)) {
47
- if (model.startsWith(prefix)) return ctx;
48
- }
49
- return 200000; // 默认 200k
50
- }
51
-
52
- // ---- Provider 实现 ----
53
-
54
- export class AnthropicProvider implements LLMProvider {
55
- private config: Required<Pick<ModelConfig, 'provider' | 'model'>> & ModelConfig;
56
-
57
- constructor(config: ModelConfig) {
58
- this.config = {
59
- ...config,
60
- provider: 'anthropic',
61
- model: config.model || 'claude-sonnet-4-20250514',
62
- baseUrl: config.baseUrl || 'https://api.anthropic.com',
63
- temperature: config.temperature ?? 0.7,
64
- maxTokens: (typeof config.maxTokens === 'number' && config.maxTokens > 0) ? config.maxTokens : 4096,
65
- timeout: config.timeout ?? 120000,
66
- };
67
- }
68
-
69
- getModel(): ModelInfo {
70
- return {
71
- provider: this.config.provider,
72
- model: this.config.model,
73
- contextWindow: getContextWindow(this.config.model),
74
- supportsTools: true,
75
- supportsStreaming: true,
76
- };
77
- }
78
-
79
- async ping(): Promise<boolean> {
80
- try {
81
- const res = await this.doRequest(
82
- {
83
- model: this.config.model,
84
- max_tokens: 5,
85
- messages: [{ role: 'user', content: 'ping' }],
86
- },
87
- );
88
- return res.ok;
89
- } catch {
90
- return false;
91
- }
92
- }
93
-
94
- async chat(params: ChatParams): Promise<ChatResponse> {
95
- const body = this.buildRequestBody(params);
96
- const res = await this.doRequest(body, params.abortSignal);
97
-
98
- if (!res.ok) {
99
- const errText = await res.text().catch(() => 'Unknown error');
100
- throw new Error(`Anthropic API error ${res.status}: ${errText}`);
101
- }
102
-
103
- const data = await res.json();
104
- return this.parseResponse(data);
105
- }
106
-
107
- async *chatStream(params: ChatParams): AsyncGenerator<ChatChunk> {
108
- const body = this.buildRequestBody(params);
109
- body.stream = true;
110
-
111
- const res = await this.doRequest(body, params.abortSignal);
112
-
113
- if (!res.ok) {
114
- const errText = await res.text().catch(() => 'Unknown error');
115
- throw new Error(`Anthropic API error ${res.status}: ${errText}`);
116
- }
117
-
118
- const reader = res.body?.getReader();
119
- if (!reader) throw new Error('No response body');
120
-
121
- const decoder = new TextDecoder();
122
- let buffer = '';
123
-
124
- // 流式状态
125
- let currentToolCallId = '';
126
- let currentToolCallName = '';
127
- let toolCallArgsBuffer = '';
128
- let toolCallIndex = 0; // 全局递增计数器,为每个 tool_use block 分配唯一 index
129
- let currentToolCallIndex = 0; // 当前正在处理的 tool_use block 的 index
130
- // Usage 跟踪
131
- let inputTokens = 0;
132
- let outputTokens = 0;
133
-
134
- try {
135
- while (true) {
136
- const { done, value } = await reader.read();
137
- if (done) break;
138
-
139
- buffer += decoder.decode(value, { stream: true });
140
- const lines = buffer.split('\n');
141
- buffer = lines.pop() || '';
142
-
143
- for (const line of lines) {
144
- const trimmed = line.trim();
145
- if (!trimmed || !trimmed.startsWith('data: ')) continue;
146
-
147
- try {
148
- const json = JSON.parse(trimmed.slice(6));
149
-
150
- switch (json.type) {
151
- case 'message_start': {
152
- // 提取 input tokens
153
- const usage = json.message?.usage;
154
- if (usage) {
155
- inputTokens = usage.input_tokens || 0;
156
- }
157
- break;
158
- }
159
-
160
- case 'content_block_start': {
161
- const block = json.content_block;
162
- if (block?.type === 'tool_use') {
163
- currentToolCallId = block.id || '';
164
- currentToolCallName = block.name || '';
165
- currentToolCallIndex = toolCallIndex++;
166
- toolCallArgsBuffer = '';
167
- }
168
- break;
169
- }
170
-
171
- case 'content_block_delta': {
172
- const delta = json.delta;
173
- if (delta?.type === 'text_delta') {
174
- yield {
175
- delta: { content: delta.text, role: 'assistant' },
176
- };
177
- } else if (delta?.type === 'input_json_delta') {
178
- toolCallArgsBuffer += delta.partial_json || '';
179
- }
180
- break;
181
- }
182
-
183
- case 'content_block_stop': {
184
- if (currentToolCallId) {
185
- // 工具调用完成,输出完整的 tool_call(必须携带 index,否则 LLMCaller 会将多个 tool_call 合并到 index=0)
186
- const toolCalls: (ToolCall & { index: number })[] = [{
187
- index: currentToolCallIndex,
188
- id: currentToolCallId,
189
- type: 'function',
190
- function: {
191
- name: currentToolCallName,
192
- arguments: toolCallArgsBuffer || '{}',
193
- },
194
- }];
195
- yield {
196
- delta: { role: 'assistant', tool_calls: toolCalls },
197
- finish_reason: 'tool_calls',
198
- };
199
- currentToolCallId = '';
200
- currentToolCallName = '';
201
- toolCallArgsBuffer = '';
202
- }
203
- break;
204
- }
205
-
206
- case 'message_delta': {
207
- const stopReason = json.delta?.stop_reason;
208
- // 提取 output tokens
209
- const usage = json.usage;
210
- if (usage) {
211
- outputTokens = usage.output_tokens || 0;
212
- }
213
- if (stopReason) {
214
- yield {
215
- delta: {},
216
- finish_reason: stopReason === 'tool_use' ? 'tool_calls' : stopReason,
217
- usage: {
218
- promptTokens: inputTokens,
219
- completionTokens: outputTokens,
220
- totalTokens: inputTokens + outputTokens,
221
- },
222
- };
223
- }
224
- break;
225
- }
226
- }
227
- } catch {
228
- // skip malformed chunks
229
- }
230
- }
231
- }
232
- } finally {
233
- reader.releaseLock();
234
- }
235
- }
236
-
237
- /** 更新配置 */
238
- updateConfig(updates: Partial<ModelConfig>): void {
239
- Object.assign(this.config, updates);
240
- }
241
-
242
- // ---- 内部方法 ----
243
-
244
- /**
245
- * 将 OpenAI 格式消息转换为 Anthropic 格式
246
- * - system 消息提取为单独的 system 字段
247
- * - tool 消息转换为 user 消息中的 tool_result 块
248
- * - assistant 的 tool_calls 转换为 tool_use 块
249
- */
250
- private convertMessages(messages: Message[]): {
251
- system?: string;
252
- messages: AnthropicMessage[];
253
- } {
254
- let system: string | undefined;
255
- const result: AnthropicMessage[] = [];
256
-
257
- for (const msg of messages) {
258
- switch (msg.role) {
259
- case 'system':
260
- system = (system ? system + '\n\n' : '') + (msg.content || '');
261
- break;
262
-
263
- case 'user':
264
- result.push({ role: 'user', content: msg.content || '' });
265
- break;
266
-
267
- case 'assistant': {
268
- if (msg.tool_calls?.length) {
269
- // assistant 带 tool_calls → text + tool_use blocks
270
- const blocks: AnthropicContentBlock[] = [];
271
- if (msg.content) {
272
- blocks.push({ type: 'text', text: msg.content });
273
- }
274
- for (const tc of msg.tool_calls) {
275
- let input: Record<string, unknown>;
276
- try {
277
- input = JSON.parse(tc.function.arguments || '{}');
278
- } catch {
279
- // tool_call 参数 JSON 截断或格式错误时降级为空对象,避免整次 LLM 调用失败
280
- console.warn(`[AnthropicProvider] Failed to parse tool_call arguments for '${tc.function.name}', using empty object. Raw: ${(tc.function.arguments || '').slice(0, 100)}`);
281
- input = { _raw_arguments: tc.function.arguments || '' };
282
- }
283
- blocks.push({
284
- type: 'tool_use',
285
- id: tc.id,
286
- name: tc.function.name,
287
- input,
288
- });
289
- }
290
- result.push({ role: 'assistant', content: blocks });
291
- } else {
292
- result.push({ role: 'assistant', content: msg.content || '' });
293
- }
294
- break;
295
- }
296
-
297
- case 'tool': {
298
- // tool 消息 → user 消息中的 tool_result 块
299
- result.push({
300
- role: 'user',
301
- content: [{
302
- type: 'tool_result',
303
- tool_use_id: msg.tool_call_id,
304
- content: msg.content || '',
305
- }],
306
- });
307
- break;
308
- }
309
- }
310
- }
311
-
312
- return { system, messages: result };
313
- }
314
-
315
- private convertTools(params: ChatParams): AnthropicTool[] | undefined {
316
- if (!params.tools?.length) return undefined;
317
- return params.tools.map(t => ({
318
- name: t.function.name,
319
- description: t.function.description,
320
- input_schema: t.function.parameters || { type: 'object', properties: {} },
321
- }));
322
- }
323
-
324
- private buildRequestBody(params: ChatParams): Record<string, any> {
325
- const { system, messages } = this.convertMessages(params.messages);
326
- const tools = this.convertTools(params);
327
-
328
- const body: Record<string, any> = {
329
- model: this.config.model,
330
- max_tokens: (typeof params.maxTokens === 'number' && params.maxTokens > 0)
331
- ? params.maxTokens
332
- : (typeof this.config.maxTokens === 'number' && this.config.maxTokens > 0)
333
- ? this.config.maxTokens
334
- : 4096,
335
- messages,
336
- temperature: params.temperature ?? this.config.temperature,
337
- };
338
-
339
- if (system) body.system = system;
340
- if (tools?.length) body.tools = tools;
341
-
342
- return body;
343
- }
344
-
345
- private parseResponse(data: any): ChatResponse {
346
- const content: string[] = [];
347
- const toolCalls: ToolCall[] = [];
348
-
349
- for (const block of data.content || []) {
350
- if (block.type === 'text') {
351
- content.push(block.text || '');
352
- } else if (block.type === 'tool_use') {
353
- toolCalls.push({
354
- id: block.id,
355
- type: 'function',
356
- function: {
357
- name: block.name,
358
- arguments: JSON.stringify(block.input || {}),
359
- },
360
- });
361
- }
362
- }
363
-
364
- const message: Message = {
365
- role: 'assistant',
366
- content: content.join('') || null,
367
- ...(toolCalls.length ? { tool_calls: toolCalls } : {}),
368
- };
369
-
370
- return {
371
- choices: [{
372
- message,
373
- finish_reason: data.stop_reason === 'tool_use' ? 'tool_calls' : (data.stop_reason || 'stop'),
374
- }],
375
- usage: data.usage
376
- ? {
377
- promptTokens: data.usage.input_tokens || 0,
378
- completionTokens: data.usage.output_tokens || 0,
379
- totalTokens: (data.usage.input_tokens || 0) + (data.usage.output_tokens || 0),
380
- }
381
- : undefined,
382
- };
383
- }
384
-
385
- private async doRequest(body: Record<string, any>, signal?: AbortSignal): Promise<Response> {
386
- const url = `${this.config.baseUrl!.replace(/\/$/, '')}/v1/messages`;
387
-
388
- const controller = new AbortController();
389
- const timeout = setTimeout(() => controller.abort(), this.config.timeout);
390
-
391
- if (signal) {
392
- if (signal.aborted) controller.abort();
393
- else signal.addEventListener('abort', () => controller.abort(), { once: true });
394
- }
395
-
396
- try {
397
- return await fetch(url, {
398
- method: 'POST',
399
- headers: {
400
- 'Content-Type': 'application/json',
401
- 'anthropic-version': '2023-06-01',
402
- ...(this.config.apiKey ? { 'x-api-key': this.config.apiKey } : {}),
403
- },
404
- body: JSON.stringify(body),
405
- signal: controller.signal,
406
- ...(this.config.proxy ? { dispatcher: this.config.proxy } : {}),
407
- } as RequestInit);
408
- } finally {
409
- clearTimeout(timeout);
410
- }
411
- }
412
- }
@@ -1,39 +0,0 @@
1
- /**
2
- * @file Ollama LLM Provider
3
- * @description 继承 OpenAIProvider,对接 Ollama 本地推理服务
4
- * Ollama 原生支持 OpenAI 兼容接口(/v1/chat/completions)
5
- * 默认地址 http://localhost:11434/v1
6
- */
7
-
8
- import type { ModelConfig, ModelInfo } from './types.ts';
9
- import { OpenAIProvider } from './openai-provider.ts';
10
-
11
- export class OllamaProvider extends OpenAIProvider {
12
-
13
- constructor(config: ModelConfig) {
14
- super({
15
- ...config,
16
- provider: 'ollama',
17
- baseUrl: config.baseUrl || 'http://localhost:11434/v1',
18
- model: config.model || 'llama3',
19
- // Ollama 本地服务不需要 API Key,但保留外部传入的能力
20
- apiKey: config.apiKey || '',
21
- });
22
- }
23
-
24
- getModel(): ModelInfo {
25
- return {
26
- provider: 'ollama',
27
- model: this.config.model,
28
- // Ollama 模型上下文窗口因模型而异,保守估计
29
- contextWindow: 8192,
30
- supportsTools: true,
31
- supportsStreaming: true,
32
- };
33
- }
34
-
35
- /**
36
- * Ollama 不需要 Authorization header,重写请求方法去掉它
37
- * 当 apiKey 为空时父类已经会跳过,所以这里只需复用父类逻辑
38
- */
39
- }