@aigne/core 1.73.0-beta → 1.74.0-beta

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 (827) hide show
  1. package/README.md +11 -11
  2. package/dist/_virtual/rolldown_runtime.cjs +29 -0
  3. package/dist/agents/agent.cjs +874 -0
  4. package/dist/agents/agent.d.cts +967 -0
  5. package/dist/agents/agent.d.cts.map +1 -0
  6. package/dist/agents/agent.d.mts +967 -0
  7. package/dist/agents/agent.d.mts.map +1 -0
  8. package/dist/agents/agent.mjs +863 -0
  9. package/dist/agents/agent.mjs.map +1 -0
  10. package/dist/agents/ai-agent.cjs +524 -0
  11. package/dist/agents/ai-agent.d.cts +401 -0
  12. package/dist/agents/ai-agent.d.cts.map +1 -0
  13. package/dist/agents/ai-agent.d.mts +401 -0
  14. package/dist/agents/ai-agent.d.mts.map +1 -0
  15. package/dist/agents/ai-agent.mjs +519 -0
  16. package/dist/agents/ai-agent.mjs.map +1 -0
  17. package/dist/agents/chat-model.cjs +397 -0
  18. package/dist/agents/chat-model.d.cts +674 -0
  19. package/dist/agents/chat-model.d.cts.map +1 -0
  20. package/dist/agents/chat-model.d.mts +674 -0
  21. package/dist/agents/chat-model.d.mts.map +1 -0
  22. package/dist/agents/chat-model.mjs +391 -0
  23. package/dist/agents/chat-model.mjs.map +1 -0
  24. package/dist/agents/guide-rail-agent.cjs +17 -0
  25. package/dist/agents/guide-rail-agent.d.cts +67 -0
  26. package/dist/agents/guide-rail-agent.d.cts.map +1 -0
  27. package/dist/agents/guide-rail-agent.d.mts +67 -0
  28. package/dist/agents/guide-rail-agent.d.mts.map +1 -0
  29. package/dist/agents/guide-rail-agent.mjs +17 -0
  30. package/dist/agents/guide-rail-agent.mjs.map +1 -0
  31. package/dist/agents/image-agent.cjs +74 -0
  32. package/dist/agents/image-agent.d.cts +44 -0
  33. package/dist/agents/image-agent.d.cts.map +1 -0
  34. package/dist/agents/image-agent.d.mts +44 -0
  35. package/dist/agents/image-agent.d.mts.map +1 -0
  36. package/dist/agents/image-agent.mjs +72 -0
  37. package/dist/agents/image-agent.mjs.map +1 -0
  38. package/dist/agents/image-model.cjs +83 -0
  39. package/dist/agents/image-model.d.cts +276 -0
  40. package/dist/agents/image-model.d.cts.map +1 -0
  41. package/dist/agents/image-model.d.mts +276 -0
  42. package/dist/agents/image-model.d.mts.map +1 -0
  43. package/dist/agents/image-model.mjs +81 -0
  44. package/dist/agents/image-model.mjs.map +1 -0
  45. package/dist/agents/mcp-agent.cjs +307 -0
  46. package/dist/agents/mcp-agent.d.cts +235 -0
  47. package/dist/agents/mcp-agent.d.cts.map +1 -0
  48. package/dist/agents/mcp-agent.d.mts +235 -0
  49. package/dist/agents/mcp-agent.d.mts.map +1 -0
  50. package/dist/agents/mcp-agent.mjs +303 -0
  51. package/dist/agents/mcp-agent.mjs.map +1 -0
  52. package/dist/agents/model.cjs +143 -0
  53. package/dist/agents/model.d.cts +257 -0
  54. package/dist/agents/model.d.cts.map +1 -0
  55. package/dist/agents/model.d.mts +257 -0
  56. package/dist/agents/model.d.mts.map +1 -0
  57. package/dist/agents/model.mjs +136 -0
  58. package/dist/agents/model.mjs.map +1 -0
  59. package/dist/agents/team-agent.cjs +342 -0
  60. package/dist/agents/team-agent.d.cts +390 -0
  61. package/dist/agents/team-agent.d.cts.map +1 -0
  62. package/dist/agents/team-agent.d.mts +390 -0
  63. package/dist/agents/team-agent.d.mts.map +1 -0
  64. package/dist/agents/team-agent.mjs +339 -0
  65. package/dist/agents/team-agent.mjs.map +1 -0
  66. package/dist/agents/transform-agent.cjs +77 -0
  67. package/dist/agents/transform-agent.d.cts +99 -0
  68. package/dist/agents/transform-agent.d.cts.map +1 -0
  69. package/dist/agents/transform-agent.d.mts +99 -0
  70. package/dist/agents/transform-agent.d.mts.map +1 -0
  71. package/dist/agents/transform-agent.mjs +76 -0
  72. package/dist/agents/transform-agent.mjs.map +1 -0
  73. package/dist/agents/types.cjs +30 -0
  74. package/dist/agents/types.d.cts +34 -0
  75. package/dist/agents/types.d.cts.map +1 -0
  76. package/dist/agents/types.d.mts +34 -0
  77. package/dist/agents/types.d.mts.map +1 -0
  78. package/dist/agents/types.mjs +25 -0
  79. package/dist/agents/types.mjs.map +1 -0
  80. package/dist/agents/user-agent.cjs +87 -0
  81. package/dist/agents/user-agent.d.cts +32 -0
  82. package/dist/agents/user-agent.d.cts.map +1 -0
  83. package/dist/agents/user-agent.d.mts +32 -0
  84. package/dist/agents/user-agent.d.mts.map +1 -0
  85. package/dist/agents/user-agent.mjs +88 -0
  86. package/dist/agents/user-agent.mjs.map +1 -0
  87. package/dist/agents/video-model.cjs +66 -0
  88. package/dist/agents/video-model.d.cts +286 -0
  89. package/dist/agents/video-model.d.cts.map +1 -0
  90. package/dist/agents/video-model.d.mts +286 -0
  91. package/dist/agents/video-model.d.mts.map +1 -0
  92. package/dist/agents/video-model.mjs +64 -0
  93. package/dist/agents/video-model.mjs.map +1 -0
  94. package/dist/aigne/aigne.cjs +235 -0
  95. package/dist/aigne/aigne.d.cts +340 -0
  96. package/dist/aigne/aigne.d.cts.map +1 -0
  97. package/dist/aigne/aigne.d.mts +340 -0
  98. package/dist/aigne/aigne.d.mts.map +1 -0
  99. package/dist/aigne/aigne.mjs +235 -0
  100. package/dist/aigne/aigne.mjs.map +1 -0
  101. package/dist/aigne/context.cjs +377 -0
  102. package/dist/aigne/context.d.cts +226 -0
  103. package/dist/aigne/context.d.cts.map +1 -0
  104. package/dist/aigne/context.d.mts +226 -0
  105. package/dist/aigne/context.d.mts.map +1 -0
  106. package/dist/aigne/context.mjs +376 -0
  107. package/dist/aigne/context.mjs.map +1 -0
  108. package/dist/aigne/index.cjs +4 -0
  109. package/dist/aigne/index.d.mts +5 -0
  110. package/dist/aigne/index.mjs +6 -0
  111. package/dist/aigne/message-queue.cjs +102 -0
  112. package/dist/aigne/message-queue.d.cts +52 -0
  113. package/dist/aigne/message-queue.d.cts.map +1 -0
  114. package/dist/aigne/message-queue.d.mts +52 -0
  115. package/dist/aigne/message-queue.d.mts.map +1 -0
  116. package/dist/aigne/message-queue.mjs +99 -0
  117. package/dist/aigne/message-queue.mjs.map +1 -0
  118. package/dist/aigne/type.d.cts +32 -0
  119. package/dist/aigne/type.d.cts.map +1 -0
  120. package/dist/aigne/type.d.mts +32 -0
  121. package/dist/aigne/type.d.mts.map +1 -0
  122. package/dist/aigne/usage.cjs +29 -0
  123. package/dist/aigne/usage.d.cts +32 -0
  124. package/dist/aigne/usage.d.cts.map +1 -0
  125. package/dist/aigne/usage.d.mts +32 -0
  126. package/dist/aigne/usage.d.mts.map +1 -0
  127. package/dist/aigne/usage.mjs +28 -0
  128. package/dist/aigne/usage.mjs.map +1 -0
  129. package/dist/index.cjs +142 -0
  130. package/dist/index.d.cts +29 -0
  131. package/dist/index.d.mts +31 -0
  132. package/dist/index.mjs +31 -0
  133. package/dist/loader/agent-js.cjs +23 -0
  134. package/dist/loader/agent-js.d.cts +9 -0
  135. package/dist/loader/agent-js.d.cts.map +1 -0
  136. package/dist/loader/agent-js.d.mts +10 -0
  137. package/dist/loader/agent-js.d.mts.map +1 -0
  138. package/dist/loader/agent-js.mjs +23 -0
  139. package/dist/loader/agent-js.mjs.map +1 -0
  140. package/dist/loader/agent-yaml.cjs +109 -0
  141. package/dist/loader/agent-yaml.d.cts +87 -0
  142. package/dist/loader/agent-yaml.d.cts.map +1 -0
  143. package/dist/loader/agent-yaml.d.mts +87 -0
  144. package/dist/loader/agent-yaml.d.mts.map +1 -0
  145. package/dist/loader/agent-yaml.mjs +106 -0
  146. package/dist/loader/agent-yaml.mjs.map +1 -0
  147. package/dist/loader/agents.cjs +19 -0
  148. package/dist/loader/agents.d.cts +9 -0
  149. package/dist/loader/agents.d.cts.map +1 -0
  150. package/dist/loader/agents.d.mts +9 -0
  151. package/dist/loader/agents.d.mts.map +1 -0
  152. package/dist/loader/agents.mjs +20 -0
  153. package/dist/loader/agents.mjs.map +1 -0
  154. package/dist/loader/error.cjs +6 -0
  155. package/dist/loader/error.d.cts +5 -0
  156. package/dist/loader/error.d.cts.map +1 -0
  157. package/dist/loader/error.d.mts +5 -0
  158. package/dist/loader/error.d.mts.map +1 -0
  159. package/dist/loader/error.mjs +6 -0
  160. package/dist/loader/error.mjs.map +1 -0
  161. package/dist/loader/function-agent.cjs +9 -0
  162. package/dist/loader/function-agent.d.cts +7 -0
  163. package/dist/loader/function-agent.d.cts.map +1 -0
  164. package/dist/loader/function-agent.d.mts +7 -0
  165. package/dist/loader/function-agent.d.mts.map +1 -0
  166. package/dist/loader/function-agent.mjs +9 -0
  167. package/dist/loader/function-agent.mjs.map +1 -0
  168. package/dist/loader/index.cjs +233 -0
  169. package/dist/loader/index.d.cts +255 -0
  170. package/dist/loader/index.d.cts.map +1 -0
  171. package/dist/loader/index.d.mts +255 -0
  172. package/dist/loader/index.d.mts.map +1 -0
  173. package/dist/loader/index.mjs +228 -0
  174. package/dist/loader/index.mjs.map +1 -0
  175. package/dist/loader/schema.cjs +135 -0
  176. package/dist/loader/schema.d.cts +177 -0
  177. package/dist/loader/schema.d.cts.map +1 -0
  178. package/dist/loader/schema.d.mts +177 -0
  179. package/dist/loader/schema.d.mts.map +1 -0
  180. package/dist/loader/schema.mjs +127 -0
  181. package/dist/loader/schema.mjs.map +1 -0
  182. package/dist/memory/index.cjs +3 -0
  183. package/dist/memory/index.d.mts +3 -0
  184. package/dist/memory/index.mjs +5 -0
  185. package/dist/memory/memory.cjs +134 -0
  186. package/dist/memory/memory.d.cts +103 -0
  187. package/dist/memory/memory.d.cts.map +1 -0
  188. package/dist/memory/memory.d.mts +103 -0
  189. package/dist/memory/memory.d.mts.map +1 -0
  190. package/dist/memory/memory.mjs +133 -0
  191. package/dist/memory/memory.mjs.map +1 -0
  192. package/dist/memory/recorder.cjs +61 -0
  193. package/dist/memory/recorder.d.cts +98 -0
  194. package/dist/memory/recorder.d.cts.map +1 -0
  195. package/dist/memory/recorder.d.mts +98 -0
  196. package/dist/memory/recorder.d.mts.map +1 -0
  197. package/dist/memory/recorder.mjs +59 -0
  198. package/dist/memory/recorder.mjs.map +1 -0
  199. package/dist/memory/retriever.cjs +60 -0
  200. package/dist/memory/retriever.d.cts +111 -0
  201. package/dist/memory/retriever.d.cts.map +1 -0
  202. package/dist/memory/retriever.d.mts +111 -0
  203. package/dist/memory/retriever.d.mts.map +1 -0
  204. package/dist/memory/retriever.mjs +58 -0
  205. package/dist/memory/retriever.mjs.map +1 -0
  206. package/dist/prompt/agent-session.cjs +700 -0
  207. package/dist/prompt/agent-session.d.cts +167 -0
  208. package/dist/prompt/agent-session.d.cts.map +1 -0
  209. package/dist/prompt/agent-session.d.mts +167 -0
  210. package/dist/prompt/agent-session.d.mts.map +1 -0
  211. package/dist/prompt/agent-session.mjs +700 -0
  212. package/dist/prompt/agent-session.mjs.map +1 -0
  213. package/dist/prompt/compact/compactor.cjs +50 -0
  214. package/dist/prompt/compact/compactor.mjs +50 -0
  215. package/dist/prompt/compact/compactor.mjs.map +1 -0
  216. package/dist/prompt/compact/session-memory-extractor.cjs +137 -0
  217. package/dist/prompt/compact/session-memory-extractor.mjs +137 -0
  218. package/dist/prompt/compact/session-memory-extractor.mjs.map +1 -0
  219. package/dist/prompt/compact/types.cjs +59 -0
  220. package/dist/prompt/compact/types.d.cts +341 -0
  221. package/dist/prompt/compact/types.d.cts.map +1 -0
  222. package/dist/prompt/compact/types.d.mts +341 -0
  223. package/dist/prompt/compact/types.d.mts.map +1 -0
  224. package/dist/prompt/compact/types.mjs +49 -0
  225. package/dist/prompt/compact/types.mjs.map +1 -0
  226. package/dist/prompt/compact/user-memory-extractor.cjs +118 -0
  227. package/dist/prompt/compact/user-memory-extractor.mjs +118 -0
  228. package/dist/prompt/compact/user-memory-extractor.mjs.map +1 -0
  229. package/dist/prompt/context/afs/history.cjs +30 -0
  230. package/dist/prompt/context/afs/history.mjs +30 -0
  231. package/dist/prompt/context/afs/history.mjs.map +1 -0
  232. package/dist/prompt/context/afs/index.cjs +60 -0
  233. package/dist/prompt/context/afs/index.mjs +61 -0
  234. package/dist/prompt/context/afs/index.mjs.map +1 -0
  235. package/dist/prompt/context/index.cjs +18 -0
  236. package/dist/prompt/context/index.mjs +19 -0
  237. package/dist/prompt/context/index.mjs.map +1 -0
  238. package/dist/prompt/filters/index.cjs +22 -0
  239. package/dist/prompt/filters/index.mjs +21 -0
  240. package/dist/prompt/filters/index.mjs.map +1 -0
  241. package/dist/prompt/prompt-builder.cjs +291 -0
  242. package/dist/prompt/prompt-builder.d.cts +57 -0
  243. package/dist/prompt/prompt-builder.d.cts.map +1 -0
  244. package/dist/prompt/prompt-builder.d.mts +57 -0
  245. package/dist/prompt/prompt-builder.d.mts.map +1 -0
  246. package/dist/prompt/prompt-builder.mjs +291 -0
  247. package/dist/prompt/prompt-builder.mjs.map +1 -0
  248. package/dist/prompt/prompts/afs-builtin-prompt.cjs +12 -0
  249. package/dist/prompt/prompts/afs-builtin-prompt.mjs +13 -0
  250. package/dist/prompt/prompts/afs-builtin-prompt.mjs.map +1 -0
  251. package/dist/prompt/prompts/memory-message-template.cjs +10 -0
  252. package/dist/prompt/prompts/memory-message-template.mjs +10 -0
  253. package/dist/prompt/prompts/memory-message-template.mjs.map +1 -0
  254. package/dist/prompt/prompts/structured-stream-instructions.cjs +30 -0
  255. package/dist/prompt/prompts/structured-stream-instructions.mjs +30 -0
  256. package/dist/prompt/prompts/structured-stream-instructions.mjs.map +1 -0
  257. package/dist/prompt/skills/afs/agent-skill/agent-skill.cjs +66 -0
  258. package/dist/prompt/skills/afs/agent-skill/agent-skill.mjs +66 -0
  259. package/dist/prompt/skills/afs/agent-skill/agent-skill.mjs.map +1 -0
  260. package/dist/prompt/skills/afs/agent-skill/skill-loader.cjs +42 -0
  261. package/dist/prompt/skills/afs/agent-skill/skill-loader.mjs +41 -0
  262. package/dist/prompt/skills/afs/agent-skill/skill-loader.mjs.map +1 -0
  263. package/dist/prompt/skills/afs/base.cjs +9 -0
  264. package/dist/prompt/skills/afs/base.mjs +10 -0
  265. package/dist/prompt/skills/afs/base.mjs.map +1 -0
  266. package/dist/prompt/skills/afs/delete.cjs +50 -0
  267. package/dist/prompt/skills/afs/delete.mjs +50 -0
  268. package/dist/prompt/skills/afs/delete.mjs.map +1 -0
  269. package/dist/prompt/skills/afs/edit.cjs +92 -0
  270. package/dist/prompt/skills/afs/edit.mjs +92 -0
  271. package/dist/prompt/skills/afs/edit.mjs.map +1 -0
  272. package/dist/prompt/skills/afs/exec.cjs +36 -0
  273. package/dist/prompt/skills/afs/exec.mjs +36 -0
  274. package/dist/prompt/skills/afs/exec.mjs.map +1 -0
  275. package/dist/prompt/skills/afs/index.cjs +28 -0
  276. package/dist/prompt/skills/afs/index.mjs +29 -0
  277. package/dist/prompt/skills/afs/index.mjs.map +1 -0
  278. package/dist/prompt/skills/afs/list.cjs +69 -0
  279. package/dist/prompt/skills/afs/list.mjs +69 -0
  280. package/dist/prompt/skills/afs/list.mjs.map +1 -0
  281. package/dist/prompt/skills/afs/read.cjs +86 -0
  282. package/dist/prompt/skills/afs/read.mjs +86 -0
  283. package/dist/prompt/skills/afs/read.mjs.map +1 -0
  284. package/dist/prompt/skills/afs/rename.cjs +53 -0
  285. package/dist/prompt/skills/afs/rename.mjs +53 -0
  286. package/dist/prompt/skills/afs/rename.mjs.map +1 -0
  287. package/dist/prompt/skills/afs/search.cjs +63 -0
  288. package/dist/prompt/skills/afs/search.mjs +63 -0
  289. package/dist/prompt/skills/afs/search.mjs.map +1 -0
  290. package/dist/prompt/skills/afs/write.cjs +51 -0
  291. package/dist/prompt/skills/afs/write.mjs +51 -0
  292. package/dist/prompt/skills/afs/write.mjs.map +1 -0
  293. package/dist/prompt/template.cjs +229 -0
  294. package/dist/prompt/template.d.cts +247 -0
  295. package/dist/prompt/template.d.cts.map +1 -0
  296. package/dist/prompt/template.d.mts +247 -0
  297. package/dist/prompt/template.d.mts.map +1 -0
  298. package/dist/prompt/template.mjs +219 -0
  299. package/dist/prompt/template.mjs.map +1 -0
  300. package/dist/utils/agent-utils.cjs +49 -0
  301. package/dist/utils/agent-utils.d.cts +22 -0
  302. package/dist/utils/agent-utils.d.cts.map +1 -0
  303. package/dist/utils/agent-utils.d.mts +22 -0
  304. package/dist/utils/agent-utils.d.mts.map +1 -0
  305. package/dist/utils/agent-utils.mjs +46 -0
  306. package/dist/utils/agent-utils.mjs.map +1 -0
  307. package/dist/utils/camelize.cjs +34 -0
  308. package/dist/utils/camelize.d.cts +9 -0
  309. package/dist/utils/camelize.d.cts.map +1 -0
  310. package/dist/utils/camelize.d.mts +9 -0
  311. package/dist/utils/camelize.d.mts.map +1 -0
  312. package/dist/utils/camelize.mjs +33 -0
  313. package/dist/utils/camelize.mjs.map +1 -0
  314. package/dist/utils/event-stream.cjs +136 -0
  315. package/dist/utils/event-stream.d.cts +20 -0
  316. package/dist/utils/event-stream.d.cts.map +1 -0
  317. package/dist/utils/event-stream.d.mts +20 -0
  318. package/dist/utils/event-stream.d.mts.map +1 -0
  319. package/dist/utils/event-stream.mjs +133 -0
  320. package/dist/utils/event-stream.mjs.map +1 -0
  321. package/dist/utils/fetch.cjs +32 -0
  322. package/dist/utils/fetch.d.cts +8 -0
  323. package/dist/utils/fetch.d.cts.map +1 -0
  324. package/dist/utils/fetch.d.mts +8 -0
  325. package/dist/utils/fetch.d.mts.map +1 -0
  326. package/dist/utils/fetch.mjs +32 -0
  327. package/dist/utils/fetch.mjs.map +1 -0
  328. package/dist/utils/json-schema.cjs +107 -0
  329. package/dist/utils/json-schema.d.cts +20 -0
  330. package/dist/utils/json-schema.d.cts.map +1 -0
  331. package/dist/utils/json-schema.d.mts +20 -0
  332. package/dist/utils/json-schema.d.mts.map +1 -0
  333. package/dist/utils/json-schema.mjs +102 -0
  334. package/dist/utils/json-schema.mjs.map +1 -0
  335. package/dist/utils/json-utils.cjs +46 -0
  336. package/dist/utils/json-utils.d.cts +28 -0
  337. package/dist/utils/json-utils.d.cts.map +1 -0
  338. package/dist/utils/json-utils.d.mts +28 -0
  339. package/dist/utils/json-utils.d.mts.map +1 -0
  340. package/dist/utils/json-utils.mjs +44 -0
  341. package/dist/utils/json-utils.mjs.map +1 -0
  342. package/dist/utils/logger.cjs +72 -0
  343. package/dist/utils/logger.d.cts +41 -0
  344. package/dist/utils/logger.d.cts.map +1 -0
  345. package/dist/utils/logger.d.mts +41 -0
  346. package/dist/utils/logger.d.mts.map +1 -0
  347. package/dist/utils/logger.mjs +68 -0
  348. package/dist/utils/logger.mjs.map +1 -0
  349. package/dist/utils/mcp-utils.cjs +53 -0
  350. package/dist/utils/mcp-utils.d.cts +10 -0
  351. package/dist/utils/mcp-utils.d.cts.map +1 -0
  352. package/dist/utils/mcp-utils.d.mts +10 -0
  353. package/dist/utils/mcp-utils.d.mts.map +1 -0
  354. package/dist/utils/mcp-utils.mjs +51 -0
  355. package/dist/utils/mcp-utils.mjs.map +1 -0
  356. package/dist/utils/model-utils.cjs +12 -0
  357. package/dist/utils/model-utils.d.cts +8 -0
  358. package/dist/utils/model-utils.d.cts.map +1 -0
  359. package/dist/utils/model-utils.d.mts +8 -0
  360. package/dist/utils/model-utils.d.mts.map +1 -0
  361. package/dist/utils/model-utils.mjs +12 -0
  362. package/dist/utils/model-utils.mjs.map +1 -0
  363. package/dist/utils/promise.cjs +17 -0
  364. package/dist/utils/promise.d.cts +10 -0
  365. package/dist/utils/promise.d.cts.map +1 -0
  366. package/dist/utils/promise.d.mts +10 -0
  367. package/dist/utils/promise.d.mts.map +1 -0
  368. package/dist/utils/promise.mjs +17 -0
  369. package/dist/utils/promise.mjs.map +1 -0
  370. package/dist/utils/prompts.cjs +19 -0
  371. package/dist/utils/prompts.d.cts +6 -0
  372. package/dist/utils/prompts.d.cts.map +1 -0
  373. package/dist/utils/prompts.d.mts +6 -0
  374. package/dist/utils/prompts.d.mts.map +1 -0
  375. package/dist/utils/prompts.mjs +18 -0
  376. package/dist/utils/prompts.mjs.map +1 -0
  377. package/dist/utils/queue.cjs +273 -0
  378. package/dist/utils/queue.d.cts +60 -0
  379. package/dist/utils/queue.d.cts.map +1 -0
  380. package/dist/utils/queue.d.mts +60 -0
  381. package/dist/utils/queue.d.mts.map +1 -0
  382. package/dist/utils/queue.mjs +271 -0
  383. package/dist/utils/queue.mjs.map +1 -0
  384. package/dist/utils/role-utils.cjs +40 -0
  385. package/dist/utils/role-utils.d.cts +32 -0
  386. package/dist/utils/role-utils.d.cts.map +1 -0
  387. package/dist/utils/role-utils.d.mts +32 -0
  388. package/dist/utils/role-utils.d.mts.map +1 -0
  389. package/dist/utils/role-utils.mjs +38 -0
  390. package/dist/utils/role-utils.mjs.map +1 -0
  391. package/dist/utils/stream-polyfill.cjs +37 -0
  392. package/dist/utils/stream-polyfill.d.cts +1 -0
  393. package/dist/utils/stream-polyfill.d.mts +1 -0
  394. package/dist/utils/stream-polyfill.mjs +38 -0
  395. package/dist/utils/stream-polyfill.mjs.map +1 -0
  396. package/dist/utils/stream-utils.cjs +187 -0
  397. package/dist/utils/stream-utils.d.cts +30 -0
  398. package/dist/utils/stream-utils.d.cts.map +1 -0
  399. package/dist/utils/stream-utils.d.mts +30 -0
  400. package/dist/utils/stream-utils.d.mts.map +1 -0
  401. package/dist/utils/stream-utils.mjs +174 -0
  402. package/dist/utils/stream-utils.mjs.map +1 -0
  403. package/dist/utils/structured-stream-extractor.cjs +63 -0
  404. package/dist/utils/structured-stream-extractor.d.cts +23 -0
  405. package/dist/utils/structured-stream-extractor.d.cts.map +1 -0
  406. package/dist/utils/structured-stream-extractor.d.mts +23 -0
  407. package/dist/utils/structured-stream-extractor.d.mts.map +1 -0
  408. package/dist/utils/structured-stream-extractor.mjs +64 -0
  409. package/dist/utils/structured-stream-extractor.mjs.map +1 -0
  410. package/dist/utils/test/agent-response.cjs +16 -0
  411. package/dist/utils/test/agent-response.d.cts +12 -0
  412. package/dist/utils/test/agent-response.d.cts.map +1 -0
  413. package/dist/utils/test/agent-response.d.mts +13 -0
  414. package/dist/utils/test/agent-response.d.mts.map +1 -0
  415. package/dist/utils/test/agent-response.mjs +17 -0
  416. package/dist/utils/test/agent-response.mjs.map +1 -0
  417. package/dist/utils/test/openai-like-utils.cjs +73 -0
  418. package/dist/utils/test/openai-like-utils.d.cts +13 -0
  419. package/dist/utils/test/openai-like-utils.d.cts.map +1 -0
  420. package/dist/utils/test/openai-like-utils.d.mts +14 -0
  421. package/dist/utils/test/openai-like-utils.d.mts.map +1 -0
  422. package/dist/utils/test/openai-like-utils.mjs +68 -0
  423. package/dist/utils/test/openai-like-utils.mjs.map +1 -0
  424. package/dist/utils/token-estimator.cjs +57 -0
  425. package/dist/utils/token-estimator.d.cts +13 -0
  426. package/dist/utils/token-estimator.d.cts.map +1 -0
  427. package/dist/utils/token-estimator.d.mts +13 -0
  428. package/dist/utils/token-estimator.d.mts.map +1 -0
  429. package/dist/utils/token-estimator.mjs +57 -0
  430. package/dist/utils/token-estimator.mjs.map +1 -0
  431. package/dist/utils/type-utils.cjs +159 -0
  432. package/dist/utils/type-utils.d.cts +32 -0
  433. package/dist/utils/type-utils.d.cts.map +1 -0
  434. package/dist/utils/type-utils.d.mts +32 -0
  435. package/dist/utils/type-utils.d.mts.map +1 -0
  436. package/dist/utils/type-utils.mjs +141 -0
  437. package/dist/utils/type-utils.mjs.map +1 -0
  438. package/dist/utils/typed-event-emitter.cjs +0 -0
  439. package/dist/utils/typed-event-emitter.d.cts +13 -0
  440. package/dist/utils/typed-event-emitter.d.cts.map +1 -0
  441. package/dist/utils/typed-event-emitter.d.mts +13 -0
  442. package/dist/utils/typed-event-emitter.d.mts.map +1 -0
  443. package/dist/utils/typed-event-emitter.mjs +1 -0
  444. package/package.json +143 -62
  445. package/CHANGELOG.md +0 -2603
  446. package/lib/cjs/agents/agent.d.ts +0 -961
  447. package/lib/cjs/agents/agent.js +0 -961
  448. package/lib/cjs/agents/ai-agent.d.ts +0 -395
  449. package/lib/cjs/agents/ai-agent.js +0 -572
  450. package/lib/cjs/agents/chat-model.d.ts +0 -672
  451. package/lib/cjs/agents/chat-model.js +0 -457
  452. package/lib/cjs/agents/guide-rail-agent.d.ts +0 -62
  453. package/lib/cjs/agents/guide-rail-agent.js +0 -14
  454. package/lib/cjs/agents/image-agent.d.ts +0 -38
  455. package/lib/cjs/agents/image-agent.js +0 -71
  456. package/lib/cjs/agents/image-model.d.ts +0 -270
  457. package/lib/cjs/agents/image-model.js +0 -91
  458. package/lib/cjs/agents/mcp-agent.d.ts +0 -231
  459. package/lib/cjs/agents/mcp-agent.js +0 -366
  460. package/lib/cjs/agents/model.d.ts +0 -252
  461. package/lib/cjs/agents/model.js +0 -180
  462. package/lib/cjs/agents/team-agent.d.ts +0 -382
  463. package/lib/cjs/agents/team-agent.js +0 -386
  464. package/lib/cjs/agents/transform-agent.d.ts +0 -94
  465. package/lib/cjs/agents/transform-agent.js +0 -80
  466. package/lib/cjs/agents/types.d.ts +0 -31
  467. package/lib/cjs/agents/types.js +0 -40
  468. package/lib/cjs/agents/user-agent.d.ts +0 -27
  469. package/lib/cjs/agents/user-agent.js +0 -90
  470. package/lib/cjs/agents/video-model.d.ts +0 -280
  471. package/lib/cjs/agents/video-model.js +0 -67
  472. package/lib/cjs/aigne/aigne.d.ts +0 -335
  473. package/lib/cjs/aigne/aigne.js +0 -248
  474. package/lib/cjs/aigne/context.d.ts +0 -220
  475. package/lib/cjs/aigne/context.js +0 -423
  476. package/lib/cjs/aigne/index.d.ts +0 -4
  477. package/lib/cjs/aigne/index.js +0 -20
  478. package/lib/cjs/aigne/message-queue.d.ts +0 -48
  479. package/lib/cjs/aigne/message-queue.js +0 -109
  480. package/lib/cjs/aigne/type.d.ts +0 -27
  481. package/lib/cjs/aigne/type.js +0 -2
  482. package/lib/cjs/aigne/usage.d.ts +0 -28
  483. package/lib/cjs/aigne/usage.js +0 -34
  484. package/lib/cjs/index.d.ts +0 -21
  485. package/lib/cjs/index.js +0 -37
  486. package/lib/cjs/loader/agent-js.d.ts +0 -2
  487. package/lib/cjs/loader/agent-js.js +0 -21
  488. package/lib/cjs/loader/agent-yaml.d.ts +0 -78
  489. package/lib/cjs/loader/agent-yaml.js +0 -120
  490. package/lib/cjs/loader/agents.d.ts +0 -4
  491. package/lib/cjs/loader/agents.js +0 -17
  492. package/lib/cjs/loader/error.d.ts +0 -2
  493. package/lib/cjs/loader/error.js +0 -6
  494. package/lib/cjs/loader/function-agent.d.ts +0 -2
  495. package/lib/cjs/loader/function-agent.js +0 -7
  496. package/lib/cjs/loader/index.d.ts +0 -251
  497. package/lib/cjs/loader/index.js +0 -268
  498. package/lib/cjs/loader/schema.d.ts +0 -167
  499. package/lib/cjs/loader/schema.js +0 -162
  500. package/lib/cjs/memory/index.d.ts +0 -3
  501. package/lib/cjs/memory/index.js +0 -19
  502. package/lib/cjs/memory/memory.d.ts +0 -93
  503. package/lib/cjs/memory/memory.js +0 -147
  504. package/lib/cjs/memory/recorder.d.ts +0 -93
  505. package/lib/cjs/memory/recorder.js +0 -63
  506. package/lib/cjs/memory/retriever.d.ts +0 -106
  507. package/lib/cjs/memory/retriever.js +0 -60
  508. package/lib/cjs/package.json +0 -3
  509. package/lib/cjs/prompt/agent-session.d.ts +0 -163
  510. package/lib/cjs/prompt/agent-session.js +0 -1008
  511. package/lib/cjs/prompt/compact/compactor.d.ts +0 -7
  512. package/lib/cjs/prompt/compact/compactor.js +0 -52
  513. package/lib/cjs/prompt/compact/session-memory-extractor.d.ts +0 -7
  514. package/lib/cjs/prompt/compact/session-memory-extractor.js +0 -143
  515. package/lib/cjs/prompt/compact/types.d.ts +0 -336
  516. package/lib/cjs/prompt/compact/types.js +0 -53
  517. package/lib/cjs/prompt/compact/user-memory-extractor.d.ts +0 -7
  518. package/lib/cjs/prompt/compact/user-memory-extractor.js +0 -124
  519. package/lib/cjs/prompt/context/afs/history.d.ts +0 -9
  520. package/lib/cjs/prompt/context/afs/history.js +0 -33
  521. package/lib/cjs/prompt/context/afs/index.d.ts +0 -20
  522. package/lib/cjs/prompt/context/afs/index.js +0 -54
  523. package/lib/cjs/prompt/context/index.d.ts +0 -31
  524. package/lib/cjs/prompt/context/index.js +0 -18
  525. package/lib/cjs/prompt/filters/index.d.ts +0 -2
  526. package/lib/cjs/prompt/filters/index.js +0 -51
  527. package/lib/cjs/prompt/prompt-builder.d.ts +0 -50
  528. package/lib/cjs/prompt/prompt-builder.js +0 -352
  529. package/lib/cjs/prompt/prompts/afs-builtin-prompt.d.ts +0 -4
  530. package/lib/cjs/prompt/prompts/afs-builtin-prompt.js +0 -36
  531. package/lib/cjs/prompt/prompts/memory-message-template.d.ts +0 -1
  532. package/lib/cjs/prompt/prompts/memory-message-template.js +0 -8
  533. package/lib/cjs/prompt/prompts/structured-stream-instructions.d.ts +0 -7
  534. package/lib/cjs/prompt/prompts/structured-stream-instructions.js +0 -27
  535. package/lib/cjs/prompt/skills/afs/agent-skill/agent-skill.d.ts +0 -19
  536. package/lib/cjs/prompt/skills/afs/agent-skill/agent-skill.js +0 -69
  537. package/lib/cjs/prompt/skills/afs/agent-skill/skill-loader.d.ts +0 -12
  538. package/lib/cjs/prompt/skills/afs/agent-skill/skill-loader.js +0 -50
  539. package/lib/cjs/prompt/skills/afs/base.d.ts +0 -4
  540. package/lib/cjs/prompt/skills/afs/base.js +0 -8
  541. package/lib/cjs/prompt/skills/afs/delete.d.ts +0 -19
  542. package/lib/cjs/prompt/skills/afs/delete.js +0 -55
  543. package/lib/cjs/prompt/skills/afs/edit.d.ts +0 -24
  544. package/lib/cjs/prompt/skills/afs/edit.js +0 -122
  545. package/lib/cjs/prompt/skills/afs/exec.d.ts +0 -16
  546. package/lib/cjs/prompt/skills/afs/exec.js +0 -43
  547. package/lib/cjs/prompt/skills/afs/index.d.ts +0 -3
  548. package/lib/cjs/prompt/skills/afs/index.js +0 -26
  549. package/lib/cjs/prompt/skills/afs/list.d.ts +0 -24
  550. package/lib/cjs/prompt/skills/afs/list.js +0 -82
  551. package/lib/cjs/prompt/skills/afs/read.d.ts +0 -28
  552. package/lib/cjs/prompt/skills/afs/read.js +0 -105
  553. package/lib/cjs/prompt/skills/afs/rename.d.ts +0 -21
  554. package/lib/cjs/prompt/skills/afs/rename.js +0 -60
  555. package/lib/cjs/prompt/skills/afs/search.d.ts +0 -24
  556. package/lib/cjs/prompt/skills/afs/search.js +0 -74
  557. package/lib/cjs/prompt/skills/afs/write.d.ts +0 -20
  558. package/lib/cjs/prompt/skills/afs/write.js +0 -60
  559. package/lib/cjs/prompt/template.d.ts +0 -243
  560. package/lib/cjs/prompt/template.js +0 -265
  561. package/lib/cjs/utils/agent-utils.d.ts +0 -13
  562. package/lib/cjs/utils/agent-utils.js +0 -60
  563. package/lib/cjs/utils/camelize.d.ts +0 -7
  564. package/lib/cjs/utils/camelize.js +0 -38
  565. package/lib/cjs/utils/event-stream.d.ts +0 -15
  566. package/lib/cjs/utils/event-stream.js +0 -158
  567. package/lib/cjs/utils/fetch.d.ts +0 -4
  568. package/lib/cjs/utils/fetch.js +0 -36
  569. package/lib/cjs/utils/json-schema.d.ts +0 -15
  570. package/lib/cjs/utils/json-schema.js +0 -123
  571. package/lib/cjs/utils/json-utils.d.ts +0 -24
  572. package/lib/cjs/utils/json-utils.js +0 -48
  573. package/lib/cjs/utils/logger.d.ts +0 -39
  574. package/lib/cjs/utils/logger.js +0 -81
  575. package/lib/cjs/utils/mcp-utils.d.ts +0 -5
  576. package/lib/cjs/utils/mcp-utils.js +0 -52
  577. package/lib/cjs/utils/model-utils.d.ts +0 -3
  578. package/lib/cjs/utils/model-utils.js +0 -10
  579. package/lib/cjs/utils/promise.d.ts +0 -6
  580. package/lib/cjs/utils/promise.js +0 -12
  581. package/lib/cjs/utils/prompts.d.ts +0 -2
  582. package/lib/cjs/utils/prompts.js +0 -22
  583. package/lib/cjs/utils/queue.d.ts +0 -57
  584. package/lib/cjs/utils/queue.js +0 -318
  585. package/lib/cjs/utils/role-utils.d.ts +0 -31
  586. package/lib/cjs/utils/role-utils.js +0 -37
  587. package/lib/cjs/utils/stream-polyfill.d.ts +0 -1
  588. package/lib/cjs/utils/stream-polyfill.js +0 -38
  589. package/lib/cjs/utils/stream-utils.d.ts +0 -26
  590. package/lib/cjs/utils/stream-utils.js +0 -235
  591. package/lib/cjs/utils/structured-stream-extractor.d.ts +0 -14
  592. package/lib/cjs/utils/structured-stream-extractor.js +0 -68
  593. package/lib/cjs/utils/token-estimator.d.ts +0 -9
  594. package/lib/cjs/utils/token-estimator.js +0 -66
  595. package/lib/cjs/utils/type-utils.d.ts +0 -31
  596. package/lib/cjs/utils/type-utils.js +0 -202
  597. package/lib/cjs/utils/typed-event-emitter.d.ts +0 -10
  598. package/lib/cjs/utils/typed-event-emitter.js +0 -2
  599. package/lib/dts/agents/agent.d.ts +0 -961
  600. package/lib/dts/agents/ai-agent.d.ts +0 -395
  601. package/lib/dts/agents/chat-model.d.ts +0 -672
  602. package/lib/dts/agents/guide-rail-agent.d.ts +0 -62
  603. package/lib/dts/agents/image-agent.d.ts +0 -38
  604. package/lib/dts/agents/image-model.d.ts +0 -270
  605. package/lib/dts/agents/mcp-agent.d.ts +0 -231
  606. package/lib/dts/agents/model.d.ts +0 -252
  607. package/lib/dts/agents/team-agent.d.ts +0 -382
  608. package/lib/dts/agents/transform-agent.d.ts +0 -94
  609. package/lib/dts/agents/types.d.ts +0 -31
  610. package/lib/dts/agents/user-agent.d.ts +0 -27
  611. package/lib/dts/agents/video-model.d.ts +0 -280
  612. package/lib/dts/aigne/aigne.d.ts +0 -335
  613. package/lib/dts/aigne/context.d.ts +0 -220
  614. package/lib/dts/aigne/index.d.ts +0 -4
  615. package/lib/dts/aigne/message-queue.d.ts +0 -48
  616. package/lib/dts/aigne/type.d.ts +0 -27
  617. package/lib/dts/aigne/usage.d.ts +0 -28
  618. package/lib/dts/index.d.ts +0 -21
  619. package/lib/dts/loader/agent-js.d.ts +0 -2
  620. package/lib/dts/loader/agent-yaml.d.ts +0 -78
  621. package/lib/dts/loader/agents.d.ts +0 -4
  622. package/lib/dts/loader/error.d.ts +0 -2
  623. package/lib/dts/loader/function-agent.d.ts +0 -2
  624. package/lib/dts/loader/index.d.ts +0 -251
  625. package/lib/dts/loader/schema.d.ts +0 -167
  626. package/lib/dts/memory/index.d.ts +0 -3
  627. package/lib/dts/memory/memory.d.ts +0 -93
  628. package/lib/dts/memory/recorder.d.ts +0 -93
  629. package/lib/dts/memory/retriever.d.ts +0 -106
  630. package/lib/dts/prompt/agent-session.d.ts +0 -163
  631. package/lib/dts/prompt/compact/compactor.d.ts +0 -7
  632. package/lib/dts/prompt/compact/session-memory-extractor.d.ts +0 -7
  633. package/lib/dts/prompt/compact/types.d.ts +0 -336
  634. package/lib/dts/prompt/compact/user-memory-extractor.d.ts +0 -7
  635. package/lib/dts/prompt/context/afs/history.d.ts +0 -9
  636. package/lib/dts/prompt/context/afs/index.d.ts +0 -20
  637. package/lib/dts/prompt/context/index.d.ts +0 -31
  638. package/lib/dts/prompt/filters/index.d.ts +0 -2
  639. package/lib/dts/prompt/prompt-builder.d.ts +0 -50
  640. package/lib/dts/prompt/prompts/afs-builtin-prompt.d.ts +0 -4
  641. package/lib/dts/prompt/prompts/memory-message-template.d.ts +0 -1
  642. package/lib/dts/prompt/prompts/structured-stream-instructions.d.ts +0 -7
  643. package/lib/dts/prompt/skills/afs/agent-skill/agent-skill.d.ts +0 -19
  644. package/lib/dts/prompt/skills/afs/agent-skill/skill-loader.d.ts +0 -12
  645. package/lib/dts/prompt/skills/afs/base.d.ts +0 -4
  646. package/lib/dts/prompt/skills/afs/delete.d.ts +0 -19
  647. package/lib/dts/prompt/skills/afs/edit.d.ts +0 -24
  648. package/lib/dts/prompt/skills/afs/exec.d.ts +0 -16
  649. package/lib/dts/prompt/skills/afs/index.d.ts +0 -3
  650. package/lib/dts/prompt/skills/afs/list.d.ts +0 -24
  651. package/lib/dts/prompt/skills/afs/read.d.ts +0 -28
  652. package/lib/dts/prompt/skills/afs/rename.d.ts +0 -21
  653. package/lib/dts/prompt/skills/afs/search.d.ts +0 -24
  654. package/lib/dts/prompt/skills/afs/write.d.ts +0 -20
  655. package/lib/dts/prompt/template.d.ts +0 -243
  656. package/lib/dts/utils/agent-utils.d.ts +0 -13
  657. package/lib/dts/utils/camelize.d.ts +0 -7
  658. package/lib/dts/utils/event-stream.d.ts +0 -15
  659. package/lib/dts/utils/fetch.d.ts +0 -4
  660. package/lib/dts/utils/json-schema.d.ts +0 -15
  661. package/lib/dts/utils/json-utils.d.ts +0 -24
  662. package/lib/dts/utils/logger.d.ts +0 -39
  663. package/lib/dts/utils/mcp-utils.d.ts +0 -5
  664. package/lib/dts/utils/model-utils.d.ts +0 -3
  665. package/lib/dts/utils/promise.d.ts +0 -6
  666. package/lib/dts/utils/prompts.d.ts +0 -2
  667. package/lib/dts/utils/queue.d.ts +0 -57
  668. package/lib/dts/utils/role-utils.d.ts +0 -31
  669. package/lib/dts/utils/stream-polyfill.d.ts +0 -1
  670. package/lib/dts/utils/stream-utils.d.ts +0 -26
  671. package/lib/dts/utils/structured-stream-extractor.d.ts +0 -14
  672. package/lib/dts/utils/token-estimator.d.ts +0 -9
  673. package/lib/dts/utils/type-utils.d.ts +0 -31
  674. package/lib/dts/utils/typed-event-emitter.d.ts +0 -10
  675. package/lib/esm/agents/agent.d.ts +0 -961
  676. package/lib/esm/agents/agent.js +0 -911
  677. package/lib/esm/agents/ai-agent.d.ts +0 -395
  678. package/lib/esm/agents/ai-agent.js +0 -535
  679. package/lib/esm/agents/chat-model.d.ts +0 -672
  680. package/lib/esm/agents/chat-model.js +0 -419
  681. package/lib/esm/agents/guide-rail-agent.d.ts +0 -62
  682. package/lib/esm/agents/guide-rail-agent.js +0 -11
  683. package/lib/esm/agents/image-agent.d.ts +0 -38
  684. package/lib/esm/agents/image-agent.js +0 -64
  685. package/lib/esm/agents/image-model.d.ts +0 -270
  686. package/lib/esm/agents/image-model.js +0 -87
  687. package/lib/esm/agents/mcp-agent.d.ts +0 -231
  688. package/lib/esm/agents/mcp-agent.js +0 -325
  689. package/lib/esm/agents/model.d.ts +0 -252
  690. package/lib/esm/agents/model.js +0 -143
  691. package/lib/esm/agents/team-agent.d.ts +0 -382
  692. package/lib/esm/agents/team-agent.js +0 -346
  693. package/lib/esm/agents/transform-agent.d.ts +0 -94
  694. package/lib/esm/agents/transform-agent.js +0 -73
  695. package/lib/esm/agents/types.d.ts +0 -31
  696. package/lib/esm/agents/types.js +0 -30
  697. package/lib/esm/agents/user-agent.d.ts +0 -27
  698. package/lib/esm/agents/user-agent.js +0 -86
  699. package/lib/esm/agents/video-model.d.ts +0 -280
  700. package/lib/esm/agents/video-model.js +0 -63
  701. package/lib/esm/aigne/aigne.d.ts +0 -335
  702. package/lib/esm/aigne/aigne.js +0 -244
  703. package/lib/esm/aigne/context.d.ts +0 -220
  704. package/lib/esm/aigne/context.js +0 -416
  705. package/lib/esm/aigne/index.d.ts +0 -4
  706. package/lib/esm/aigne/index.js +0 -4
  707. package/lib/esm/aigne/message-queue.d.ts +0 -48
  708. package/lib/esm/aigne/message-queue.js +0 -104
  709. package/lib/esm/aigne/type.d.ts +0 -27
  710. package/lib/esm/aigne/type.js +0 -1
  711. package/lib/esm/aigne/usage.d.ts +0 -28
  712. package/lib/esm/aigne/usage.js +0 -30
  713. package/lib/esm/index.d.ts +0 -21
  714. package/lib/esm/index.js +0 -21
  715. package/lib/esm/loader/agent-js.d.ts +0 -2
  716. package/lib/esm/loader/agent-js.js +0 -18
  717. package/lib/esm/loader/agent-yaml.d.ts +0 -78
  718. package/lib/esm/loader/agent-yaml.js +0 -113
  719. package/lib/esm/loader/agents.d.ts +0 -4
  720. package/lib/esm/loader/agents.js +0 -14
  721. package/lib/esm/loader/error.d.ts +0 -2
  722. package/lib/esm/loader/error.js +0 -2
  723. package/lib/esm/loader/function-agent.d.ts +0 -2
  724. package/lib/esm/loader/function-agent.js +0 -4
  725. package/lib/esm/loader/index.d.ts +0 -251
  726. package/lib/esm/loader/index.js +0 -260
  727. package/lib/esm/loader/schema.d.ts +0 -167
  728. package/lib/esm/loader/schema.js +0 -153
  729. package/lib/esm/memory/index.d.ts +0 -3
  730. package/lib/esm/memory/index.js +0 -3
  731. package/lib/esm/memory/memory.d.ts +0 -93
  732. package/lib/esm/memory/memory.js +0 -142
  733. package/lib/esm/memory/recorder.d.ts +0 -93
  734. package/lib/esm/memory/recorder.js +0 -59
  735. package/lib/esm/memory/retriever.d.ts +0 -106
  736. package/lib/esm/memory/retriever.js +0 -56
  737. package/lib/esm/package.json +0 -3
  738. package/lib/esm/prompt/agent-session.d.ts +0 -163
  739. package/lib/esm/prompt/agent-session.js +0 -968
  740. package/lib/esm/prompt/compact/compactor.d.ts +0 -7
  741. package/lib/esm/prompt/compact/compactor.js +0 -48
  742. package/lib/esm/prompt/compact/session-memory-extractor.d.ts +0 -7
  743. package/lib/esm/prompt/compact/session-memory-extractor.js +0 -139
  744. package/lib/esm/prompt/compact/types.d.ts +0 -336
  745. package/lib/esm/prompt/compact/types.js +0 -50
  746. package/lib/esm/prompt/compact/user-memory-extractor.d.ts +0 -7
  747. package/lib/esm/prompt/compact/user-memory-extractor.js +0 -120
  748. package/lib/esm/prompt/context/afs/history.d.ts +0 -9
  749. package/lib/esm/prompt/context/afs/history.js +0 -30
  750. package/lib/esm/prompt/context/afs/index.d.ts +0 -20
  751. package/lib/esm/prompt/context/afs/index.js +0 -51
  752. package/lib/esm/prompt/context/index.d.ts +0 -31
  753. package/lib/esm/prompt/context/index.js +0 -15
  754. package/lib/esm/prompt/filters/index.d.ts +0 -2
  755. package/lib/esm/prompt/filters/index.js +0 -15
  756. package/lib/esm/prompt/prompt-builder.d.ts +0 -50
  757. package/lib/esm/prompt/prompt-builder.js +0 -348
  758. package/lib/esm/prompt/prompts/afs-builtin-prompt.d.ts +0 -4
  759. package/lib/esm/prompt/prompts/afs-builtin-prompt.js +0 -32
  760. package/lib/esm/prompt/prompts/memory-message-template.d.ts +0 -1
  761. package/lib/esm/prompt/prompts/memory-message-template.js +0 -5
  762. package/lib/esm/prompt/prompts/structured-stream-instructions.d.ts +0 -7
  763. package/lib/esm/prompt/prompts/structured-stream-instructions.js +0 -24
  764. package/lib/esm/prompt/skills/afs/agent-skill/agent-skill.d.ts +0 -19
  765. package/lib/esm/prompt/skills/afs/agent-skill/agent-skill.js +0 -65
  766. package/lib/esm/prompt/skills/afs/agent-skill/skill-loader.d.ts +0 -12
  767. package/lib/esm/prompt/skills/afs/agent-skill/skill-loader.js +0 -43
  768. package/lib/esm/prompt/skills/afs/base.d.ts +0 -4
  769. package/lib/esm/prompt/skills/afs/base.js +0 -4
  770. package/lib/esm/prompt/skills/afs/delete.d.ts +0 -19
  771. package/lib/esm/prompt/skills/afs/delete.js +0 -51
  772. package/lib/esm/prompt/skills/afs/edit.d.ts +0 -24
  773. package/lib/esm/prompt/skills/afs/edit.js +0 -118
  774. package/lib/esm/prompt/skills/afs/exec.d.ts +0 -16
  775. package/lib/esm/prompt/skills/afs/exec.js +0 -39
  776. package/lib/esm/prompt/skills/afs/index.d.ts +0 -3
  777. package/lib/esm/prompt/skills/afs/index.js +0 -23
  778. package/lib/esm/prompt/skills/afs/list.d.ts +0 -24
  779. package/lib/esm/prompt/skills/afs/list.js +0 -78
  780. package/lib/esm/prompt/skills/afs/read.d.ts +0 -28
  781. package/lib/esm/prompt/skills/afs/read.js +0 -101
  782. package/lib/esm/prompt/skills/afs/rename.d.ts +0 -21
  783. package/lib/esm/prompt/skills/afs/rename.js +0 -56
  784. package/lib/esm/prompt/skills/afs/search.d.ts +0 -24
  785. package/lib/esm/prompt/skills/afs/search.js +0 -70
  786. package/lib/esm/prompt/skills/afs/write.d.ts +0 -20
  787. package/lib/esm/prompt/skills/afs/write.js +0 -56
  788. package/lib/esm/prompt/template.d.ts +0 -243
  789. package/lib/esm/prompt/template.js +0 -249
  790. package/lib/esm/utils/agent-utils.d.ts +0 -13
  791. package/lib/esm/utils/agent-utils.js +0 -54
  792. package/lib/esm/utils/camelize.d.ts +0 -7
  793. package/lib/esm/utils/camelize.js +0 -34
  794. package/lib/esm/utils/event-stream.d.ts +0 -15
  795. package/lib/esm/utils/event-stream.js +0 -151
  796. package/lib/esm/utils/fetch.d.ts +0 -4
  797. package/lib/esm/utils/fetch.js +0 -33
  798. package/lib/esm/utils/json-schema.d.ts +0 -15
  799. package/lib/esm/utils/json-schema.js +0 -114
  800. package/lib/esm/utils/json-utils.d.ts +0 -24
  801. package/lib/esm/utils/json-utils.js +0 -41
  802. package/lib/esm/utils/logger.d.ts +0 -39
  803. package/lib/esm/utils/logger.js +0 -73
  804. package/lib/esm/utils/mcp-utils.d.ts +0 -5
  805. package/lib/esm/utils/mcp-utils.js +0 -47
  806. package/lib/esm/utils/model-utils.d.ts +0 -3
  807. package/lib/esm/utils/model-utils.js +0 -7
  808. package/lib/esm/utils/promise.d.ts +0 -6
  809. package/lib/esm/utils/promise.js +0 -9
  810. package/lib/esm/utils/prompts.d.ts +0 -2
  811. package/lib/esm/utils/prompts.js +0 -18
  812. package/lib/esm/utils/queue.d.ts +0 -57
  813. package/lib/esm/utils/queue.js +0 -315
  814. package/lib/esm/utils/role-utils.d.ts +0 -31
  815. package/lib/esm/utils/role-utils.js +0 -33
  816. package/lib/esm/utils/stream-polyfill.d.ts +0 -1
  817. package/lib/esm/utils/stream-polyfill.js +0 -37
  818. package/lib/esm/utils/stream-utils.d.ts +0 -26
  819. package/lib/esm/utils/stream-utils.js +0 -217
  820. package/lib/esm/utils/structured-stream-extractor.d.ts +0 -14
  821. package/lib/esm/utils/structured-stream-extractor.js +0 -64
  822. package/lib/esm/utils/token-estimator.d.ts +0 -9
  823. package/lib/esm/utils/token-estimator.js +0 -63
  824. package/lib/esm/utils/type-utils.d.ts +0 -31
  825. package/lib/esm/utils/type-utils.js +0 -181
  826. package/lib/esm/utils/typed-event-emitter.d.ts +0 -10
  827. package/lib/esm/utils/typed-event-emitter.js +0 -1
@@ -0,0 +1,303 @@
1
+ import { logger } from "../utils/logger.mjs";
2
+ import { checkArguments, createAccessorArray } from "../utils/type-utils.mjs";
3
+ import { Agent } from "./agent.mjs";
4
+ import { promptFromMCPPrompt, resourceFromMCPResource, toolFromMCPTool } from "../utils/mcp-utils.mjs";
5
+ import { nodejs } from "@aigne/utils/nodejs";
6
+ import { z as z$1 } from "zod";
7
+ import { optionalize } from "@aigne/afs/utils/zod";
8
+ import { createStdioClientTransport } from "@aigne/utils/mcp/stdio-client-transport";
9
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
10
+ import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
11
+ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
12
+ import { UriTemplate } from "@modelcontextprotocol/sdk/shared/uriTemplate.js";
13
+
14
+ //#region src/agents/mcp-agent.ts
15
+ const MCP_AGENT_CLIENT_NAME = "AIGNE/MCPAgent";
16
+ const MCP_AGENT_CLIENT_VERSION = "1.10.0";
17
+ const DEFAULT_MAX_RECONNECTS = 10;
18
+ const DEFAULT_TIMEOUT = () => z$1.coerce.number().int().min(0).safeParse(nodejs.env.MCP_TIMEOUT || nodejs.env.TIMEOUT).data || 6e4;
19
+ function isSSEServerParameters(options) {
20
+ return "url" in options && typeof options.url === "string";
21
+ }
22
+ function isStdioServerParameters(options) {
23
+ return "command" in options && typeof options.command === "string";
24
+ }
25
+ function getMCPServerString(options) {
26
+ if (isSSEServerParameters(options)) return options.url;
27
+ if (isStdioServerParameters(options)) return `${options.command} ${options.args?.join(" ") || ""}`;
28
+ return "unknown";
29
+ }
30
+ /**
31
+ * MCPAgent is a specialized agent for interacting with MCP (Model Context Protocol) servers.
32
+ * It provides the ability to connect to remote MCP servers using different transport methods,
33
+ * and access their tools, prompts, and resources.
34
+ *
35
+ * MCPAgent serves as a bridge between your application and MCP servers, allowing you to:
36
+ * - Connect to MCP servers over HTTP/SSE or stdio
37
+ * - Access server tools as agent skills
38
+ * - Utilize server prompts and resources
39
+ * - Manage server connections with automatic reconnection
40
+ *
41
+ * @example
42
+ * Here's an example of creating an MCPAgent with SSE transport:
43
+ * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-from-sse}
44
+ */
45
+ var MCPAgent = class MCPAgent extends Agent {
46
+ tag = "MCPAgent";
47
+ static schema() {
48
+ return z$1.object({
49
+ url: optionalize(z$1.string()),
50
+ command: optionalize(z$1.string()),
51
+ args: optionalize(z$1.array(z$1.string()))
52
+ });
53
+ }
54
+ static async load(options) {
55
+ const valid = await MCPAgent.schema().parseAsync(options.parsed);
56
+ if (!valid.url && !valid.command) throw new Error(`Missing url or command in mcp agent: ${options.filepath}`);
57
+ return MCPAgent.from({
58
+ ...options.parsed,
59
+ ...valid
60
+ });
61
+ }
62
+ static from(options) {
63
+ checkArguments("MCPAgent.from", mcpAgentOptionsSchema, options);
64
+ if (isSSEServerParameters(options)) {
65
+ const transport = () => {
66
+ if (options.transport === "streamableHttp") return new StreamableHTTPClientTransport(new URL(options.url), options.opts);
67
+ return new SSEClientTransport(new URL(options.url), options.opts);
68
+ };
69
+ return MCPAgent.fromTransport(transport, options);
70
+ }
71
+ if (isStdioServerParameters(options)) {
72
+ const transport = async () => createStdioClientTransport(options);
73
+ return MCPAgent.fromTransport(transport, options);
74
+ }
75
+ return new MCPAgent(options);
76
+ }
77
+ static async fromTransport(transportCreator, options) {
78
+ const client = new ClientWithReconnect({
79
+ name: MCP_AGENT_CLIENT_NAME,
80
+ version: MCP_AGENT_CLIENT_VERSION
81
+ }, void 0, isSSEServerParameters(options) ? {
82
+ transportCreator,
83
+ ...options
84
+ } : void 0);
85
+ const transport = await transportCreator();
86
+ logger.debug(`Connecting to MCP server: ${getMCPServerString(options)}`);
87
+ await client.connect(transport);
88
+ const mcpServer = getMCPServerName(client);
89
+ const { tools: isToolsAvailable, prompts: isPromptsAvailable, resources: isResourcesAvailable } = client.getServerCapabilities() ?? {};
90
+ logger.debug(`Listing tools from ${mcpServer}`);
91
+ const skills = isToolsAvailable ? await client.listTools().then(({ tools }) => {
92
+ logger.debug(`Listing tools from ${mcpServer} completed %O`, tools?.map((i) => i.name));
93
+ return tools.map((tool) => toolFromMCPTool(tool, { client }));
94
+ }) : void 0;
95
+ logger.debug(`Listing prompts from ${mcpServer}`);
96
+ const prompts = isPromptsAvailable ? await client.listPrompts().then(({ prompts: prompts$1 }) => {
97
+ logger.debug(`Listing prompts from ${mcpServer} completed %O`, prompts$1?.map((i) => i.name));
98
+ return prompts$1.map((prompt) => promptFromMCPPrompt(prompt, { client }));
99
+ }) : void 0;
100
+ logger.debug(`Listing resources from ${mcpServer}`);
101
+ const resources = isResourcesAvailable ? await Promise.all([client.listResources().catch(() => ({ resources: [] })), client.listResourceTemplates().catch(() => ({ resourceTemplates: [] }))]).then(([{ resources: resources$1 }, { resourceTemplates }]) => {
102
+ const result = [...resources$1, ...resourceTemplates].map((resource) => resourceFromMCPResource(resource, { client }));
103
+ logger.debug(`Listing resources from ${mcpServer} completed %O`, result.map((i) => i.name));
104
+ return result;
105
+ }) : void 0;
106
+ return new MCPAgent({
107
+ name: client.getServerVersion()?.name,
108
+ client,
109
+ skills,
110
+ prompts,
111
+ resources
112
+ });
113
+ }
114
+ /**
115
+ * Create an MCPAgent instance directly with a configured client.
116
+ *
117
+ * @param options MCPAgent configuration options, including client instance
118
+ *
119
+ * @example
120
+ * Here's an example of creating an MCPAgent with an existing client:
121
+ * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-direct}
122
+ */
123
+ constructor(options) {
124
+ super(options);
125
+ this.client = options.client;
126
+ if (options.prompts?.length) this.prompts.push(...options.prompts);
127
+ if (options.resources?.length) this.resources.push(...options.resources);
128
+ }
129
+ /**
130
+ * The MCP client instance used for communication with the MCP server.
131
+ *
132
+ * This client manages the connection to the MCP server and provides
133
+ * methods for interacting with server-provided functionality.
134
+ */
135
+ client;
136
+ /**
137
+ * Array of MCP prompts available from the connected server.
138
+ *
139
+ * Prompts can be accessed by index or by name.
140
+ *
141
+ * @example
142
+ * Here's an example of accessing prompts:
143
+ * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-prompts}
144
+ */
145
+ prompts = createAccessorArray([], (arr, name) => arr.find((i) => i.name === name));
146
+ /**
147
+ * Array of MCP resources available from the connected server.
148
+ *
149
+ * Resources can be accessed by index or by name.
150
+ *
151
+ * @example
152
+ * Here's an example of accessing resources:
153
+ * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-resources}
154
+ */
155
+ resources = createAccessorArray([], (arr, name) => arr.find((i) => i.name === name));
156
+ /**
157
+ * Check if the agent is invokable.
158
+ *
159
+ * MCPAgent itself is not directly invokable as it acts as a container
160
+ * for tools, prompts, and resources. Always returns false.
161
+ */
162
+ get isInvokable() {
163
+ return false;
164
+ }
165
+ /**
166
+ * Process method required by Agent interface.
167
+ *
168
+ * Since MCPAgent itself is not directly invokable, this method
169
+ * throws an error if called.
170
+ *
171
+ * @param _input Input message (unused)
172
+ * @param _options AgentInvokeOptions (unused)
173
+ * @throws Error This method always throws an error since MCPAgent is not directly invokable
174
+ */
175
+ async process(_input, _options) {
176
+ throw new Error("Method not implemented.");
177
+ }
178
+ /**
179
+ * Shut down the agent and close the MCP connection.
180
+ *
181
+ * This method cleans up resources and closes the connection
182
+ * to the MCP server.
183
+ *
184
+ * @example
185
+ * Here's an example of shutting down an MCPAgent:
186
+ * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-shutdown}
187
+ *
188
+ * @example
189
+ * Here's an example of shutting down an MCPAgent by using statement:
190
+ * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-shutdown-by-using}
191
+ */
192
+ async shutdown() {
193
+ await super.shutdown();
194
+ await this.client.close();
195
+ }
196
+ };
197
+ var ClientWithReconnect = class extends Client {
198
+ constructor(info, options, reconnectOptions) {
199
+ super(info, options);
200
+ this.reconnectOptions = reconnectOptions;
201
+ }
202
+ shouldReconnect({ error }) {
203
+ const { transportCreator, shouldReconnect, maxReconnects } = this.reconnectOptions || {};
204
+ if (!transportCreator || maxReconnects === 0) return false;
205
+ if (!shouldReconnect) return true;
206
+ return shouldReconnect(error);
207
+ }
208
+ async reconnect() {
209
+ const transportCreator = this.reconnectOptions?.transportCreator;
210
+ if (!transportCreator) throw new Error("reconnect requires a transportCreator");
211
+ await (await import("p-retry")).default(async () => {
212
+ await this.close();
213
+ await this.connect(await transportCreator(), { timeout: this.reconnectOptions?.timeout ?? DEFAULT_TIMEOUT() });
214
+ }, {
215
+ retries: this.reconnectOptions?.maxReconnects ?? DEFAULT_MAX_RECONNECTS,
216
+ shouldRetry: this.shouldReconnect,
217
+ onFailedAttempt: (error) => logger.error("Reconnect attempt failed: %O", error)
218
+ });
219
+ }
220
+ async request(request, resultSchema, options) {
221
+ const mergedOptions = {
222
+ ...options,
223
+ timeout: options?.timeout ?? DEFAULT_TIMEOUT()
224
+ };
225
+ try {
226
+ return await super.request(request, resultSchema, mergedOptions);
227
+ } catch (error) {
228
+ if (this.shouldReconnect(error)) {
229
+ logger.error("Error occurred, reconnecting to MCP server: %O", error);
230
+ await this.reconnect();
231
+ return await super.request(request, resultSchema, mergedOptions);
232
+ }
233
+ throw error;
234
+ }
235
+ }
236
+ };
237
+ var MCPBase = class extends Agent {
238
+ tag = "MCPBase";
239
+ constructor(options) {
240
+ super(options);
241
+ this.client = options.client;
242
+ }
243
+ client;
244
+ };
245
+ var MCPTool = class extends MCPBase {
246
+ tag = "MCPTool";
247
+ async process(input) {
248
+ return await this.client.callTool({
249
+ name: this.name,
250
+ arguments: input
251
+ });
252
+ }
253
+ };
254
+ var MCPPrompt = class extends MCPBase {
255
+ tag = "MCPPrompt";
256
+ async process(input) {
257
+ return await this.client.getPrompt({
258
+ name: this.name,
259
+ arguments: input
260
+ });
261
+ }
262
+ };
263
+ var MCPResource = class extends MCPBase {
264
+ tag = "MCPResource";
265
+ constructor(options) {
266
+ super(options);
267
+ this.uri = options.uri;
268
+ }
269
+ uri;
270
+ async process(input) {
271
+ const uri = new UriTemplate(this.uri).expand(input);
272
+ return await this.client.readResource({ uri });
273
+ }
274
+ };
275
+ function getMCPServerName(client) {
276
+ const info = client.getServerVersion();
277
+ if (!info) return void 0;
278
+ const { name, version } = info;
279
+ return `${name}@${version}`;
280
+ }
281
+ const mcpAgentOptionsSchema = z$1.union([
282
+ z$1.object({
283
+ client: z$1.instanceof(Client),
284
+ prompts: z$1.array(z$1.instanceof(MCPPrompt)).optional(),
285
+ resources: z$1.array(z$1.instanceof(MCPResource)).optional()
286
+ }),
287
+ z$1.object({
288
+ url: z$1.string(),
289
+ opts: z$1.object({}).optional(),
290
+ timeout: z$1.number().optional(),
291
+ maxReconnects: z$1.number().optional(),
292
+ shouldReconnect: z$1.custom().optional()
293
+ }),
294
+ z$1.object({
295
+ command: z$1.string(),
296
+ args: z$1.array(z$1.string()).optional(),
297
+ env: z$1.record(z$1.string(), z$1.string()).optional()
298
+ })
299
+ ]);
300
+
301
+ //#endregion
302
+ export { MCPAgent, MCPBase, MCPPrompt, MCPResource, MCPTool };
303
+ //# sourceMappingURL=mcp-agent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-agent.mjs","names":["z","prompts","resources"],"sources":["../../src/agents/mcp-agent.ts"],"sourcesContent":["import { optionalize } from \"@aigne/afs/utils/zod\";\nimport { createStdioClientTransport } from \"@aigne/utils/mcp/stdio-client-transport\";\nimport { nodejs } from \"@aigne/utils/nodejs\";\nimport { Client, type ClientOptions } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport {\n SSEClientTransport,\n type SSEClientTransportOptions,\n} from \"@modelcontextprotocol/sdk/client/sse.js\";\nimport type { StdioServerParameters } from \"@modelcontextprotocol/sdk/client/stdio.js\";\nimport {\n StreamableHTTPClientTransport,\n type StreamableHTTPClientTransportOptions,\n} from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type { RequestOptions } from \"@modelcontextprotocol/sdk/shared/protocol.js\";\nimport type { Transport } from \"@modelcontextprotocol/sdk/shared/transport.js\";\nimport { UriTemplate } from \"@modelcontextprotocol/sdk/shared/uriTemplate.js\";\nimport type {\n CallToolResult,\n GetPromptResult,\n Implementation,\n ReadResourceResult,\n Request,\n} from \"@modelcontextprotocol/sdk/types.js\";\nimport type { RetryContext } from \"p-retry\";\nimport { type ZodType, z } from \"zod\";\nimport { logger } from \"../utils/logger.js\";\nimport {\n promptFromMCPPrompt,\n resourceFromMCPResource,\n toolFromMCPTool,\n} from \"../utils/mcp-utils.js\";\nimport { checkArguments, createAccessorArray, type PromiseOrValue } from \"../utils/type-utils.js\";\nimport { Agent, type AgentInvokeOptions, type AgentOptions, type Message } from \"./agent.js\";\n\nconst MCP_AGENT_CLIENT_NAME = \"AIGNE/MCPAgent\";\nconst MCP_AGENT_CLIENT_VERSION = \"1.10.0\"; // This should match the version in package.json\nconst DEFAULT_MAX_RECONNECTS = 10;\nconst DEFAULT_TIMEOUT = () =>\n z.coerce\n .number()\n .int()\n .min(0)\n .safeParse(nodejs.env.MCP_TIMEOUT || nodejs.env.TIMEOUT).data || 60e3;\n\nexport interface MCPAgentOptions extends AgentOptions {\n client: Client;\n\n prompts?: MCPPrompt[];\n\n resources?: MCPResource[];\n}\n\nexport type MCPServerOptions = SSEServerParameters | StdioServerParameters;\n\nexport type SSEServerParameters = {\n url: string;\n\n /**\n * Whether to use the StreamableHTTPClientTransport instead of the SSEClientTransport.\n * @default \"sse\"\n */\n transport?: \"sse\" | \"streamableHttp\";\n\n /**\n * Additional options to pass to the SSEClientTransport or StreamableHTTPClientTransport.\n */\n opts?: SSEClientTransportOptions | StreamableHTTPClientTransportOptions;\n /**\n * The timeout for requests to the server, in milliseconds.\n * @default 60000\n */\n timeout?: number;\n /**\n * Whether to automatically reconnect to the server if the connection is lost.\n * @default 10 set to 0 to disable automatic reconnection\n */\n maxReconnects?: number;\n /**\n * A function that determines whether to reconnect to the server based on the error.\n * default to reconnect on all errors.\n */\n shouldReconnect?: (error: Error) => boolean;\n};\n\nfunction isSSEServerParameters(\n options: MCPAgentOptions | MCPServerOptions,\n): options is SSEServerParameters {\n return \"url\" in options && typeof options.url === \"string\";\n}\n\nfunction isStdioServerParameters(\n options: MCPAgentOptions | MCPServerOptions,\n): options is StdioServerParameters {\n return \"command\" in options && typeof options.command === \"string\";\n}\n\nfunction getMCPServerString(options: MCPAgentOptions | MCPServerOptions): string {\n if (isSSEServerParameters(options)) {\n return options.url;\n }\n\n if (isStdioServerParameters(options)) {\n return `${options.command} ${options.args?.join(\" \") || \"\"}`;\n }\n\n return \"unknown\";\n}\n\n/**\n * MCPAgent is a specialized agent for interacting with MCP (Model Context Protocol) servers.\n * It provides the ability to connect to remote MCP servers using different transport methods,\n * and access their tools, prompts, and resources.\n *\n * MCPAgent serves as a bridge between your application and MCP servers, allowing you to:\n * - Connect to MCP servers over HTTP/SSE or stdio\n * - Access server tools as agent skills\n * - Utilize server prompts and resources\n * - Manage server connections with automatic reconnection\n *\n * @example\n * Here's an example of creating an MCPAgent with SSE transport:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-from-sse}\n */\nexport class MCPAgent extends Agent {\n override tag = \"MCPAgent\";\n\n static schema() {\n return z.object({\n url: optionalize(z.string()),\n command: optionalize(z.string()),\n args: optionalize(z.array(z.string())),\n });\n }\n\n static override async load<I extends Message = any, O extends Message = any>(options: {\n filepath: string;\n parsed: object;\n }): Promise<Agent<I, O>> {\n const valid = await MCPAgent.schema().parseAsync(options.parsed);\n\n if (!valid.url && !valid.command) {\n throw new Error(`Missing url or command in mcp agent: ${options.filepath}`);\n }\n\n return MCPAgent.from({\n ...options.parsed,\n ...valid,\n } as any) as any;\n }\n\n /**\n * Create an MCPAgent from a connection to an SSE server.\n *\n * This overload establishes a Server-Sent Events connection to an MCP server\n * and automatically discovers its available tools, prompts, and resources.\n *\n * @param options SSE server connection parameters\n * @returns Promise resolving to a new MCPAgent instance\n *\n * @example\n * Here's an example of creating an MCPAgent with StreamableHTTP transport:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-from-streamable-http}\n *\n * @example\n * Here's an example of creating an MCPAgent with SSE transport:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-from-sse}\n *\n * @example\n * Here's an example of creating an MCPAgent with Stdio transport:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-from-stdio}\n */\n static from(options: MCPServerOptions): Promise<MCPAgent>;\n\n /**\n * Create an MCPAgent from a pre-configured MCP client.\n *\n * This overload uses an existing MCP client instance and optionally\n * pre-defined prompts and resources.\n *\n * @param options MCPAgent configuration with client instance\n * @returns A new MCPAgent instance\n *\n * @example\n * Here's an example of creating an MCPAgent with a client instance:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-direct}\n */\n static from(options: MCPAgentOptions): MCPAgent;\n\n static from(options: MCPAgentOptions | MCPServerOptions): MCPAgent | Promise<MCPAgent> {\n checkArguments(\"MCPAgent.from\", mcpAgentOptionsSchema, options);\n\n if (isSSEServerParameters(options)) {\n const transport = () => {\n if (options.transport === \"streamableHttp\") {\n return new StreamableHTTPClientTransport(new URL(options.url), options.opts);\n }\n return new SSEClientTransport(new URL(options.url), options.opts);\n };\n\n return MCPAgent.fromTransport(transport, options);\n }\n\n if (isStdioServerParameters(options)) {\n const transport = async () => createStdioClientTransport(options);\n return MCPAgent.fromTransport(transport, options);\n }\n\n return new MCPAgent(options);\n }\n\n private static async fromTransport(\n transportCreator: () => PromiseOrValue<Transport>,\n options: MCPAgentOptions | MCPServerOptions,\n ): Promise<MCPAgent> {\n const client = new ClientWithReconnect(\n {\n name: MCP_AGENT_CLIENT_NAME,\n version: MCP_AGENT_CLIENT_VERSION,\n },\n undefined,\n isSSEServerParameters(options) ? { transportCreator, ...options } : undefined,\n );\n\n const transport = await transportCreator();\n\n logger.debug(`Connecting to MCP server: ${getMCPServerString(options)}`);\n await client.connect(transport);\n\n const mcpServer = getMCPServerName(client);\n\n const {\n tools: isToolsAvailable,\n prompts: isPromptsAvailable,\n resources: isResourcesAvailable,\n } = client.getServerCapabilities() ?? {};\n\n logger.debug(`Listing tools from ${mcpServer}`);\n const skills = isToolsAvailable\n ? await client.listTools().then(({ tools }) => {\n logger.debug(\n `Listing tools from ${mcpServer} completed %O`,\n tools?.map((i) => i.name),\n );\n return tools.map((tool) => toolFromMCPTool(tool, { client }));\n })\n : undefined;\n\n logger.debug(`Listing prompts from ${mcpServer}`);\n const prompts = isPromptsAvailable\n ? await client.listPrompts().then(({ prompts }) => {\n logger.debug(\n `Listing prompts from ${mcpServer} completed %O`,\n prompts?.map((i) => i.name),\n );\n return prompts.map((prompt) => promptFromMCPPrompt(prompt, { client }));\n })\n : undefined;\n\n logger.debug(`Listing resources from ${mcpServer}`);\n // TODO: should conditionally call listResourceTemplates based on the server capabilities\n // but the capability is not correct in the current SDK version\n const resources = isResourcesAvailable\n ? await Promise.all([\n client.listResources().catch(() => ({ resources: [] })),\n client.listResourceTemplates().catch(() => ({ resourceTemplates: [] })),\n ]).then(([{ resources }, { resourceTemplates }]) => {\n const result = [...resources, ...resourceTemplates].map((resource) =>\n resourceFromMCPResource(resource, { client }),\n );\n logger.debug(\n `Listing resources from ${mcpServer} completed %O`,\n result.map((i) => i.name),\n );\n return result;\n })\n : undefined;\n\n return new MCPAgent({\n name: client.getServerVersion()?.name,\n client,\n skills,\n prompts,\n resources,\n });\n }\n\n /**\n * Create an MCPAgent instance directly with a configured client.\n *\n * @param options MCPAgent configuration options, including client instance\n *\n * @example\n * Here's an example of creating an MCPAgent with an existing client:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-direct}\n */\n constructor(options: MCPAgentOptions) {\n super(options);\n\n this.client = options.client;\n if (options.prompts?.length) this.prompts.push(...options.prompts);\n if (options.resources?.length) this.resources.push(...options.resources);\n }\n\n /**\n * The MCP client instance used for communication with the MCP server.\n *\n * This client manages the connection to the MCP server and provides\n * methods for interacting with server-provided functionality.\n */\n client: Client;\n\n /**\n * Array of MCP prompts available from the connected server.\n *\n * Prompts can be accessed by index or by name.\n *\n * @example\n * Here's an example of accessing prompts:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-prompts}\n */\n readonly prompts = createAccessorArray<MCPPrompt>([], (arr, name) =>\n arr.find((i) => i.name === name),\n );\n\n /**\n * Array of MCP resources available from the connected server.\n *\n * Resources can be accessed by index or by name.\n *\n * @example\n * Here's an example of accessing resources:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-resources}\n */\n readonly resources = createAccessorArray<MCPResource>([], (arr, name) =>\n arr.find((i) => i.name === name),\n );\n\n /**\n * Check if the agent is invokable.\n *\n * MCPAgent itself is not directly invokable as it acts as a container\n * for tools, prompts, and resources. Always returns false.\n */\n override get isInvokable(): boolean {\n return false;\n }\n\n /**\n * Process method required by Agent interface.\n *\n * Since MCPAgent itself is not directly invokable, this method\n * throws an error if called.\n *\n * @param _input Input message (unused)\n * @param _options AgentInvokeOptions (unused)\n * @throws Error This method always throws an error since MCPAgent is not directly invokable\n */\n async process(_input: Message, _options: AgentInvokeOptions): Promise<Message> {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Shut down the agent and close the MCP connection.\n *\n * This method cleans up resources and closes the connection\n * to the MCP server.\n *\n * @example\n * Here's an example of shutting down an MCPAgent:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-shutdown}\n *\n * @example\n * Here's an example of shutting down an MCPAgent by using statement:\n * {@includeCode ../../test/agents/mcp-agent.test.ts#example-mcp-agent-shutdown-by-using}\n */\n override async shutdown() {\n await super.shutdown();\n await this.client.close();\n }\n}\n\nexport interface ClientWithReconnectOptions {\n transportCreator?: () => PromiseOrValue<Transport>;\n timeout?: number;\n maxReconnects?: number;\n shouldReconnect?: (error: Error) => boolean;\n}\n\nclass ClientWithReconnect extends Client {\n constructor(\n info: Implementation,\n options?: ClientOptions,\n private reconnectOptions?: ClientWithReconnectOptions,\n ) {\n super(info, options);\n }\n\n private shouldReconnect({ error }: RetryContext): boolean {\n const { transportCreator, shouldReconnect, maxReconnects } = this.reconnectOptions || {};\n\n if (!transportCreator || maxReconnects === 0) return false;\n if (!shouldReconnect) return true; // default to reconnect on all errors\n\n return shouldReconnect(error);\n }\n\n private async reconnect() {\n const transportCreator = this.reconnectOptions?.transportCreator;\n if (!transportCreator) throw new Error(\"reconnect requires a transportCreator\");\n\n const retry = await import(\"p-retry\");\n await retry.default(\n async () => {\n await this.close();\n await this.connect(await transportCreator(), {\n timeout: this.reconnectOptions?.timeout ?? DEFAULT_TIMEOUT(),\n });\n },\n {\n retries: this.reconnectOptions?.maxReconnects ?? DEFAULT_MAX_RECONNECTS,\n shouldRetry: this.shouldReconnect,\n onFailedAttempt: (error) => logger.error(\"Reconnect attempt failed: %O\", error),\n },\n );\n }\n\n override async request<T extends ZodType<object>>(\n request: Request,\n resultSchema: T,\n options?: RequestOptions,\n ): Promise<z.infer<T>> {\n const mergedOptions: RequestOptions = {\n ...options,\n timeout: options?.timeout ?? DEFAULT_TIMEOUT(),\n };\n\n try {\n return await super.request(request, resultSchema, mergedOptions);\n } catch (error) {\n if (this.shouldReconnect(error)) {\n logger.error(\"Error occurred, reconnecting to MCP server: %O\", error);\n await this.reconnect();\n return await super.request(request, resultSchema, mergedOptions);\n }\n throw error;\n }\n }\n}\n\nexport interface MCPBaseOptions<I extends Message = any, O extends Message = any>\n extends AgentOptions<I, O> {\n client: ClientWithReconnect;\n}\n\nexport abstract class MCPBase<I extends Message, O extends Message> extends Agent<I, O> {\n override tag = \"MCPBase\";\n\n constructor(options: MCPBaseOptions<I, O>) {\n super(options);\n this.client = options.client;\n }\n\n protected client: ClientWithReconnect;\n}\n\nexport class MCPTool extends MCPBase<Message, CallToolResult> {\n override tag = \"MCPTool\";\n\n async process(input: Message): Promise<CallToolResult> {\n const result = await this.client.callTool({ name: this.name, arguments: input });\n\n return result as CallToolResult;\n }\n}\n\nexport interface MCPPromptInput extends Record<string, unknown> {\n [key: string]: string;\n}\n\nexport class MCPPrompt extends MCPBase<MCPPromptInput, GetPromptResult> {\n override tag = \"MCPPrompt\";\n\n async process(input: MCPPromptInput): Promise<GetPromptResult> {\n const result = await this.client.getPrompt({ name: this.name, arguments: input });\n\n return result;\n }\n}\n\nexport interface MCPResourceOptions extends MCPBaseOptions<MCPPromptInput, ReadResourceResult> {\n uri: string;\n}\n\nexport class MCPResource extends MCPBase<MCPPromptInput, ReadResourceResult> {\n override tag = \"MCPResource\";\n\n constructor(options: MCPResourceOptions) {\n super(options);\n this.uri = options.uri;\n }\n\n uri: string;\n\n async process(input: MCPPromptInput): Promise<ReadResourceResult> {\n const uri = new UriTemplate(this.uri).expand(input);\n\n const result = await this.client.readResource({ uri });\n\n return result;\n }\n}\n\nfunction getMCPServerName(client: Client): string | undefined {\n const info = client.getServerVersion();\n if (!info) return undefined;\n\n const { name, version } = info;\n return `${name}@${version}`;\n}\n\nconst mcpAgentOptionsSchema: ZodType<\n MCPAgentOptions | SSEServerParameters | StdioServerParameters\n> = z.union([\n z.object({\n client: z.instanceof(Client),\n prompts: z.array(z.instanceof(MCPPrompt)).optional(),\n resources: z.array(z.instanceof(MCPResource)).optional(),\n }),\n z.object({\n url: z.string(),\n opts: z.object({}).optional(),\n timeout: z.number().optional(),\n maxReconnects: z.number().optional(),\n shouldReconnect: z.custom<SSEServerParameters[\"shouldReconnect\"]>().optional(),\n }),\n z.object({\n command: z.string(),\n args: z.array(z.string()).optional(),\n env: z.record(z.string(), z.string()).optional(),\n }),\n]);\n"],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_utils_type_utils = require('../utils/type-utils.cjs');
3
+ const require_agent = require('./agent.cjs');
4
+ const require_utils_fetch = require('../utils/fetch.cjs');
5
+ let _aigne_utils_nodejs = require("@aigne/utils/nodejs");
6
+ let ufo = require("ufo");
7
+ let zod = require("zod");
8
+ let _aigne_afs_utils_zod = require("@aigne/afs/utils/zod");
9
+ let _aigne_uuid = require("@aigne/uuid");
10
+
11
+ //#region src/agents/model.ts
12
+ var Model = class Model extends require_agent.Agent {
13
+ constructor(options) {
14
+ super(options);
15
+ this.options = options;
16
+ }
17
+ /**
18
+ * Resolves model options by merging instance-level and input-level options,
19
+ * and recursively resolving getter patterns
20
+ *
21
+ * @param input - The input message containing potential modelOptions
22
+ * @param options - The agent invocation options containing context
23
+ * @returns Resolved model options with all getters replaced by actual values
24
+ */
25
+ async getModelOptions(input, options) {
26
+ const resolveGetters = (obj) => {
27
+ if (!obj || typeof obj !== "object") return obj;
28
+ if (require_agent.DEFAULT_INPUT_ACTION_GET in obj && typeof obj[require_agent.DEFAULT_INPUT_ACTION_GET] === "string") {
29
+ const getterPath = obj[require_agent.DEFAULT_INPUT_ACTION_GET];
30
+ const value = input[getterPath] ?? options.context.userContext[getterPath];
31
+ return require_utils_type_utils.isNil(value) ? void 0 : value;
32
+ }
33
+ if (Array.isArray(obj)) return obj.map((item) => resolveGetters(item));
34
+ return Object.entries(obj).reduce((resolved, [key, val]) => {
35
+ const resolvedValue = resolveGetters(val);
36
+ if (!require_utils_type_utils.isNil(resolvedValue)) resolved[key] = resolvedValue;
37
+ return resolved;
38
+ }, {});
39
+ };
40
+ return resolveGetters({
41
+ ...this.options?.modelOptions,
42
+ ..."modelOptions" in input ? input.modelOptions : {}
43
+ });
44
+ }
45
+ async preprocess(input, options) {
46
+ Object.assign(input, { modelOptions: await this.getModelOptions(input, options) });
47
+ return super.preprocess(input, options);
48
+ }
49
+ async transformFileType(fileType = "local", data) {
50
+ if (fileType === data.type) return data;
51
+ const common = require_utils_type_utils.pick(data, "filename", "mimeType");
52
+ switch (fileType) {
53
+ case "local": {
54
+ const dir = _aigne_utils_nodejs.nodejs.path.join(_aigne_utils_nodejs.nodejs.os.tmpdir(), (0, _aigne_uuid.v7)());
55
+ await _aigne_utils_nodejs.nodejs.fs.mkdir(dir, { recursive: true });
56
+ const ext = await Model.getFileExtension(data.mimeType || data.filename || "");
57
+ const id = (0, _aigne_uuid.v7)();
58
+ const filename = ext ? `${id}.${ext}` : id;
59
+ const path = _aigne_utils_nodejs.nodejs.path.join(dir, filename);
60
+ let mimeType = data.mimeType;
61
+ if (data.type === "file") {
62
+ await _aigne_utils_nodejs.nodejs.fs.writeFile(path, data.data, "base64");
63
+ mimeType ||= await Model.getMimeType(data.filename || "");
64
+ } else if (data.type === "url") {
65
+ await this.downloadFile(data.url).then((res) => res.body).then((body) => body && _aigne_utils_nodejs.nodejs.fs.writeFile(path, body));
66
+ mimeType ||= await Model.getMimeType(data.filename || (0, ufo.parseURL)(data.url).pathname);
67
+ } else throw new Error(`Unexpected file type: ${data.type}`);
68
+ return {
69
+ ...common,
70
+ type: "local",
71
+ path,
72
+ mimeType
73
+ };
74
+ }
75
+ case "file": {
76
+ let base64;
77
+ let mimeType = data.mimeType;
78
+ if (data.type === "local") {
79
+ base64 = await _aigne_utils_nodejs.nodejs.fs.readFile(data.path, "base64");
80
+ mimeType ||= await Model.getMimeType(data.filename || data.path);
81
+ } else if (data.type === "url") {
82
+ base64 = Buffer.from(await (await this.downloadFile(data.url)).arrayBuffer()).toString("base64");
83
+ mimeType ||= await Model.getMimeType(data.filename || (0, ufo.parseURL)(data.url).pathname);
84
+ } else throw new Error(`Unexpected file type: ${data.type}`);
85
+ return {
86
+ ...common,
87
+ type: "file",
88
+ data: base64,
89
+ mimeType
90
+ };
91
+ }
92
+ default: return data;
93
+ }
94
+ }
95
+ static async getFileExtension(type) {
96
+ const { default: mime } = await import("mime");
97
+ return mime.getExtension(type) || void 0;
98
+ }
99
+ static async getMimeType(filename) {
100
+ const { default: mime } = await import("mime");
101
+ return mime.getType(filename) || void 0;
102
+ }
103
+ async downloadFile(url) {
104
+ return await require_utils_fetch.fetch(url);
105
+ }
106
+ };
107
+ const fileTypeSchema = zod.z.enum([
108
+ "local",
109
+ "file",
110
+ "url"
111
+ ]);
112
+ const fileContentBaseSchema = zod.z.object({
113
+ filename: (0, _aigne_afs_utils_zod.optionalize)(zod.z.string()),
114
+ mimeType: (0, _aigne_afs_utils_zod.optionalize)(zod.z.string())
115
+ });
116
+ const urlContentSchema = fileContentBaseSchema.extend({
117
+ type: zod.z.literal("url"),
118
+ url: zod.z.string()
119
+ });
120
+ const fileContentSchema = fileContentBaseSchema.extend({
121
+ type: zod.z.literal("file"),
122
+ data: zod.z.string()
123
+ });
124
+ const localContentSchema = fileContentBaseSchema.extend({
125
+ type: zod.z.literal("local"),
126
+ path: zod.z.string()
127
+ });
128
+ const fileUnionContentSchema = zod.z.discriminatedUnion("type", [
129
+ localContentSchema,
130
+ urlContentSchema,
131
+ fileContentSchema
132
+ ]);
133
+ const fileUnionContentsSchema = zod.z.union([fileUnionContentSchema, zod.z.array(fileUnionContentSchema)]);
134
+
135
+ //#endregion
136
+ exports.Model = Model;
137
+ exports.fileContentBaseSchema = fileContentBaseSchema;
138
+ exports.fileContentSchema = fileContentSchema;
139
+ exports.fileTypeSchema = fileTypeSchema;
140
+ exports.fileUnionContentSchema = fileUnionContentSchema;
141
+ exports.fileUnionContentsSchema = fileUnionContentsSchema;
142
+ exports.localContentSchema = localContentSchema;
143
+ exports.urlContentSchema = urlContentSchema;