@copilotkit/runtime 2.0.0-next.1 → 2.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +135 -1
  3. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  4. package/dist/_virtual/_rolldown/runtime.mjs +20 -0
  5. package/dist/agent/converters/aisdk.cjs +355 -0
  6. package/dist/agent/converters/aisdk.cjs.map +1 -0
  7. package/dist/agent/converters/aisdk.d.cts +22 -0
  8. package/dist/agent/converters/aisdk.d.cts.map +1 -0
  9. package/dist/agent/converters/aisdk.d.mts +22 -0
  10. package/dist/agent/converters/aisdk.d.mts.map +1 -0
  11. package/dist/agent/converters/aisdk.mjs +351 -0
  12. package/dist/agent/converters/aisdk.mjs.map +1 -0
  13. package/dist/agent/converters/index.d.mts +2 -0
  14. package/dist/agent/converters/tanstack.cjs +374 -0
  15. package/dist/agent/converters/tanstack.cjs.map +1 -0
  16. package/dist/agent/converters/tanstack.d.cts +83 -0
  17. package/dist/agent/converters/tanstack.d.cts.map +1 -0
  18. package/dist/agent/converters/tanstack.d.mts +83 -0
  19. package/dist/agent/converters/tanstack.d.mts.map +1 -0
  20. package/dist/agent/converters/tanstack.mjs +372 -0
  21. package/dist/agent/converters/tanstack.mjs.map +1 -0
  22. package/dist/agent/converters/usage.cjs +68 -0
  23. package/dist/agent/converters/usage.cjs.map +1 -0
  24. package/dist/agent/converters/usage.d.cts +19 -0
  25. package/dist/agent/converters/usage.d.cts.map +1 -0
  26. package/dist/agent/converters/usage.d.mts +19 -0
  27. package/dist/agent/converters/usage.d.mts.map +1 -0
  28. package/dist/agent/converters/usage.mjs +62 -0
  29. package/dist/agent/converters/usage.mjs.map +1 -0
  30. package/dist/agent/index.cjs +1328 -0
  31. package/dist/agent/index.cjs.map +1 -0
  32. package/dist/agent/index.d.cts +467 -0
  33. package/dist/agent/index.d.cts.map +1 -0
  34. package/dist/agent/index.d.mts +468 -0
  35. package/dist/agent/index.d.mts.map +1 -0
  36. package/dist/agent/index.mjs +1318 -0
  37. package/dist/agent/index.mjs.map +1 -0
  38. package/dist/agent/learned-skills.cjs +76 -0
  39. package/dist/agent/learned-skills.cjs.map +1 -0
  40. package/dist/agent/learned-skills.d.cts +15 -0
  41. package/dist/agent/learned-skills.d.cts.map +1 -0
  42. package/dist/agent/learned-skills.d.mts +15 -0
  43. package/dist/agent/learned-skills.d.mts.map +1 -0
  44. package/dist/agent/learned-skills.mjs +74 -0
  45. package/dist/agent/learned-skills.mjs.map +1 -0
  46. package/dist/agent/mcp-tool-names.cjs +82 -0
  47. package/dist/agent/mcp-tool-names.cjs.map +1 -0
  48. package/dist/agent/mcp-tool-names.mjs +80 -0
  49. package/dist/agent/mcp-tool-names.mjs.map +1 -0
  50. package/dist/agent/state-delta.cjs +321 -0
  51. package/dist/agent/state-delta.cjs.map +1 -0
  52. package/dist/agent/state-delta.mjs +320 -0
  53. package/dist/agent/state-delta.mjs.map +1 -0
  54. package/dist/agent/url-download.cjs +503 -0
  55. package/dist/agent/url-download.cjs.map +1 -0
  56. package/dist/agent/url-download.d.cts +79 -0
  57. package/dist/agent/url-download.d.cts.map +1 -0
  58. package/dist/agent/url-download.d.mts +79 -0
  59. package/dist/agent/url-download.d.mts.map +1 -0
  60. package/dist/agent/url-download.mjs +500 -0
  61. package/dist/agent/url-download.mjs.map +1 -0
  62. package/dist/express.cjs +7 -0
  63. package/dist/express.d.cts +4 -0
  64. package/dist/express.d.mts +4 -0
  65. package/dist/express.mjs +4 -0
  66. package/dist/hono.cjs +8 -0
  67. package/dist/hono.d.cts +4 -0
  68. package/dist/hono.d.mts +4 -0
  69. package/dist/hono.mjs +4 -0
  70. package/dist/index.cjs +86 -0
  71. package/dist/index.d.cts +28 -0
  72. package/dist/index.d.mts +28 -0
  73. package/dist/index.mjs +21 -5598
  74. package/dist/internal/learned-skills.cjs +21 -0
  75. package/dist/internal/learned-skills.d.cts +9 -0
  76. package/dist/internal/learned-skills.d.mts +9 -0
  77. package/dist/internal/learned-skills.mjs +9 -0
  78. package/dist/node.cjs +7 -0
  79. package/dist/node.d.cts +4 -0
  80. package/dist/node.d.mts +4 -0
  81. package/dist/node.mjs +4 -0
  82. package/dist/runtime/core/channel-activation-config.cjs +87 -0
  83. package/dist/runtime/core/channel-activation-config.cjs.map +1 -0
  84. package/dist/runtime/core/channel-activation-config.d.cts +39 -0
  85. package/dist/runtime/core/channel-activation-config.d.cts.map +1 -0
  86. package/dist/runtime/core/channel-activation-config.d.mts +39 -0
  87. package/dist/runtime/core/channel-activation-config.d.mts.map +1 -0
  88. package/dist/runtime/core/channel-activation-config.mjs +85 -0
  89. package/dist/runtime/core/channel-activation-config.mjs.map +1 -0
  90. package/dist/runtime/core/channel-manager.cjs +973 -0
  91. package/dist/runtime/core/channel-manager.cjs.map +1 -0
  92. package/dist/runtime/core/channel-manager.d.cts +166 -0
  93. package/dist/runtime/core/channel-manager.d.cts.map +1 -0
  94. package/dist/runtime/core/channel-manager.d.mts +167 -0
  95. package/dist/runtime/core/channel-manager.d.mts.map +1 -0
  96. package/dist/runtime/core/channel-manager.mjs +972 -0
  97. package/dist/runtime/core/channel-manager.mjs.map +1 -0
  98. package/dist/runtime/core/debug-event-bus.cjs +57 -0
  99. package/dist/runtime/core/debug-event-bus.cjs.map +1 -0
  100. package/dist/runtime/core/debug-event-bus.d.cts +18 -0
  101. package/dist/runtime/core/debug-event-bus.d.cts.map +1 -0
  102. package/dist/runtime/core/debug-event-bus.d.mts +18 -0
  103. package/dist/runtime/core/debug-event-bus.d.mts.map +1 -0
  104. package/dist/runtime/core/debug-event-bus.mjs +55 -0
  105. package/dist/runtime/core/debug-event-bus.mjs.map +1 -0
  106. package/dist/runtime/core/fetch-cors.cjs +71 -0
  107. package/dist/runtime/core/fetch-cors.cjs.map +1 -0
  108. package/dist/runtime/core/fetch-cors.d.cts +19 -0
  109. package/dist/runtime/core/fetch-cors.d.cts.map +1 -0
  110. package/dist/runtime/core/fetch-cors.d.mts +19 -0
  111. package/dist/runtime/core/fetch-cors.d.mts.map +1 -0
  112. package/dist/runtime/core/fetch-cors.mjs +69 -0
  113. package/dist/runtime/core/fetch-cors.mjs.map +1 -0
  114. package/dist/runtime/core/fetch-handler.cjs +539 -0
  115. package/dist/runtime/core/fetch-handler.cjs.map +1 -0
  116. package/dist/runtime/core/fetch-handler.d.cts +100 -0
  117. package/dist/runtime/core/fetch-handler.d.cts.map +1 -0
  118. package/dist/runtime/core/fetch-handler.d.mts +100 -0
  119. package/dist/runtime/core/fetch-handler.d.mts.map +1 -0
  120. package/dist/runtime/core/fetch-handler.mjs +538 -0
  121. package/dist/runtime/core/fetch-handler.mjs.map +1 -0
  122. package/dist/runtime/core/fetch-router.cjs +141 -0
  123. package/dist/runtime/core/fetch-router.cjs.map +1 -0
  124. package/dist/runtime/core/fetch-router.mjs +140 -0
  125. package/dist/runtime/core/fetch-router.mjs.map +1 -0
  126. package/dist/runtime/core/hooks.cjs +28 -0
  127. package/dist/runtime/core/hooks.cjs.map +1 -0
  128. package/dist/runtime/core/hooks.d.cts +121 -0
  129. package/dist/runtime/core/hooks.d.cts.map +1 -0
  130. package/dist/runtime/core/hooks.d.mts +121 -0
  131. package/dist/runtime/core/hooks.d.mts.map +1 -0
  132. package/dist/runtime/core/hooks.mjs +24 -0
  133. package/dist/runtime/core/hooks.mjs.map +1 -0
  134. package/dist/runtime/core/learning.cjs +61 -0
  135. package/dist/runtime/core/learning.cjs.map +1 -0
  136. package/dist/runtime/core/learning.d.cts +61 -0
  137. package/dist/runtime/core/learning.d.cts.map +1 -0
  138. package/dist/runtime/core/learning.d.mts +61 -0
  139. package/dist/runtime/core/learning.d.mts.map +1 -0
  140. package/dist/runtime/core/learning.mjs +56 -0
  141. package/dist/runtime/core/learning.mjs.map +1 -0
  142. package/dist/runtime/core/logger.cjs +21 -0
  143. package/dist/runtime/core/logger.cjs.map +1 -0
  144. package/dist/runtime/core/logger.d.cts +12 -0
  145. package/dist/runtime/core/logger.d.cts.map +1 -0
  146. package/dist/runtime/core/logger.d.mts +12 -0
  147. package/dist/runtime/core/logger.d.mts.map +1 -0
  148. package/dist/runtime/core/logger.mjs +18 -0
  149. package/dist/runtime/core/logger.mjs.map +1 -0
  150. package/dist/runtime/core/middleware-sse-parser.cjs +149 -0
  151. package/dist/runtime/core/middleware-sse-parser.cjs.map +1 -0
  152. package/dist/runtime/core/middleware-sse-parser.d.cts +21 -0
  153. package/dist/runtime/core/middleware-sse-parser.d.cts.map +1 -0
  154. package/dist/runtime/core/middleware-sse-parser.d.mts +21 -0
  155. package/dist/runtime/core/middleware-sse-parser.d.mts.map +1 -0
  156. package/dist/runtime/core/middleware-sse-parser.mjs +148 -0
  157. package/dist/runtime/core/middleware-sse-parser.mjs.map +1 -0
  158. package/dist/runtime/core/middleware.cjs +34 -0
  159. package/dist/runtime/core/middleware.cjs.map +1 -0
  160. package/dist/runtime/core/middleware.d.cts +31 -0
  161. package/dist/runtime/core/middleware.d.cts.map +1 -0
  162. package/dist/runtime/core/middleware.d.mts +31 -0
  163. package/dist/runtime/core/middleware.d.mts.map +1 -0
  164. package/dist/runtime/core/middleware.mjs +32 -0
  165. package/dist/runtime/core/middleware.mjs.map +1 -0
  166. package/dist/runtime/core/package-info.cjs +9 -0
  167. package/dist/runtime/core/package-info.cjs.map +1 -0
  168. package/dist/runtime/core/package-info.mjs +7 -0
  169. package/dist/runtime/core/package-info.mjs.map +1 -0
  170. package/dist/runtime/core/runtime-error-reporter.cjs +21 -0
  171. package/dist/runtime/core/runtime-error-reporter.cjs.map +1 -0
  172. package/dist/runtime/core/runtime-error-reporter.mjs +18 -0
  173. package/dist/runtime/core/runtime-error-reporter.mjs.map +1 -0
  174. package/dist/runtime/core/runtime.cjs +256 -0
  175. package/dist/runtime/core/runtime.cjs.map +1 -0
  176. package/dist/runtime/core/runtime.d.cts +481 -0
  177. package/dist/runtime/core/runtime.d.cts.map +1 -0
  178. package/dist/runtime/core/runtime.d.mts +481 -0
  179. package/dist/runtime/core/runtime.d.mts.map +1 -0
  180. package/dist/runtime/core/runtime.mjs +249 -0
  181. package/dist/runtime/core/runtime.mjs.map +1 -0
  182. package/dist/runtime/endpoints/auto-start-channels.cjs +46 -0
  183. package/dist/runtime/endpoints/auto-start-channels.cjs.map +1 -0
  184. package/dist/runtime/endpoints/auto-start-channels.mjs +45 -0
  185. package/dist/runtime/endpoints/auto-start-channels.mjs.map +1 -0
  186. package/dist/runtime/endpoints/express-single.cjs +43 -0
  187. package/dist/runtime/endpoints/express-single.cjs.map +1 -0
  188. package/dist/runtime/endpoints/express-single.d.cts +48 -0
  189. package/dist/runtime/endpoints/express-single.d.cts.map +1 -0
  190. package/dist/runtime/endpoints/express-single.d.mts +48 -0
  191. package/dist/runtime/endpoints/express-single.d.mts.map +1 -0
  192. package/dist/runtime/endpoints/express-single.mjs +43 -0
  193. package/dist/runtime/endpoints/express-single.mjs.map +1 -0
  194. package/dist/runtime/endpoints/express.cjs +68 -0
  195. package/dist/runtime/endpoints/express.cjs.map +1 -0
  196. package/dist/runtime/endpoints/express.d.cts +84 -0
  197. package/dist/runtime/endpoints/express.d.cts.map +1 -0
  198. package/dist/runtime/endpoints/express.d.mts +84 -0
  199. package/dist/runtime/endpoints/express.d.mts.map +1 -0
  200. package/dist/runtime/endpoints/express.mjs +66 -0
  201. package/dist/runtime/endpoints/express.mjs.map +1 -0
  202. package/dist/runtime/endpoints/hono-single.cjs +28 -0
  203. package/dist/runtime/endpoints/hono-single.cjs.map +1 -0
  204. package/dist/runtime/endpoints/hono-single.d.cts +43 -0
  205. package/dist/runtime/endpoints/hono-single.d.cts.map +1 -0
  206. package/dist/runtime/endpoints/hono-single.d.mts +43 -0
  207. package/dist/runtime/endpoints/hono-single.d.mts.map +1 -0
  208. package/dist/runtime/endpoints/hono-single.mjs +27 -0
  209. package/dist/runtime/endpoints/hono-single.mjs.map +1 -0
  210. package/dist/runtime/endpoints/hono.cjs +37 -0
  211. package/dist/runtime/endpoints/hono.cjs.map +1 -0
  212. package/dist/runtime/endpoints/hono.d.cts +96 -0
  213. package/dist/runtime/endpoints/hono.d.cts.map +1 -0
  214. package/dist/runtime/endpoints/hono.d.mts +96 -0
  215. package/dist/runtime/endpoints/hono.d.mts.map +1 -0
  216. package/dist/runtime/endpoints/hono.mjs +34 -0
  217. package/dist/runtime/endpoints/hono.mjs.map +1 -0
  218. package/dist/runtime/endpoints/index.d.cts +4 -0
  219. package/dist/runtime/endpoints/index.d.mts +4 -0
  220. package/dist/runtime/endpoints/load-express.cjs +35 -0
  221. package/dist/runtime/endpoints/load-express.cjs.map +1 -0
  222. package/dist/runtime/endpoints/load-express.mjs +34 -0
  223. package/dist/runtime/endpoints/load-express.mjs.map +1 -0
  224. package/dist/runtime/endpoints/node-fetch-handler.cjs +75 -0
  225. package/dist/runtime/endpoints/node-fetch-handler.cjs.map +1 -0
  226. package/dist/runtime/endpoints/node-fetch-handler.d.cts +11 -0
  227. package/dist/runtime/endpoints/node-fetch-handler.d.cts.map +1 -0
  228. package/dist/runtime/endpoints/node-fetch-handler.d.mts +11 -0
  229. package/dist/runtime/endpoints/node-fetch-handler.d.mts.map +1 -0
  230. package/dist/runtime/endpoints/node-fetch-handler.mjs +73 -0
  231. package/dist/runtime/endpoints/node-fetch-handler.mjs.map +1 -0
  232. package/dist/runtime/endpoints/node.cjs +16 -0
  233. package/dist/runtime/endpoints/node.cjs.map +1 -0
  234. package/dist/runtime/endpoints/node.d.cts +104 -0
  235. package/dist/runtime/endpoints/node.d.cts.map +1 -0
  236. package/dist/runtime/endpoints/node.d.mts +104 -0
  237. package/dist/runtime/endpoints/node.d.mts.map +1 -0
  238. package/dist/runtime/endpoints/node.mjs +16 -0
  239. package/dist/runtime/endpoints/node.mjs.map +1 -0
  240. package/dist/runtime/endpoints/single-route-helpers.cjs +130 -0
  241. package/dist/runtime/endpoints/single-route-helpers.cjs.map +1 -0
  242. package/dist/runtime/endpoints/single-route-helpers.mjs +125 -0
  243. package/dist/runtime/endpoints/single-route-helpers.mjs.map +1 -0
  244. package/dist/runtime/express.d.cts +2 -0
  245. package/dist/runtime/express.d.mts +2 -0
  246. package/dist/runtime/generative-ui/generative-ui-middleware.cjs +393 -0
  247. package/dist/runtime/generative-ui/generative-ui-middleware.cjs.map +1 -0
  248. package/dist/runtime/generative-ui/generative-ui-middleware.d.cts +20 -0
  249. package/dist/runtime/generative-ui/generative-ui-middleware.d.cts.map +1 -0
  250. package/dist/runtime/generative-ui/generative-ui-middleware.d.mts +20 -0
  251. package/dist/runtime/generative-ui/generative-ui-middleware.d.mts.map +1 -0
  252. package/dist/runtime/generative-ui/generative-ui-middleware.mjs +392 -0
  253. package/dist/runtime/generative-ui/generative-ui-middleware.mjs.map +1 -0
  254. package/dist/runtime/generative-ui/index.d.cts +2 -0
  255. package/dist/runtime/generative-ui/index.d.mts +2 -0
  256. package/dist/runtime/generative-ui/surface-writer.cjs +85 -0
  257. package/dist/runtime/generative-ui/surface-writer.cjs.map +1 -0
  258. package/dist/runtime/generative-ui/surface-writer.d.cts +32 -0
  259. package/dist/runtime/generative-ui/surface-writer.d.cts.map +1 -0
  260. package/dist/runtime/generative-ui/surface-writer.d.mts +32 -0
  261. package/dist/runtime/generative-ui/surface-writer.d.mts.map +1 -0
  262. package/dist/runtime/generative-ui/surface-writer.mjs +84 -0
  263. package/dist/runtime/generative-ui/surface-writer.mjs.map +1 -0
  264. package/dist/runtime/handlers/get-runtime-info.cjs +140 -0
  265. package/dist/runtime/handlers/get-runtime-info.cjs.map +1 -0
  266. package/dist/runtime/handlers/get-runtime-info.mjs +140 -0
  267. package/dist/runtime/handlers/get-runtime-info.mjs.map +1 -0
  268. package/dist/runtime/handlers/handle-connect.cjs +62 -0
  269. package/dist/runtime/handlers/handle-connect.cjs.map +1 -0
  270. package/dist/runtime/handlers/handle-connect.mjs +62 -0
  271. package/dist/runtime/handlers/handle-connect.mjs.map +1 -0
  272. package/dist/runtime/handlers/handle-debug-events.cjs +33 -0
  273. package/dist/runtime/handlers/handle-debug-events.cjs.map +1 -0
  274. package/dist/runtime/handlers/handle-debug-events.mjs +33 -0
  275. package/dist/runtime/handlers/handle-debug-events.mjs.map +1 -0
  276. package/dist/runtime/handlers/handle-inspector-learning.cjs +56 -0
  277. package/dist/runtime/handlers/handle-inspector-learning.cjs.map +1 -0
  278. package/dist/runtime/handlers/handle-inspector-learning.mjs +55 -0
  279. package/dist/runtime/handlers/handle-inspector-learning.mjs.map +1 -0
  280. package/dist/runtime/handlers/handle-inspector-metadata.cjs +36 -0
  281. package/dist/runtime/handlers/handle-inspector-metadata.cjs.map +1 -0
  282. package/dist/runtime/handlers/handle-inspector-metadata.mjs +35 -0
  283. package/dist/runtime/handlers/handle-inspector-metadata.mjs.map +1 -0
  284. package/dist/runtime/handlers/handle-run.cjs +111 -0
  285. package/dist/runtime/handlers/handle-run.cjs.map +1 -0
  286. package/dist/runtime/handlers/handle-run.mjs +110 -0
  287. package/dist/runtime/handlers/handle-run.mjs.map +1 -0
  288. package/dist/runtime/handlers/handle-stop.cjs +102 -0
  289. package/dist/runtime/handlers/handle-stop.cjs.map +1 -0
  290. package/dist/runtime/handlers/handle-stop.mjs +101 -0
  291. package/dist/runtime/handlers/handle-stop.mjs.map +1 -0
  292. package/dist/runtime/handlers/handle-suggest.cjs +83 -0
  293. package/dist/runtime/handlers/handle-suggest.cjs.map +1 -0
  294. package/dist/runtime/handlers/handle-suggest.mjs +82 -0
  295. package/dist/runtime/handlers/handle-suggest.mjs.map +1 -0
  296. package/dist/runtime/handlers/handle-trajectory-connect.cjs +40 -0
  297. package/dist/runtime/handlers/handle-trajectory-connect.cjs.map +1 -0
  298. package/dist/runtime/handlers/handle-trajectory-connect.mjs +39 -0
  299. package/dist/runtime/handlers/handle-trajectory-connect.mjs.map +1 -0
  300. package/dist/runtime/handlers/handle-transcribe.cjs +112 -0
  301. package/dist/runtime/handlers/handle-transcribe.cjs.map +1 -0
  302. package/dist/runtime/handlers/handle-transcribe.mjs +111 -0
  303. package/dist/runtime/handlers/handle-transcribe.mjs.map +1 -0
  304. package/dist/runtime/handlers/header-utils.cjs +185 -0
  305. package/dist/runtime/handlers/header-utils.cjs.map +1 -0
  306. package/dist/runtime/handlers/header-utils.d.cts +53 -0
  307. package/dist/runtime/handlers/header-utils.d.cts.map +1 -0
  308. package/dist/runtime/handlers/header-utils.d.mts +53 -0
  309. package/dist/runtime/handlers/header-utils.d.mts.map +1 -0
  310. package/dist/runtime/handlers/header-utils.mjs +183 -0
  311. package/dist/runtime/handlers/header-utils.mjs.map +1 -0
  312. package/dist/runtime/handlers/intelligence/annotate.cjs +83 -0
  313. package/dist/runtime/handlers/intelligence/annotate.cjs.map +1 -0
  314. package/dist/runtime/handlers/intelligence/annotate.mjs +82 -0
  315. package/dist/runtime/handlers/intelligence/annotate.mjs.map +1 -0
  316. package/dist/runtime/handlers/intelligence/connect.cjs +68 -0
  317. package/dist/runtime/handlers/intelligence/connect.cjs.map +1 -0
  318. package/dist/runtime/handlers/intelligence/connect.mjs +68 -0
  319. package/dist/runtime/handlers/intelligence/connect.mjs.map +1 -0
  320. package/dist/runtime/handlers/intelligence/memories.cjs +260 -0
  321. package/dist/runtime/handlers/intelligence/memories.cjs.map +1 -0
  322. package/dist/runtime/handlers/intelligence/memories.mjs +254 -0
  323. package/dist/runtime/handlers/intelligence/memories.mjs.map +1 -0
  324. package/dist/runtime/handlers/intelligence/run.cjs +283 -0
  325. package/dist/runtime/handlers/intelligence/run.cjs.map +1 -0
  326. package/dist/runtime/handlers/intelligence/run.mjs +282 -0
  327. package/dist/runtime/handlers/intelligence/run.mjs.map +1 -0
  328. package/dist/runtime/handlers/intelligence/thread-names.cjs +172 -0
  329. package/dist/runtime/handlers/intelligence/thread-names.cjs.map +1 -0
  330. package/dist/runtime/handlers/intelligence/thread-names.mjs +171 -0
  331. package/dist/runtime/handlers/intelligence/thread-names.mjs.map +1 -0
  332. package/dist/runtime/handlers/intelligence/threads.cjs +399 -0
  333. package/dist/runtime/handlers/intelligence/threads.cjs.map +1 -0
  334. package/dist/runtime/handlers/intelligence/threads.mjs +390 -0
  335. package/dist/runtime/handlers/intelligence/threads.mjs.map +1 -0
  336. package/dist/runtime/handlers/shared/agent-utils.cjs +267 -0
  337. package/dist/runtime/handlers/shared/agent-utils.cjs.map +1 -0
  338. package/dist/runtime/handlers/shared/agent-utils.mjs +262 -0
  339. package/dist/runtime/handlers/shared/agent-utils.mjs.map +1 -0
  340. package/dist/runtime/handlers/shared/cloud-telemetry.cjs +30 -0
  341. package/dist/runtime/handlers/shared/cloud-telemetry.cjs.map +1 -0
  342. package/dist/runtime/handlers/shared/cloud-telemetry.mjs +29 -0
  343. package/dist/runtime/handlers/shared/cloud-telemetry.mjs.map +1 -0
  344. package/dist/runtime/handlers/shared/describe-endpoint.cjs +25 -0
  345. package/dist/runtime/handlers/shared/describe-endpoint.cjs.map +1 -0
  346. package/dist/runtime/handlers/shared/describe-endpoint.mjs +24 -0
  347. package/dist/runtime/handlers/shared/describe-endpoint.mjs.map +1 -0
  348. package/dist/runtime/handlers/shared/intelligence-utils.cjs +24 -0
  349. package/dist/runtime/handlers/shared/intelligence-utils.cjs.map +1 -0
  350. package/dist/runtime/handlers/shared/intelligence-utils.mjs +23 -0
  351. package/dist/runtime/handlers/shared/intelligence-utils.mjs.map +1 -0
  352. package/dist/runtime/handlers/shared/json-response.cjs +14 -0
  353. package/dist/runtime/handlers/shared/json-response.cjs.map +1 -0
  354. package/dist/runtime/handlers/shared/json-response.mjs +12 -0
  355. package/dist/runtime/handlers/shared/json-response.mjs.map +1 -0
  356. package/dist/runtime/handlers/shared/mcp-apps-servers.cjs +22 -0
  357. package/dist/runtime/handlers/shared/mcp-apps-servers.cjs.map +1 -0
  358. package/dist/runtime/handlers/shared/mcp-apps-servers.mjs +22 -0
  359. package/dist/runtime/handlers/shared/mcp-apps-servers.mjs.map +1 -0
  360. package/dist/runtime/handlers/shared/memory-policy.cjs +78 -0
  361. package/dist/runtime/handlers/shared/memory-policy.cjs.map +1 -0
  362. package/dist/runtime/handlers/shared/memory-policy.mjs +77 -0
  363. package/dist/runtime/handlers/shared/memory-policy.mjs.map +1 -0
  364. package/dist/runtime/handlers/shared/platform-error.cjs +39 -0
  365. package/dist/runtime/handlers/shared/platform-error.cjs.map +1 -0
  366. package/dist/runtime/handlers/shared/platform-error.mjs +39 -0
  367. package/dist/runtime/handlers/shared/platform-error.mjs.map +1 -0
  368. package/dist/runtime/handlers/shared/resolve-intelligence-user.cjs +50 -0
  369. package/dist/runtime/handlers/shared/resolve-intelligence-user.cjs.map +1 -0
  370. package/dist/runtime/handlers/shared/resolve-intelligence-user.mjs +49 -0
  371. package/dist/runtime/handlers/shared/resolve-intelligence-user.mjs.map +1 -0
  372. package/dist/runtime/handlers/shared/sse-keep-alive.cjs +68 -0
  373. package/dist/runtime/handlers/shared/sse-keep-alive.cjs.map +1 -0
  374. package/dist/runtime/handlers/shared/sse-keep-alive.mjs +66 -0
  375. package/dist/runtime/handlers/shared/sse-keep-alive.mjs.map +1 -0
  376. package/dist/runtime/handlers/shared/sse-response.cjs +237 -0
  377. package/dist/runtime/handlers/shared/sse-response.cjs.map +1 -0
  378. package/dist/runtime/handlers/shared/sse-response.mjs +236 -0
  379. package/dist/runtime/handlers/shared/sse-response.mjs.map +1 -0
  380. package/dist/runtime/handlers/shared/thread-access.cjs +137 -0
  381. package/dist/runtime/handlers/shared/thread-access.cjs.map +1 -0
  382. package/dist/runtime/handlers/shared/thread-access.d.cts +28 -0
  383. package/dist/runtime/handlers/shared/thread-access.d.cts.map +1 -0
  384. package/dist/runtime/handlers/shared/thread-access.d.mts +28 -0
  385. package/dist/runtime/handlers/shared/thread-access.d.mts.map +1 -0
  386. package/dist/runtime/handlers/shared/thread-access.mjs +132 -0
  387. package/dist/runtime/handlers/shared/thread-access.mjs.map +1 -0
  388. package/dist/runtime/handlers/sse/connect.cjs +23 -0
  389. package/dist/runtime/handlers/sse/connect.cjs.map +1 -0
  390. package/dist/runtime/handlers/sse/connect.mjs +23 -0
  391. package/dist/runtime/handlers/sse/connect.mjs.map +1 -0
  392. package/dist/runtime/handlers/sse/run.cjs +44 -0
  393. package/dist/runtime/handlers/sse/run.cjs.map +1 -0
  394. package/dist/runtime/handlers/sse/run.mjs +44 -0
  395. package/dist/runtime/handlers/sse/run.mjs.map +1 -0
  396. package/dist/runtime/hono.d.cts +2 -0
  397. package/dist/runtime/hono.d.mts +2 -0
  398. package/dist/runtime/index.d.cts +34 -0
  399. package/dist/runtime/index.d.cts.map +1 -0
  400. package/dist/runtime/index.d.mts +34 -0
  401. package/dist/runtime/index.d.mts.map +1 -0
  402. package/dist/runtime/intelligence-platform/client.cjs +1338 -0
  403. package/dist/runtime/intelligence-platform/client.cjs.map +1 -0
  404. package/dist/runtime/intelligence-platform/client.d.cts +824 -0
  405. package/dist/runtime/intelligence-platform/client.d.cts.map +1 -0
  406. package/dist/runtime/intelligence-platform/client.d.mts +824 -0
  407. package/dist/runtime/intelligence-platform/client.d.mts.map +1 -0
  408. package/dist/runtime/intelligence-platform/client.mjs +1334 -0
  409. package/dist/runtime/intelligence-platform/client.mjs.map +1 -0
  410. package/dist/runtime/intelligence-platform/experimental.d.cts +26 -0
  411. package/dist/runtime/intelligence-platform/experimental.d.cts.map +1 -0
  412. package/dist/runtime/intelligence-platform/experimental.d.mts +26 -0
  413. package/dist/runtime/intelligence-platform/experimental.d.mts.map +1 -0
  414. package/dist/runtime/intelligence-platform/index.d.cts +3 -0
  415. package/dist/runtime/intelligence-platform/index.d.mts +3 -0
  416. package/dist/runtime/intelligence-platform/learned-skills.cjs +95 -0
  417. package/dist/runtime/intelligence-platform/learned-skills.cjs.map +1 -0
  418. package/dist/runtime/intelligence-platform/learned-skills.d.cts +43 -0
  419. package/dist/runtime/intelligence-platform/learned-skills.d.cts.map +1 -0
  420. package/dist/runtime/intelligence-platform/learned-skills.d.mts +43 -0
  421. package/dist/runtime/intelligence-platform/learned-skills.d.mts.map +1 -0
  422. package/dist/runtime/intelligence-platform/learned-skills.mjs +92 -0
  423. package/dist/runtime/intelligence-platform/learned-skills.mjs.map +1 -0
  424. package/dist/runtime/intelligence-platform/learning-management.cjs +203 -0
  425. package/dist/runtime/intelligence-platform/learning-management.cjs.map +1 -0
  426. package/dist/runtime/intelligence-platform/learning-management.d.cts +111 -0
  427. package/dist/runtime/intelligence-platform/learning-management.d.cts.map +1 -0
  428. package/dist/runtime/intelligence-platform/learning-management.d.mts +111 -0
  429. package/dist/runtime/intelligence-platform/learning-management.d.mts.map +1 -0
  430. package/dist/runtime/intelligence-platform/learning-management.mjs +193 -0
  431. package/dist/runtime/intelligence-platform/learning-management.mjs.map +1 -0
  432. package/dist/runtime/intelligence-platform/skill-registry/archive.cjs +131 -0
  433. package/dist/runtime/intelligence-platform/skill-registry/archive.cjs.map +1 -0
  434. package/dist/runtime/intelligence-platform/skill-registry/archive.d.cts +10 -0
  435. package/dist/runtime/intelligence-platform/skill-registry/archive.d.cts.map +1 -0
  436. package/dist/runtime/intelligence-platform/skill-registry/archive.d.mts +10 -0
  437. package/dist/runtime/intelligence-platform/skill-registry/archive.d.mts.map +1 -0
  438. package/dist/runtime/intelligence-platform/skill-registry/archive.mjs +127 -0
  439. package/dist/runtime/intelligence-platform/skill-registry/archive.mjs.map +1 -0
  440. package/dist/runtime/intelligence-platform/skill-registry/config.cjs +65 -0
  441. package/dist/runtime/intelligence-platform/skill-registry/config.cjs.map +1 -0
  442. package/dist/runtime/intelligence-platform/skill-registry/config.d.cts +47 -0
  443. package/dist/runtime/intelligence-platform/skill-registry/config.d.cts.map +1 -0
  444. package/dist/runtime/intelligence-platform/skill-registry/config.d.mts +47 -0
  445. package/dist/runtime/intelligence-platform/skill-registry/config.d.mts.map +1 -0
  446. package/dist/runtime/intelligence-platform/skill-registry/config.mjs +65 -0
  447. package/dist/runtime/intelligence-platform/skill-registry/config.mjs.map +1 -0
  448. package/dist/runtime/intelligence-platform/skill-registry/errors.cjs +10 -0
  449. package/dist/runtime/intelligence-platform/skill-registry/errors.cjs.map +1 -0
  450. package/dist/runtime/intelligence-platform/skill-registry/errors.d.cts +7 -0
  451. package/dist/runtime/intelligence-platform/skill-registry/errors.d.cts.map +1 -0
  452. package/dist/runtime/intelligence-platform/skill-registry/errors.d.mts +7 -0
  453. package/dist/runtime/intelligence-platform/skill-registry/errors.d.mts.map +1 -0
  454. package/dist/runtime/intelligence-platform/skill-registry/errors.mjs +10 -0
  455. package/dist/runtime/intelligence-platform/skill-registry/errors.mjs.map +1 -0
  456. package/dist/runtime/intelligence-platform/skill-registry/index.d.cts +7 -0
  457. package/dist/runtime/intelligence-platform/skill-registry/index.d.mts +7 -0
  458. package/dist/runtime/intelligence-platform/skill-registry/registry.cjs +247 -0
  459. package/dist/runtime/intelligence-platform/skill-registry/registry.cjs.map +1 -0
  460. package/dist/runtime/intelligence-platform/skill-registry/registry.d.cts +36 -0
  461. package/dist/runtime/intelligence-platform/skill-registry/registry.d.cts.map +1 -0
  462. package/dist/runtime/intelligence-platform/skill-registry/registry.d.mts +36 -0
  463. package/dist/runtime/intelligence-platform/skill-registry/registry.d.mts.map +1 -0
  464. package/dist/runtime/intelligence-platform/skill-registry/registry.mjs +246 -0
  465. package/dist/runtime/intelligence-platform/skill-registry/registry.mjs.map +1 -0
  466. package/dist/runtime/intelligence-platform/skill-registry/skill-content.cjs +41 -0
  467. package/dist/runtime/intelligence-platform/skill-registry/skill-content.cjs.map +1 -0
  468. package/dist/runtime/intelligence-platform/skill-registry/skill-content.d.cts +12 -0
  469. package/dist/runtime/intelligence-platform/skill-registry/skill-content.d.cts.map +1 -0
  470. package/dist/runtime/intelligence-platform/skill-registry/skill-content.d.mts +12 -0
  471. package/dist/runtime/intelligence-platform/skill-registry/skill-content.d.mts.map +1 -0
  472. package/dist/runtime/intelligence-platform/skill-registry/skill-content.mjs +38 -0
  473. package/dist/runtime/intelligence-platform/skill-registry/skill-content.mjs.map +1 -0
  474. package/dist/runtime/intelligence-platform/skill-registry/snapshot.cjs +92 -0
  475. package/dist/runtime/intelligence-platform/skill-registry/snapshot.cjs.map +1 -0
  476. package/dist/runtime/intelligence-platform/skill-registry/snapshot.d.cts +27 -0
  477. package/dist/runtime/intelligence-platform/skill-registry/snapshot.d.cts.map +1 -0
  478. package/dist/runtime/intelligence-platform/skill-registry/snapshot.d.mts +27 -0
  479. package/dist/runtime/intelligence-platform/skill-registry/snapshot.d.mts.map +1 -0
  480. package/dist/runtime/intelligence-platform/skill-registry/snapshot.mjs +91 -0
  481. package/dist/runtime/intelligence-platform/skill-registry/snapshot.mjs.map +1 -0
  482. package/dist/runtime/intelligence-platform/thread-lock-heartbeat.cjs +142 -0
  483. package/dist/runtime/intelligence-platform/thread-lock-heartbeat.cjs.map +1 -0
  484. package/dist/runtime/intelligence-platform/thread-lock-heartbeat.mjs +141 -0
  485. package/dist/runtime/intelligence-platform/thread-lock-heartbeat.mjs.map +1 -0
  486. package/dist/runtime/intelligence-platform/trajectories.cjs +95 -0
  487. package/dist/runtime/intelligence-platform/trajectories.cjs.map +1 -0
  488. package/dist/runtime/intelligence-platform/trajectories.d.cts +11 -0
  489. package/dist/runtime/intelligence-platform/trajectories.d.cts.map +1 -0
  490. package/dist/runtime/intelligence-platform/trajectories.d.mts +11 -0
  491. package/dist/runtime/intelligence-platform/trajectories.d.mts.map +1 -0
  492. package/dist/runtime/intelligence-platform/trajectories.mjs +91 -0
  493. package/dist/runtime/intelligence-platform/trajectories.mjs.map +1 -0
  494. package/dist/runtime/node.d.cts +2 -0
  495. package/dist/runtime/node.d.mts +2 -0
  496. package/dist/runtime/runner/agent-runner.cjs +82 -0
  497. package/dist/runtime/runner/agent-runner.cjs.map +1 -0
  498. package/dist/runtime/runner/agent-runner.d.cts +151 -0
  499. package/dist/runtime/runner/agent-runner.d.cts.map +1 -0
  500. package/dist/runtime/runner/agent-runner.d.mts +151 -0
  501. package/dist/runtime/runner/agent-runner.d.mts.map +1 -0
  502. package/dist/runtime/runner/agent-runner.mjs +73 -0
  503. package/dist/runtime/runner/agent-runner.mjs.map +1 -0
  504. package/dist/runtime/runner/in-memory.cjs +741 -0
  505. package/dist/runtime/runner/in-memory.cjs.map +1 -0
  506. package/dist/runtime/runner/in-memory.d.cts +427 -0
  507. package/dist/runtime/runner/in-memory.d.cts.map +1 -0
  508. package/dist/runtime/runner/in-memory.d.mts +427 -0
  509. package/dist/runtime/runner/in-memory.d.mts.map +1 -0
  510. package/dist/runtime/runner/in-memory.mjs +734 -0
  511. package/dist/runtime/runner/in-memory.mjs.map +1 -0
  512. package/dist/runtime/runner/index.d.cts +5 -0
  513. package/dist/runtime/runner/index.d.mts +5 -0
  514. package/dist/runtime/runner/index.mjs +6 -0
  515. package/dist/runtime/runner/intelligence.cjs +617 -0
  516. package/dist/runtime/runner/intelligence.cjs.map +1 -0
  517. package/dist/runtime/runner/intelligence.d.cts +104 -0
  518. package/dist/runtime/runner/intelligence.d.cts.map +1 -0
  519. package/dist/runtime/runner/intelligence.d.mts +104 -0
  520. package/dist/runtime/runner/intelligence.d.mts.map +1 -0
  521. package/dist/runtime/runner/intelligence.mjs +616 -0
  522. package/dist/runtime/runner/intelligence.mjs.map +1 -0
  523. package/dist/runtime/telemetry/disclosure.cjs +25 -0
  524. package/dist/runtime/telemetry/disclosure.cjs.map +1 -0
  525. package/dist/runtime/telemetry/disclosure.mjs +24 -0
  526. package/dist/runtime/telemetry/disclosure.mjs.map +1 -0
  527. package/dist/runtime/telemetry/events.d.cts +66 -0
  528. package/dist/runtime/telemetry/events.d.cts.map +1 -0
  529. package/dist/runtime/telemetry/events.d.mts +66 -0
  530. package/dist/runtime/telemetry/events.d.mts.map +1 -0
  531. package/dist/runtime/telemetry/instance-created.cjs +34 -0
  532. package/dist/runtime/telemetry/instance-created.cjs.map +1 -0
  533. package/dist/runtime/telemetry/instance-created.mjs +34 -0
  534. package/dist/runtime/telemetry/instance-created.mjs.map +1 -0
  535. package/dist/runtime/telemetry/telemetry-client.cjs +108 -0
  536. package/dist/runtime/telemetry/telemetry-client.cjs.map +1 -0
  537. package/dist/runtime/telemetry/telemetry-client.d.cts +10 -0
  538. package/dist/runtime/telemetry/telemetry-client.d.cts.map +1 -0
  539. package/dist/runtime/telemetry/telemetry-client.d.mts +10 -0
  540. package/dist/runtime/telemetry/telemetry-client.d.mts.map +1 -0
  541. package/dist/runtime/telemetry/telemetry-client.mjs +107 -0
  542. package/dist/runtime/telemetry/telemetry-client.mjs.map +1 -0
  543. package/dist/runtime/telemetry/telemetry-identity.cjs +12 -0
  544. package/dist/runtime/telemetry/telemetry-identity.cjs.map +1 -0
  545. package/dist/runtime/telemetry/telemetry-identity.mjs +11 -0
  546. package/dist/runtime/telemetry/telemetry-identity.mjs.map +1 -0
  547. package/dist/runtime/transcription-service/transcription-service.cjs +7 -0
  548. package/dist/runtime/transcription-service/transcription-service.cjs.map +1 -0
  549. package/dist/runtime/transcription-service/transcription-service.d.cts +14 -0
  550. package/dist/runtime/transcription-service/transcription-service.d.cts.map +1 -0
  551. package/dist/runtime/transcription-service/transcription-service.d.mts +14 -0
  552. package/dist/runtime/transcription-service/transcription-service.d.mts.map +1 -0
  553. package/dist/runtime/transcription-service/transcription-service.mjs +6 -0
  554. package/dist/runtime/transcription-service/transcription-service.mjs.map +1 -0
  555. package/package.json +119 -104
  556. package/.eslintrc.js +0 -7
  557. package/CHANGELOG.md +0 -2920
  558. package/__snapshots__/schema/schema.graphql +0 -371
  559. package/dist/index.d.ts +0 -1494
  560. package/dist/index.js +0 -5641
  561. package/dist/index.js.map +0 -1
  562. package/dist/index.mjs.map +0 -1
  563. package/dist/langgraph.d.ts +0 -284
  564. package/dist/langgraph.js +0 -211
  565. package/dist/langgraph.js.map +0 -1
  566. package/dist/langgraph.mjs +0 -206
  567. package/dist/langgraph.mjs.map +0 -1
  568. package/dist/v2/index.d.ts +0 -2
  569. package/dist/v2/index.js +0 -22
  570. package/dist/v2/index.js.map +0 -1
  571. package/dist/v2/index.mjs +0 -5
  572. package/dist/v2/index.mjs.map +0 -1
  573. package/jest.config.js +0 -10
  574. package/scripts/generate-gql-schema.ts +0 -13
  575. package/src/agents/langgraph/event-source.ts +0 -329
  576. package/src/agents/langgraph/events.ts +0 -377
  577. package/src/graphql/inputs/action.input.ts +0 -16
  578. package/src/graphql/inputs/agent-session.input.ts +0 -13
  579. package/src/graphql/inputs/agent-state.input.ts +0 -13
  580. package/src/graphql/inputs/cloud-guardrails.input.ts +0 -16
  581. package/src/graphql/inputs/cloud.input.ts +0 -8
  582. package/src/graphql/inputs/context-property.input.ts +0 -10
  583. package/src/graphql/inputs/copilot-context.input.ts +0 -10
  584. package/src/graphql/inputs/custom-property.input.ts +0 -15
  585. package/src/graphql/inputs/extensions.input.ts +0 -21
  586. package/src/graphql/inputs/forwarded-parameters.input.ts +0 -22
  587. package/src/graphql/inputs/frontend.input.ts +0 -14
  588. package/src/graphql/inputs/generate-copilot-response.input.ts +0 -59
  589. package/src/graphql/inputs/load-agent-state.input.ts +0 -10
  590. package/src/graphql/inputs/message.input.ts +0 -110
  591. package/src/graphql/inputs/meta-event.input.ts +0 -18
  592. package/src/graphql/message-conversion/agui-to-gql.test.ts +0 -1263
  593. package/src/graphql/message-conversion/agui-to-gql.ts +0 -333
  594. package/src/graphql/message-conversion/gql-to-agui.test.ts +0 -1580
  595. package/src/graphql/message-conversion/gql-to-agui.ts +0 -278
  596. package/src/graphql/message-conversion/index.ts +0 -2
  597. package/src/graphql/message-conversion/roundtrip-conversion.test.ts +0 -526
  598. package/src/graphql/resolvers/copilot.resolver.ts +0 -708
  599. package/src/graphql/resolvers/state.resolver.ts +0 -27
  600. package/src/graphql/types/agents-response.type.ts +0 -19
  601. package/src/graphql/types/base/index.ts +0 -10
  602. package/src/graphql/types/converted/index.ts +0 -176
  603. package/src/graphql/types/copilot-response.type.ts +0 -138
  604. package/src/graphql/types/enums.ts +0 -38
  605. package/src/graphql/types/extensions-response.type.ts +0 -23
  606. package/src/graphql/types/guardrails-result.type.ts +0 -20
  607. package/src/graphql/types/load-agent-state-response.type.ts +0 -17
  608. package/src/graphql/types/message-status.type.ts +0 -42
  609. package/src/graphql/types/meta-events.type.ts +0 -71
  610. package/src/graphql/types/response-status.type.ts +0 -66
  611. package/src/index.ts +0 -4
  612. package/src/langgraph.ts +0 -1
  613. package/src/lib/cloud/index.ts +0 -4
  614. package/src/lib/error-messages.ts +0 -200
  615. package/src/lib/index.ts +0 -52
  616. package/src/lib/integrations/index.ts +0 -6
  617. package/src/lib/integrations/nest/index.ts +0 -14
  618. package/src/lib/integrations/nextjs/app-router.ts +0 -38
  619. package/src/lib/integrations/nextjs/pages-router.ts +0 -39
  620. package/src/lib/integrations/node-express/index.ts +0 -14
  621. package/src/lib/integrations/node-http/index.ts +0 -143
  622. package/src/lib/integrations/node-http/request-handler.ts +0 -111
  623. package/src/lib/integrations/shared.ts +0 -161
  624. package/src/lib/logger.ts +0 -28
  625. package/src/lib/observability.ts +0 -160
  626. package/src/lib/runtime/__tests__/copilot-runtime-error.test.ts +0 -169
  627. package/src/lib/runtime/__tests__/mcp-tools-utils.test.ts +0 -464
  628. package/src/lib/runtime/agent-integrations/langgraph/agent.ts +0 -209
  629. package/src/lib/runtime/agent-integrations/langgraph/consts.ts +0 -34
  630. package/src/lib/runtime/agent-integrations/langgraph/index.ts +0 -2
  631. package/src/lib/runtime/copilot-runtime.ts +0 -710
  632. package/src/lib/runtime/mcp-tools-utils.ts +0 -254
  633. package/src/lib/runtime/retry-utils.ts +0 -96
  634. package/src/lib/runtime/telemetry-agent-runner.ts +0 -139
  635. package/src/lib/runtime/types.ts +0 -49
  636. package/src/lib/runtime/utils.ts +0 -87
  637. package/src/lib/streaming.ts +0 -202
  638. package/src/lib/telemetry-client.ts +0 -64
  639. package/src/service-adapters/anthropic/anthropic-adapter.ts +0 -452
  640. package/src/service-adapters/anthropic/utils.ts +0 -152
  641. package/src/service-adapters/bedrock/bedrock-adapter.ts +0 -73
  642. package/src/service-adapters/conversion.ts +0 -67
  643. package/src/service-adapters/empty/empty-adapter.ts +0 -38
  644. package/src/service-adapters/events.ts +0 -294
  645. package/src/service-adapters/experimental/ollama/ollama-adapter.ts +0 -84
  646. package/src/service-adapters/google/google-genai-adapter.test.ts +0 -104
  647. package/src/service-adapters/google/google-genai-adapter.ts +0 -88
  648. package/src/service-adapters/groq/groq-adapter.ts +0 -203
  649. package/src/service-adapters/index.ts +0 -18
  650. package/src/service-adapters/langchain/langchain-adapter.ts +0 -111
  651. package/src/service-adapters/langchain/langserve.ts +0 -88
  652. package/src/service-adapters/langchain/types.ts +0 -14
  653. package/src/service-adapters/langchain/utils.ts +0 -313
  654. package/src/service-adapters/openai/openai-adapter.ts +0 -283
  655. package/src/service-adapters/openai/openai-assistant-adapter.ts +0 -344
  656. package/src/service-adapters/openai/utils.ts +0 -199
  657. package/src/service-adapters/service-adapter.ts +0 -41
  658. package/src/service-adapters/shared/error-utils.ts +0 -61
  659. package/src/service-adapters/shared/index.ts +0 -1
  660. package/src/service-adapters/unify/unify-adapter.ts +0 -151
  661. package/src/utils/failed-response-status-reasons.ts +0 -70
  662. package/src/utils/index.ts +0 -1
  663. package/src/v2/index.ts +0 -3
  664. package/tests/global.d.ts +0 -13
  665. package/tests/service-adapters/anthropic/allowlist-approach.test.ts +0 -226
  666. package/tests/service-adapters/anthropic/anthropic-adapter.test.ts +0 -389
  667. package/tests/service-adapters/openai/allowlist-approach.test.ts +0 -238
  668. package/tests/service-adapters/openai/openai-adapter.test.ts +0 -301
  669. package/tests/setup.jest.ts +0 -21
  670. package/tests/tsconfig.json +0 -10
  671. package/tsconfig.json +0 -13
  672. package/tsup.config.ts +0 -20
  673. package/typedoc.json +0 -4
@@ -0,0 +1,1328 @@
1
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ const require_describe_endpoint = require('../runtime/handlers/shared/describe-endpoint.cjs');
3
+ const require_url_download = require('./url-download.cjs');
4
+ const require_state_delta = require('./state-delta.cjs');
5
+ const require_usage = require('./converters/usage.cjs');
6
+ const require_aisdk = require('./converters/aisdk.cjs');
7
+ const require_tanstack = require('./converters/tanstack.cjs');
8
+ const require_registry = require('../runtime/intelligence-platform/skill-registry/registry.cjs');
9
+ const require_learned_skills = require('./learned-skills.cjs');
10
+ const require_mcp_tool_names = require('./mcp-tool-names.cjs');
11
+ let _copilotkit_shared = require("@copilotkit/shared");
12
+ let zod = require("zod");
13
+ let rxjs = require("rxjs");
14
+ let _ag_ui_client = require("@ag-ui/client");
15
+ let _ag_ui_a2ui_middleware = require("@ag-ui/a2ui-middleware");
16
+ let _cfworker_json_schema = require("@cfworker/json-schema");
17
+ let ai = require("ai");
18
+ let _ai_sdk_mcp = require("@ai-sdk/mcp");
19
+ let _ai_sdk_openai = require("@ai-sdk/openai");
20
+ let _ai_sdk_anthropic = require("@ai-sdk/anthropic");
21
+ let _ai_sdk_google = require("@ai-sdk/google");
22
+ let _ai_sdk_google_vertex = require("@ai-sdk/google-vertex");
23
+ let _modelcontextprotocol_sdk_client_streamableHttp_js = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
24
+
25
+ //#region src/agent/index.ts
26
+ /**
27
+ * Resolves a model specifier to a LanguageModel instance
28
+ * @param spec - Model string (e.g., "openai/gpt-4o") or LanguageModel instance
29
+ * @param apiKey - Optional API key to use instead of environment variables
30
+ * @returns LanguageModel instance
31
+ */
32
+ /**
33
+ * An AG-UI tool result as the AI SDK's tool result output.
34
+ *
35
+ * Providers hold one response per tool call, and the Google adapter emits one
36
+ * functionResponse per text entry of a content list, so all of a result's text
37
+ * is collected into a single entry: text parts run together, and a
38
+ * URL-referenced part contributes the URL it carries on a line of its own —
39
+ * the bytes are not here to hand over, and the reference is the content the
40
+ * tool actually returned. A result with no inline media is that text alone.
41
+ * One with inline media is a content list: the text entry first, when there is
42
+ * any, then each media part with its bytes and media type. A media-only result
43
+ * is media alone: a placeholder text would be content the tool never returned.
44
+ * Which adapters can place media inside a tool response is theirs to decide.
45
+ * A provider file handle (`file` source) is neither bytes nor a URL, and this
46
+ * path cannot hand it to the provider, so the part is dropped with a warning.
47
+ * A result whose parts were all dropped is the empty string, as AG-UI 1.0
48
+ * requires: the call must still be answered.
49
+ */
50
+ function warnDroppedFileSource(what) {
51
+ console.warn(`[CopilotKit] Dropping a ${what} that references a provider file handle: it is not a URL or inline data, so it cannot be sent to the model here.`);
52
+ }
53
+ function toolResultOutput(content) {
54
+ if (typeof content === "string") return {
55
+ type: "text",
56
+ value: content
57
+ };
58
+ const segments = [];
59
+ const media = [];
60
+ let open = false;
61
+ for (const part of content) if (part.type === "text") {
62
+ if (open) segments[segments.length - 1] += part.text;
63
+ else segments.push(part.text);
64
+ open = true;
65
+ } else if (part.source.type === "file") warnDroppedFileSource(`${part.type} part in a tool result`);
66
+ else if (part.source.type === "url") {
67
+ segments.push(part.source.value);
68
+ open = false;
69
+ } else {
70
+ media.push({
71
+ type: "media",
72
+ data: part.source.value,
73
+ mediaType: part.source.mimeType
74
+ });
75
+ open = false;
76
+ }
77
+ const text = segments.join("\n");
78
+ if (media.length === 0) return {
79
+ type: "text",
80
+ value: text
81
+ };
82
+ return {
83
+ type: "content",
84
+ value: [...text.length > 0 ? [{
85
+ type: "text",
86
+ text
87
+ }] : [], ...media]
88
+ };
89
+ }
90
+ /**
91
+ * Split a model string into provider and model id. The provider is the text
92
+ * before the FIRST ":" or "/"; everything after it is the model id, unchanged.
93
+ * So "openai:meta-llama/llama-3.3-70b" keeps the slash in its model id, and
94
+ * "openai/ft:gpt-4o-mini:org::id" keeps its colons. Empty strings mean the
95
+ * part is missing.
96
+ */
97
+ function parseModelSpec(spec) {
98
+ const trimmed = spec.trim();
99
+ const separator = trimmed.search(/[:/]/);
100
+ if (separator === -1) return {
101
+ provider: trimmed.toLowerCase(),
102
+ model: ""
103
+ };
104
+ return {
105
+ provider: trimmed.slice(0, separator).toLowerCase(),
106
+ model: trimmed.slice(separator + 1).trim()
107
+ };
108
+ }
109
+ /**
110
+ * Whether an `OPENAI_BASE_URL` should get Chat Completions instead of the
111
+ * Responses API. OpenAI's own hosts (including `*.api.openai.com`, such as the
112
+ * EU data-residency host) and Azure serve `/responses`, so they keep it, as
113
+ * does an unset value. Any other host gets `/chat/completions`, which is what
114
+ * most OpenAI-compatible servers implement. The host rule is
115
+ * `classifyModelHost`, the same one telemetry uses.
116
+ *
117
+ * A value `new URL` throws on keeps the Responses route; the request will
118
+ * fail on that base URL either way. A schemeless value such as
119
+ * `localhost:11434/v1` does not throw (it parses with scheme `localhost:` and
120
+ * an empty host), so it classifies as `other` and gets Chat Completions.
121
+ */
122
+ function usesChatCompletions(baseURL) {
123
+ const trimmed = baseURL?.trim();
124
+ if (!trimmed) return false;
125
+ try {
126
+ new URL(trimmed);
127
+ } catch {
128
+ return false;
129
+ }
130
+ const host = (0, _copilotkit_shared.classifyModelHost)(trimmed, "openai");
131
+ return host !== "openai" && host !== "azure";
132
+ }
133
+ /** Whether the Chat Completions notice below was already logged. */
134
+ let loggedChatCompletionsRoute = false;
135
+ /**
136
+ * Which OpenAI API an `openai/...` model string targets.
137
+ *
138
+ * `COPILOTKIT_OPENAI_API` (`responses` or `chat`) wins when set, so a proxy in
139
+ * front of OpenAI can keep the Responses API, and an OpenAI host can use Chat
140
+ * Completions. Unset or blank, `usesChatCompletions` decides from
141
+ * `OPENAI_BASE_URL`.
142
+ *
143
+ * When that rule picks Chat Completions, this logs once per process. Through a
144
+ * proxy, Chat Completions drops Responses-only features (such as reasoning
145
+ * summaries) without an error, and the notice names the way back.
146
+ */
147
+ function openAIApiFor(baseURL) {
148
+ const raw = process.env.COPILOTKIT_OPENAI_API;
149
+ const override = raw?.trim().toLowerCase();
150
+ if (override === "responses" || override === "chat") return override;
151
+ if (override) throw new Error(`Invalid COPILOTKIT_OPENAI_API "${raw}". Use "responses" or "chat", or leave it unset.`);
152
+ if (!usesChatCompletions(baseURL)) return "responses";
153
+ if (!loggedChatCompletionsRoute) {
154
+ loggedChatCompletionsRoute = true;
155
+ console.info("[CopilotKit] OPENAI_BASE_URL is not an OpenAI or Azure host, so \"openai/...\" models use the Chat Completions API. To use the Responses API instead, set COPILOTKIT_OPENAI_API=responses.");
156
+ }
157
+ return "chat";
158
+ }
159
+ function resolveModel(spec, apiKey) {
160
+ if (typeof spec !== "string") return spec;
161
+ const { provider, model } = parseModelSpec(spec);
162
+ if (!provider) throw new Error(`Invalid model string "${spec}". Use "openai/gpt-5", "anthropic/claude-sonnet-4.5", or "google/gemini-3.8-flash".`);
163
+ if (!model) throw new Error(`Invalid model string "${spec}". Use "openai/gpt-5", "anthropic/claude-sonnet-4.5", or "google/gemini-3.8-flash".`);
164
+ switch (provider) {
165
+ case "openai": {
166
+ const openai = (0, _ai_sdk_openai.createOpenAI)({
167
+ apiKey: apiKey || process.env.OPENAI_API_KEY,
168
+ baseURL: process.env.OPENAI_BASE_URL
169
+ });
170
+ return openAIApiFor(process.env.OPENAI_BASE_URL) === "chat" ? openai.chat(model) : openai(model);
171
+ }
172
+ case "anthropic": return (0, _ai_sdk_anthropic.createAnthropic)({
173
+ apiKey: apiKey || process.env.ANTHROPIC_API_KEY,
174
+ baseURL: process.env.ANTHROPIC_BASE_URL
175
+ })(model);
176
+ case "google":
177
+ case "gemini":
178
+ case "google-gemini": return (0, _ai_sdk_google.createGoogleGenerativeAI)({
179
+ apiKey: apiKey || process.env.GOOGLE_API_KEY,
180
+ baseURL: process.env.GOOGLE_GENERATIVE_AI_BASE_URL
181
+ })(model);
182
+ case "minimax": return (0, _ai_sdk_openai.createOpenAI)({
183
+ name: "minimax",
184
+ apiKey: apiKey || process.env.MINIMAX_API_KEY,
185
+ baseURL: process.env.MINIMAX_BASE_URL || "https://api.minimax.io/v1"
186
+ })(model);
187
+ case "vertex": return (0, _ai_sdk_google_vertex.createVertex)()(model);
188
+ default: throw new Error(`Unknown provider "${provider}" in "${spec}". Supported: openai, anthropic, google (gemini).`);
189
+ }
190
+ }
191
+ /**
192
+ * Which vendor a model specifier will actually reach, as a closed vocabulary.
193
+ *
194
+ * `resolveModel` above is the only place this runtime builds a provider, so it
195
+ * is the only place that knows the endpoint. Once built, the endpoint is gone:
196
+ * an AI SDK model's `provider` names only the wire API (`"openai.responses"`
197
+ * on OpenAI and Azure, `"openai.chat"` on any other host), so it cannot tell
198
+ * OpenRouter from a laptop, and its base URL survives
199
+ * only inside a closure that the public `LanguageModelV3` type does not
200
+ * expose. Azure's own migration guide tells customers to use that same OpenAI
201
+ * client, so the case we are blindest to is the common one.
202
+ *
203
+ * A caller who hands us an already-built LanguageModel gets `unknown`. Nobody
204
+ * can recover the host from it, and saying so is more useful than guessing
205
+ * `openai` from a provider label that means only "speaks the OpenAI wire".
206
+ *
207
+ * The branches below mirror `resolveModel`'s switch and must change with it.
208
+ * `model-host-class.test.ts` walks every provider that switch accepts and
209
+ * fails if one lands here as `unknown`.
210
+ */
211
+ function classifyModelSpec(spec) {
212
+ if (typeof spec !== "string") return "unknown";
213
+ const { provider } = parseModelSpec(spec);
214
+ switch (provider) {
215
+ case "openai": return (0, _copilotkit_shared.classifyModelHost)(process.env.OPENAI_BASE_URL, "openai");
216
+ case "anthropic": return (0, _copilotkit_shared.classifyModelHost)(process.env.ANTHROPIC_BASE_URL, "anthropic");
217
+ case "google":
218
+ case "gemini":
219
+ case "google-gemini": return (0, _copilotkit_shared.classifyModelHost)(process.env.GOOGLE_GENERATIVE_AI_BASE_URL, "google");
220
+ case "minimax": return (0, _copilotkit_shared.classifyModelHost)(process.env.MINIMAX_BASE_URL || "https://api.minimax.io/v1", "minimax");
221
+ case "vertex": return "vertex";
222
+ default: return "unknown";
223
+ }
224
+ }
225
+ /**
226
+ * Thrown by `AgentFactoryContext.interrupt()` on a fresh (non-resume) run to
227
+ * pause the factory. Caught in `runFactory` and translated into a RUN_FINISHED
228
+ * event carrying `outcome:{type:"interrupt",interrupts}`. Not a real error.
229
+ */
230
+ var InterruptSignal = class extends Error {
231
+ constructor(interrupts) {
232
+ super("CopilotKit interrupt: run paused awaiting human input");
233
+ this.interrupts = interrupts;
234
+ this.name = "InterruptSignal";
235
+ }
236
+ };
237
+ /**
238
+ * Define a tool for use with BuiltInAgent
239
+ * @param name - The name of the tool
240
+ * @param description - Description of what the tool does
241
+ * @param parameters - Schema for the tool's input parameters (any Standard Schema V1 compatible library: Zod, Valibot, ArkType, etc.)
242
+ * @param execute - Function to execute the tool server-side
243
+ * @returns Tool definition
244
+ */
245
+ function defineTool(config) {
246
+ return {
247
+ name: config.name,
248
+ description: config.description,
249
+ parameters: config.parameters,
250
+ execute: config.execute,
251
+ interrupt: config.interrupt,
252
+ interruptReason: config.interruptReason,
253
+ interruptMessage: config.interruptMessage
254
+ };
255
+ }
256
+ /**
257
+ * Converts AG-UI user message content to Vercel AI SDK UserContent format.
258
+ * Handles plain strings, new modality-specific parts (image/audio/video/document),
259
+ * and legacy BinaryInputContent for backward compatibility.
260
+ */
261
+ function convertUserMessageContent(content) {
262
+ if (!content) return "";
263
+ if (typeof content === "string") return content;
264
+ const parts = [];
265
+ for (const part of content) {
266
+ if (!part || typeof part !== "object" || !("type" in part)) continue;
267
+ switch (part.type) {
268
+ case "text": {
269
+ const text = part.text;
270
+ if (text) parts.push({
271
+ type: "text",
272
+ text
273
+ });
274
+ break;
275
+ }
276
+ case "image": {
277
+ const source = part.source;
278
+ if (!source) break;
279
+ if (source.type === "data") parts.push({
280
+ type: "image",
281
+ image: source.value,
282
+ mediaType: source.mimeType
283
+ });
284
+ else if (source.type === "file") warnDroppedFileSource("image part");
285
+ else if (source.type === "url") try {
286
+ parts.push({
287
+ type: "image",
288
+ image: new URL(source.value),
289
+ mediaType: source.mimeType
290
+ });
291
+ } catch {
292
+ console.error(`[CopilotKit] convertUserMessageContent: invalid URL "${source.value}" in image part — skipping`);
293
+ }
294
+ break;
295
+ }
296
+ case "audio":
297
+ case "video":
298
+ case "document": {
299
+ const source = part.source;
300
+ if (!source) break;
301
+ if (source.type === "data") parts.push({
302
+ type: "file",
303
+ data: source.value,
304
+ mediaType: source.mimeType
305
+ });
306
+ else if (source.type === "file") warnDroppedFileSource(`${part.type} part`);
307
+ else if (source.type === "url") try {
308
+ parts.push({
309
+ type: "file",
310
+ data: new URL(source.value),
311
+ mediaType: source.mimeType ?? "application/octet-stream"
312
+ });
313
+ } catch {
314
+ console.error(`[CopilotKit] convertUserMessageContent: invalid URL "${source.value}" in ${part.type} part — skipping`);
315
+ }
316
+ break;
317
+ }
318
+ case "binary": {
319
+ const legacy = part;
320
+ const mimeType = legacy.mimeType ?? "application/octet-stream";
321
+ const isImage = mimeType.startsWith("image/");
322
+ if (legacy.data) if (isImage) parts.push({
323
+ type: "image",
324
+ image: legacy.data,
325
+ mediaType: mimeType
326
+ });
327
+ else parts.push({
328
+ type: "file",
329
+ data: legacy.data,
330
+ mediaType: mimeType
331
+ });
332
+ else if (legacy.url) try {
333
+ const url = new URL(legacy.url);
334
+ if (isImage) parts.push({
335
+ type: "image",
336
+ image: url,
337
+ mediaType: mimeType
338
+ });
339
+ else parts.push({
340
+ type: "file",
341
+ data: url,
342
+ mediaType: mimeType
343
+ });
344
+ } catch {
345
+ console.error(`[CopilotKit] convertUserMessageContent: invalid URL "${legacy.url}" in binary part — skipping`);
346
+ }
347
+ break;
348
+ }
349
+ default:
350
+ console.error(`[CopilotKit] convertUserMessageContent: unrecognized content part type "${part.type}" — skipping`);
351
+ break;
352
+ }
353
+ }
354
+ return parts.length > 0 ? parts : "";
355
+ }
356
+ /**
357
+ * Converts AG-UI messages to Vercel AI SDK ModelMessage format
358
+ */
359
+ function convertMessagesToVercelAISDKMessages(messages, options = {}) {
360
+ const result = [];
361
+ for (const message of messages) if (message.role === "system" && options.forwardSystemMessages) {
362
+ const systemMsg = {
363
+ role: "system",
364
+ content: message.content ?? ""
365
+ };
366
+ result.push(systemMsg);
367
+ } else if (message.role === "developer" && options.forwardDeveloperMessages) {
368
+ const systemMsg = {
369
+ role: "system",
370
+ content: message.content ?? ""
371
+ };
372
+ result.push(systemMsg);
373
+ } else if (message.role === "assistant") {
374
+ const parts = message.content ? [{
375
+ type: "text",
376
+ text: message.content
377
+ }] : [];
378
+ for (const toolCall of message.toolCalls ?? []) {
379
+ const toolCallPart = {
380
+ type: "tool-call",
381
+ toolCallId: toolCall.id,
382
+ toolName: toolCall.function.name,
383
+ input: (0, _copilotkit_shared.safeParseToolArgs)(toolCall.function.arguments)
384
+ };
385
+ parts.push(toolCallPart);
386
+ }
387
+ const assistantMsg = {
388
+ role: "assistant",
389
+ content: parts
390
+ };
391
+ result.push(assistantMsg);
392
+ } else if (message.role === "user") {
393
+ const userMsg = {
394
+ role: "user",
395
+ content: convertUserMessageContent(message.content)
396
+ };
397
+ result.push(userMsg);
398
+ } else if (message.role === "tool") {
399
+ let toolName = "unknown";
400
+ for (const msg of messages) if (msg.role === "assistant") {
401
+ for (const toolCall of msg.toolCalls ?? []) if (toolCall.id === message.toolCallId) {
402
+ toolName = toolCall.function.name;
403
+ break;
404
+ }
405
+ }
406
+ const toolMsg = {
407
+ role: "tool",
408
+ content: [{
409
+ type: "tool-result",
410
+ toolCallId: message.toolCallId,
411
+ toolName,
412
+ output: toolResultOutput(message.content)
413
+ }]
414
+ };
415
+ result.push(toolMsg);
416
+ }
417
+ return result;
418
+ }
419
+ /**
420
+ * Converts JSON Schema to Zod schema
421
+ */
422
+ function convertJsonSchemaToZodSchema(jsonSchema, required) {
423
+ if (jsonSchema.type === "null") {
424
+ const schema = zod.z.null().describe(jsonSchema.description ?? "");
425
+ return required ? schema : schema.optional();
426
+ }
427
+ const unionVariants = jsonSchema.anyOf ?? jsonSchema.oneOf;
428
+ if (Array.isArray(unionVariants) && unionVariants.length > 0) {
429
+ if (unionVariants.length === 1) return convertJsonSchemaToZodSchema(unionVariants[0], required);
430
+ const variantSchemas = unionVariants.map((variant) => convertJsonSchemaToZodSchema(variant, true));
431
+ const schema = zod.z.union(variantSchemas).describe(jsonSchema.description ?? "");
432
+ return required ? schema : schema.optional();
433
+ }
434
+ if (!jsonSchema.type) return required ? zod.z.object({}) : zod.z.object({}).optional();
435
+ if (jsonSchema.type === "object") {
436
+ const spec = {};
437
+ if (!jsonSchema.properties || !Object.keys(jsonSchema.properties).length) return !required ? zod.z.object(spec).optional() : zod.z.object(spec);
438
+ for (const [key, value] of Object.entries(jsonSchema.properties)) spec[key] = convertJsonSchemaToZodSchema(value, jsonSchema.required ? jsonSchema.required.includes(key) : false);
439
+ const schema = zod.z.object(spec).describe(jsonSchema.description ?? "");
440
+ return required ? schema : schema.optional();
441
+ } else if (jsonSchema.type === "string") {
442
+ if (jsonSchema.enum && jsonSchema.enum.length > 0) {
443
+ const schema = zod.z.enum(jsonSchema.enum).describe(jsonSchema.description ?? "");
444
+ return required ? schema : schema.optional();
445
+ }
446
+ const schema = zod.z.string().describe(jsonSchema.description ?? "");
447
+ return required ? schema : schema.optional();
448
+ } else if (jsonSchema.type === "number" || jsonSchema.type === "integer") {
449
+ const schema = zod.z.number().describe(jsonSchema.description ?? "");
450
+ return required ? schema : schema.optional();
451
+ } else if (jsonSchema.type === "boolean") {
452
+ const schema = zod.z.boolean().describe(jsonSchema.description ?? "");
453
+ return required ? schema : schema.optional();
454
+ } else if (jsonSchema.type === "array") {
455
+ if (!jsonSchema.items) throw new Error("Array type must have items property");
456
+ const itemSchema = convertJsonSchemaToZodSchema(jsonSchema.items, true);
457
+ const schema = zod.z.array(itemSchema).describe(jsonSchema.description ?? "");
458
+ return required ? schema : schema.optional();
459
+ }
460
+ console.error("Invalid JSON schema:", JSON.stringify(jsonSchema, null, 2));
461
+ throw new Error("Invalid JSON schema");
462
+ }
463
+ /**
464
+ * Converts AG-UI tools to Vercel AI SDK ToolSet
465
+ */
466
+ function isJsonSchema(obj) {
467
+ if (typeof obj !== "object" || obj === null) return false;
468
+ const schema = obj;
469
+ if (Object.keys(schema).length === 0) return true;
470
+ return typeof schema.type === "string" && [
471
+ "object",
472
+ "string",
473
+ "number",
474
+ "integer",
475
+ "boolean",
476
+ "array"
477
+ ].includes(schema.type);
478
+ }
479
+ /**
480
+ * Type-only pass-through for handing a Zod schema to the AI SDK's `tool()`.
481
+ * The raw Zod schema is returned unchanged at runtime — the SDK's `asSchema()`
482
+ * converts and validates it internally exactly as before.
483
+ *
484
+ * The Zod type is erased through `unknown` deliberately: letting tsc relate
485
+ * Zod schema types to the AI SDK's `FlexibleSchema` union (conditional types
486
+ * spanning zod v3/v4) makes type instantiation explode (TS2589 / compiler
487
+ * OOM) under this package's `moduleResolution: node`.
488
+ */
489
+ function toLanguageModelSchema(schema) {
490
+ return schema;
491
+ }
492
+ /** Preserve AG-UI tool schemas when passing them to the model provider. */
493
+ function convertToolsToVercelAITools(tools) {
494
+ const result = {};
495
+ for (const tool of tools) {
496
+ if (!isJsonSchema(tool.parameters)) throw new Error(`Invalid JSON schema for tool ${tool.name}`);
497
+ const validator = new _cfworker_json_schema.Validator(tool.parameters, "7");
498
+ result[tool.name] = (0, ai.tool)({
499
+ description: tool.description,
500
+ inputSchema: (0, ai.jsonSchema)(tool.parameters, { validate: (value) => {
501
+ return validator.validate(value).valid ? {
502
+ success: true,
503
+ value
504
+ } : {
505
+ success: false,
506
+ error: /* @__PURE__ */ new Error(`Invalid arguments for tool ${tool.name}`)
507
+ };
508
+ } }),
509
+ ...tool.name === _ag_ui_a2ui_middleware.RENDER_A2UI_TOOL.name ? { strict: false } : {}
510
+ });
511
+ }
512
+ return result;
513
+ }
514
+ /**
515
+ * Check whether a schema is a Zod schema by inspecting its Standard Schema vendor.
516
+ */
517
+ function isZodSchema(schema) {
518
+ return schema["~standard"]?.vendor === "zod";
519
+ }
520
+ /**
521
+ * Converts ToolDefinition array to Vercel AI SDK ToolSet.
522
+ *
523
+ * For Zod schemas, passes them directly to the AI SDK (Zod satisfies FlexibleSchema).
524
+ * For non-Zod schemas, converts to JSON Schema via schemaToJsonSchema() and wraps
525
+ * with the AI SDK's jsonSchema() helper.
526
+ */
527
+ function convertToolDefinitionsToVercelAITools(tools) {
528
+ const result = {};
529
+ for (const tool of tools) if (isZodSchema(tool.parameters)) result[tool.name] = (0, ai.tool)({
530
+ description: tool.description,
531
+ inputSchema: tool.parameters,
532
+ execute: tool.execute
533
+ });
534
+ else {
535
+ const jsonSchemaObj = (0, _copilotkit_shared.schemaToJsonSchema)(tool.parameters);
536
+ result[tool.name] = (0, ai.tool)({
537
+ description: tool.description,
538
+ inputSchema: (0, ai.jsonSchema)(jsonSchemaObj),
539
+ execute: tool.execute
540
+ });
541
+ }
542
+ return result;
543
+ }
544
+ /**
545
+ * Type guard: returns true if this is a factory-mode config.
546
+ */
547
+ function isFactoryConfig(config) {
548
+ return "factory" in config;
549
+ }
550
+ var BuiltInAgent = class BuiltInAgent extends _ag_ui_client.AbstractAgent {
551
+ constructor(config) {
552
+ super();
553
+ this.config = config;
554
+ if (!isFactoryConfig(config)) this.urlDownload = require_url_download.resolveUrlDownloadSetting(config.urlDownload);
555
+ else if ("urlDownload" in config) throw new Error("BuiltInAgent: urlDownload has no effect in factory mode. Pass experimental_download: createSafeUrlDownload({ signal: ctx.abortSignal }) (from @copilotkit/runtime) to your own streamText() call instead.");
556
+ this.skillRegistry = config.learnedSkills === void 0 ? void 0 : new require_registry.SkillRegistry(config.learnedSkills);
557
+ this.modelHostClass = isFactoryConfig(config) ? "unknown" : classifyModelSpec(config.model);
558
+ }
559
+ /**
560
+ * Check if a property can be overridden by forwardedProps
561
+ */
562
+ canOverride(property) {
563
+ if (isFactoryConfig(this.config)) return false;
564
+ return this.config?.overridableProperties?.includes(property) ?? false;
565
+ }
566
+ async getCapabilities() {
567
+ const inferred = {
568
+ tools: {
569
+ supported: true,
570
+ clientProvided: true
571
+ },
572
+ transport: { streaming: true },
573
+ humanInTheLoop: { interrupts: true }
574
+ };
575
+ const capabilities = isFactoryConfig(this.config) ? void 0 : this.config.capabilities;
576
+ if (!capabilities) return inferred;
577
+ return {
578
+ ...inferred,
579
+ ...capabilities
580
+ };
581
+ }
582
+ run(input) {
583
+ if (isFactoryConfig(this.config)) return this.runFactory(input, this.config);
584
+ const config = this.config;
585
+ if (this.abortController) throw new Error("Agent is already running. Call abortRun() first or create a new instance.");
586
+ this.abortController = new AbortController();
587
+ const abortController = this.abortController;
588
+ return new rxjs.Observable((subscriber) => {
589
+ const startEvent = {
590
+ type: _ag_ui_client.EventType.RUN_STARTED,
591
+ threadId: input.threadId,
592
+ runId: input.runId,
593
+ protocolVersion: _ag_ui_client.PROTOCOL_VERSION
594
+ };
595
+ subscriber.next(startEvent);
596
+ const model = resolveModel(config.model, config.apiKey);
597
+ let systemPrompt = void 0;
598
+ const hasPrompt = !!config.prompt;
599
+ const hasContext = input.context && input.context.length > 0;
600
+ const hasState = input.state !== void 0 && input.state !== null && !(typeof input.state === "object" && Object.keys(input.state).length === 0);
601
+ if (hasPrompt || hasContext || hasState) {
602
+ const parts = [];
603
+ if (hasPrompt) parts.push(config.prompt);
604
+ if (hasContext) {
605
+ parts.push("\n## Context from the application\n");
606
+ for (const ctx of input.context) parts.push(`${ctx.description}:\n${ctx.value}\n`);
607
+ }
608
+ if (hasState) parts.push(`
609
+ ## Application State
610
+ This is state from the application that you can edit by calling AGUISendStateSnapshot or AGUISendStateDelta.
611
+ \`\`\`json\n${JSON.stringify(input.state, null, 2)}\n\`\`\`\n`);
612
+ systemPrompt = parts.join("");
613
+ }
614
+ const systemMessages = [];
615
+ if (systemPrompt) systemMessages.push({
616
+ role: "system",
617
+ content: systemPrompt
618
+ });
619
+ const messages = convertMessagesToVercelAISDKMessages(input.messages, {
620
+ forwardSystemMessages: config.forwardSystemMessages,
621
+ forwardDeveloperMessages: config.forwardDeveloperMessages
622
+ });
623
+ const resumeEntries = input.resume ?? [];
624
+ if (resumeEntries.length > 0) {
625
+ const toolNameById = /* @__PURE__ */ new Map();
626
+ for (const m of input.messages) {
627
+ if (m.role !== "assistant") continue;
628
+ for (const tc of m.toolCalls ?? []) if (tc.id && tc.function?.name) toolNameById.set(tc.id, tc.function.name);
629
+ }
630
+ const alreadyAnswered = /* @__PURE__ */ new Set();
631
+ for (const m of messages) {
632
+ if (m.role !== "tool" || !Array.isArray(m.content)) continue;
633
+ for (const part of m.content) if (part && typeof part === "object" && "toolCallId" in part) alreadyAnswered.add(part.toolCallId);
634
+ }
635
+ for (const entry of resumeEntries) {
636
+ if (alreadyAnswered.has(entry.interruptId)) continue;
637
+ const value = entry.status === "cancelled" ? { status: "cancelled" } : entry.payload ?? { status: "resolved" };
638
+ const toolResultMessage = {
639
+ role: "tool",
640
+ content: [{
641
+ type: "tool-result",
642
+ toolCallId: entry.interruptId,
643
+ toolName: toolNameById.get(entry.interruptId) ?? "",
644
+ output: {
645
+ type: "json",
646
+ value
647
+ }
648
+ }]
649
+ };
650
+ messages.push(toolResultMessage);
651
+ }
652
+ }
653
+ let allTools = convertToolsToVercelAITools(input.tools);
654
+ if (config.tools && config.tools.length > 0) {
655
+ const configTools = convertToolDefinitionsToVercelAITools(config.tools);
656
+ allTools = {
657
+ ...allTools,
658
+ ...configTools
659
+ };
660
+ }
661
+ const streamTextParams = {
662
+ model,
663
+ messages,
664
+ tools: allTools,
665
+ toolChoice: config.toolChoice,
666
+ stopWhen: config.maxSteps ? (0, ai.stepCountIs)(config.maxSteps) : void 0,
667
+ maxOutputTokens: config.maxOutputTokens,
668
+ temperature: config.temperature,
669
+ topP: config.topP,
670
+ topK: config.topK,
671
+ presencePenalty: config.presencePenalty,
672
+ frequencyPenalty: config.frequencyPenalty,
673
+ stopSequences: config.stopSequences,
674
+ seed: config.seed,
675
+ providerOptions: config.providerOptions,
676
+ maxRetries: config.maxRetries,
677
+ experimental_download: this.urlDownload?.(abortController.signal)
678
+ };
679
+ if (input.forwardedProps && typeof input.forwardedProps === "object") {
680
+ const props = input.forwardedProps;
681
+ if (props.model !== void 0 && this.canOverride("model")) {
682
+ if (typeof props.model === "string" || typeof props.model === "object") streamTextParams.model = resolveModel(props.model, config.apiKey);
683
+ }
684
+ if (props.toolChoice !== void 0 && this.canOverride("toolChoice")) {
685
+ const toolChoice = props.toolChoice;
686
+ if (toolChoice === "auto" || toolChoice === "required" || toolChoice === "none" || typeof toolChoice === "object" && toolChoice !== null && "type" in toolChoice && toolChoice.type === "tool") streamTextParams.toolChoice = toolChoice;
687
+ }
688
+ if (typeof props.maxOutputTokens === "number" && this.canOverride("maxOutputTokens")) streamTextParams.maxOutputTokens = props.maxOutputTokens;
689
+ if (typeof props.temperature === "number" && this.canOverride("temperature")) streamTextParams.temperature = props.temperature;
690
+ if (typeof props.topP === "number" && this.canOverride("topP")) streamTextParams.topP = props.topP;
691
+ if (typeof props.topK === "number" && this.canOverride("topK")) streamTextParams.topK = props.topK;
692
+ if (typeof props.presencePenalty === "number" && this.canOverride("presencePenalty")) streamTextParams.presencePenalty = props.presencePenalty;
693
+ if (typeof props.frequencyPenalty === "number" && this.canOverride("frequencyPenalty")) streamTextParams.frequencyPenalty = props.frequencyPenalty;
694
+ if (Array.isArray(props.stopSequences) && this.canOverride("stopSequences")) {
695
+ if (props.stopSequences.every((item) => typeof item === "string")) streamTextParams.stopSequences = props.stopSequences;
696
+ }
697
+ if (typeof props.seed === "number" && this.canOverride("seed")) streamTextParams.seed = props.seed;
698
+ if (typeof props.maxRetries === "number" && this.canOverride("maxRetries")) streamTextParams.maxRetries = props.maxRetries;
699
+ if (props.providerOptions !== void 0 && this.canOverride("providerOptions")) {
700
+ if (typeof props.providerOptions === "object" && props.providerOptions !== null) streamTextParams.providerOptions = props.providerOptions;
701
+ }
702
+ }
703
+ const mcpClients = [];
704
+ (async () => {
705
+ let terminalEventEmitted = false;
706
+ let messageId = (0, _copilotkit_shared.randomUUID)();
707
+ let reasoningMessageId = (0, _copilotkit_shared.randomUUID)();
708
+ let isInReasoning = false;
709
+ const closeReasoningIfOpen = () => {
710
+ if (!isInReasoning) return;
711
+ isInReasoning = false;
712
+ const reasoningMsgEnd = {
713
+ type: _ag_ui_client.EventType.REASONING_MESSAGE_END,
714
+ messageId: reasoningMessageId
715
+ };
716
+ subscriber.next(reasoningMsgEnd);
717
+ const reasoningEnd = {
718
+ type: _ag_ui_client.EventType.REASONING_END,
719
+ messageId: reasoningMessageId
720
+ };
721
+ subscriber.next(reasoningEnd);
722
+ };
723
+ try {
724
+ const learnedSkills = await require_learned_skills.prepareLearnedSkills(this.skillRegistry, abortController.signal);
725
+ abortController.signal.throwIfAborted();
726
+ if (learnedSkills.catalog) {
727
+ systemMessages.unshift({
728
+ role: "system",
729
+ content: learnedSkills.catalog
730
+ });
731
+ if (config.maxSteps === void 0) streamTextParams.stopWhen = (0, ai.stepCountIs)(10);
732
+ }
733
+ streamTextParams.tools = {
734
+ ...streamTextParams.tools,
735
+ AGUISendStateSnapshot: (0, ai.tool)({
736
+ description: "Replace the entire application state with a new snapshot",
737
+ inputSchema: toLanguageModelSchema(zod.z.object({ snapshot: zod.z.any().describe("The complete new state object") })),
738
+ execute: async ({ snapshot }) => {
739
+ return {
740
+ success: true,
741
+ snapshot
742
+ };
743
+ }
744
+ }),
745
+ AGUISendStateDelta: (0, ai.tool)({
746
+ description: "Apply incremental updates to application state using JSON Patch operations",
747
+ inputSchema: toLanguageModelSchema(zod.z.object({ delta: zod.z.array(zod.z.object({
748
+ op: zod.z.enum([
749
+ "add",
750
+ "replace",
751
+ "remove"
752
+ ]).describe("The operation to perform"),
753
+ path: zod.z.string().describe("JSON Pointer path (e.g., '/foo/bar')"),
754
+ value: zod.z.any().optional().describe("The value to set. Required for 'add' and 'replace' operations, ignored for 'remove'.")
755
+ })).describe("Array of JSON Patch operations") })),
756
+ execute: async ({ delta }) => {
757
+ return {
758
+ success: true,
759
+ delta
760
+ };
761
+ }
762
+ })
763
+ };
764
+ const mcpToolSources = [];
765
+ const userMcpClients = config.mcpClients ?? [];
766
+ for (const [index, client] of userMcpClients.entries()) {
767
+ const mcpTools = await client.tools();
768
+ abortController.signal.throwIfAborted();
769
+ mcpToolSources.push({
770
+ label: `mcp${index + 1}`,
771
+ tools: mcpTools
772
+ });
773
+ }
774
+ const allMcpServers = [...config.mcpServers ?? []];
775
+ if (allMcpServers.length > 0) for (const [index, serverConfig] of allMcpServers.entries()) {
776
+ const label = serverConfig.name ? require_mcp_tool_names.toToolNamePrefix(serverConfig.name) : `mcp${userMcpClients.length + index + 1}`;
777
+ let transport;
778
+ if (serverConfig.type === "http") transport = new _modelcontextprotocol_sdk_client_streamableHttp_js.StreamableHTTPClientTransport(new URL(serverConfig.url), serverConfig.options);
779
+ else if (serverConfig.type === "sse") {
780
+ const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
781
+ abortController.signal.throwIfAborted();
782
+ transport = new SSEClientTransport(new URL(serverConfig.url), serverConfig.headers ? { requestInit: { headers: serverConfig.headers } } : void 0);
783
+ }
784
+ if (transport) {
785
+ let mcpClient;
786
+ try {
787
+ mcpClient = await (0, _ai_sdk_mcp.createMCPClient)({ transport });
788
+ } catch (err) {
789
+ abortController.signal.throwIfAborted();
790
+ console.error(`[CopilotKit] MCP server ${require_describe_endpoint.describeEndpoint(serverConfig.url)} failed to connect — skipping it for this run:`, err);
791
+ continue;
792
+ }
793
+ if (abortController.signal.aborted) {
794
+ await mcpClient.close();
795
+ abortController.signal.throwIfAborted();
796
+ }
797
+ mcpClients.push(mcpClient);
798
+ try {
799
+ const mcpTools = await mcpClient.tools();
800
+ abortController.signal.throwIfAborted();
801
+ mcpToolSources.push({
802
+ label,
803
+ tools: mcpTools
804
+ });
805
+ } catch (err) {
806
+ abortController.signal.throwIfAborted();
807
+ console.error(`[CopilotKit] MCP server ${require_describe_endpoint.describeEndpoint(serverConfig.url)} tools() failed — skipping its tools for this run:`, err);
808
+ }
809
+ }
810
+ }
811
+ if (mcpToolSources.length > 0) streamTextParams.tools = require_mcp_tool_names.mergeMCPTools(streamTextParams.tools ?? {}, mcpToolSources);
812
+ if (this.skillRegistry) {
813
+ require_learned_skills.assertNoSkillToolConflicts(streamTextParams.tools ?? {});
814
+ streamTextParams.tools = {
815
+ ...streamTextParams.tools,
816
+ ...learnedSkills.tools
817
+ };
818
+ }
819
+ abortController.signal.throwIfAborted();
820
+ const response = (0, ai.streamText)({
821
+ ...streamTextParams,
822
+ ...messages.length > 0 ? { system: systemMessages.length > 0 ? systemMessages : void 0 } : { messages: systemMessages },
823
+ abortSignal: abortController.signal,
824
+ onError: ({ error }) => require_url_download.logModelCallError(error)
825
+ });
826
+ const interruptToolNames = new Set((isFactoryConfig(this.config) ? [] : this.config.tools ?? []).filter((t) => t.interrupt).map((t) => t.name));
827
+ const interruptToolMeta = new Map((isFactoryConfig(this.config) ? [] : this.config.tools ?? []).filter((t) => t.interrupt).map((t) => [t.name, {
828
+ reason: t.interruptReason ?? "tool_call",
829
+ message: t.interruptMessage
830
+ }]));
831
+ const pendingInterrupts = [];
832
+ const normalizeStateEvent = require_state_delta.createStateEventNormalizer(input.state);
833
+ const toolCallStates = /* @__PURE__ */ new Map();
834
+ const ensureToolCallState = (toolCallId) => {
835
+ let state = toolCallStates.get(toolCallId);
836
+ if (!state) {
837
+ state = {
838
+ started: false,
839
+ hasArgsDelta: false,
840
+ ended: false
841
+ };
842
+ toolCallStates.set(toolCallId, state);
843
+ }
844
+ return state;
845
+ };
846
+ const warnedUnknownPartTypes = /* @__PURE__ */ new Set();
847
+ for await (const part of response.fullStream) {
848
+ if (part.type !== "reasoning-delta") closeReasoningIfOpen();
849
+ switch (part.type) {
850
+ case "abort": {
851
+ const abortEndEvent = {
852
+ type: _ag_ui_client.EventType.RUN_FINISHED,
853
+ threadId: input.threadId,
854
+ runId: input.runId,
855
+ ...input.protocolVersion !== void 0 ? { outcome: { type: "cancelled" } } : {}
856
+ };
857
+ subscriber.next(abortEndEvent);
858
+ terminalEventEmitted = true;
859
+ subscriber.complete();
860
+ break;
861
+ }
862
+ case "reasoning-start": {
863
+ reasoningMessageId = require_aisdk.resolveStreamPartMessageId("id" in part ? part.id : void 0);
864
+ const reasoningStartEvent = {
865
+ type: _ag_ui_client.EventType.REASONING_START,
866
+ messageId: reasoningMessageId
867
+ };
868
+ subscriber.next(reasoningStartEvent);
869
+ const reasoningMessageStart = {
870
+ type: _ag_ui_client.EventType.REASONING_MESSAGE_START,
871
+ messageId: reasoningMessageId,
872
+ role: "reasoning"
873
+ };
874
+ subscriber.next(reasoningMessageStart);
875
+ isInReasoning = true;
876
+ break;
877
+ }
878
+ case "reasoning-delta": {
879
+ const delta = part.text ?? "";
880
+ if (!delta) break;
881
+ const reasoningDeltaEvent = {
882
+ type: _ag_ui_client.EventType.REASONING_MESSAGE_CONTENT,
883
+ messageId: reasoningMessageId,
884
+ delta
885
+ };
886
+ subscriber.next(reasoningDeltaEvent);
887
+ break;
888
+ }
889
+ case "reasoning-end": break;
890
+ case "tool-input-start": {
891
+ const toolCallId = part.id;
892
+ const state = ensureToolCallState(toolCallId);
893
+ state.toolName = part.toolName;
894
+ if (!state.started) {
895
+ state.started = true;
896
+ const startEvent = {
897
+ type: _ag_ui_client.EventType.TOOL_CALL_START,
898
+ parentMessageId: messageId,
899
+ toolCallId,
900
+ toolCallName: part.toolName
901
+ };
902
+ subscriber.next(startEvent);
903
+ }
904
+ break;
905
+ }
906
+ case "tool-input-delta": {
907
+ const toolCallId = part.id;
908
+ const state = ensureToolCallState(toolCallId);
909
+ state.hasArgsDelta = true;
910
+ const argsEvent = {
911
+ type: _ag_ui_client.EventType.TOOL_CALL_ARGS,
912
+ toolCallId,
913
+ delta: part.delta
914
+ };
915
+ subscriber.next(argsEvent);
916
+ break;
917
+ }
918
+ case "tool-input-end": break;
919
+ case "text-start":
920
+ messageId = require_aisdk.resolveStreamPartMessageId("id" in part ? part.id : void 0);
921
+ break;
922
+ case "text-delta": {
923
+ const textDelta = "text" in part ? part.text : "";
924
+ const textEvent = {
925
+ type: _ag_ui_client.EventType.TEXT_MESSAGE_CHUNK,
926
+ role: "assistant",
927
+ messageId,
928
+ delta: textDelta
929
+ };
930
+ subscriber.next(textEvent);
931
+ break;
932
+ }
933
+ case "tool-call": {
934
+ const toolCallId = part.toolCallId;
935
+ const state = ensureToolCallState(toolCallId);
936
+ state.toolName = part.toolName ?? state.toolName;
937
+ if (!state.started) {
938
+ state.started = true;
939
+ const startEvent = {
940
+ type: _ag_ui_client.EventType.TOOL_CALL_START,
941
+ parentMessageId: messageId,
942
+ toolCallId,
943
+ toolCallName: part.toolName
944
+ };
945
+ subscriber.next(startEvent);
946
+ }
947
+ if (!state.hasArgsDelta && "input" in part && part.input !== void 0) {
948
+ let serializedInput = "";
949
+ if (typeof part.input === "string") serializedInput = part.input;
950
+ else try {
951
+ serializedInput = JSON.stringify(part.input);
952
+ } catch {
953
+ serializedInput = String(part.input);
954
+ }
955
+ if (serializedInput.length > 0) {
956
+ const argsEvent = {
957
+ type: _ag_ui_client.EventType.TOOL_CALL_ARGS,
958
+ toolCallId,
959
+ delta: serializedInput
960
+ };
961
+ subscriber.next(argsEvent);
962
+ state.hasArgsDelta = true;
963
+ }
964
+ }
965
+ if (!state.ended) {
966
+ state.ended = true;
967
+ const endEvent = {
968
+ type: _ag_ui_client.EventType.TOOL_CALL_END,
969
+ toolCallId
970
+ };
971
+ subscriber.next(endEvent);
972
+ }
973
+ if (state.toolName && interruptToolNames.has(state.toolName)) {
974
+ const meta = interruptToolMeta.get(state.toolName);
975
+ pendingInterrupts.push({
976
+ id: toolCallId,
977
+ toolCallId,
978
+ reason: meta?.reason ?? "tool_call",
979
+ ...meta?.message ? { message: meta.message } : {}
980
+ });
981
+ }
982
+ break;
983
+ }
984
+ case "tool-result": {
985
+ const toolName = "toolName" in part && part.toolName || toolCallStates.get(part.toolCallId)?.toolName || "";
986
+ if (toolName && interruptToolNames.has(toolName)) {
987
+ toolCallStates.delete(part.toolCallId);
988
+ break;
989
+ }
990
+ const legacyPart = part;
991
+ const toolResult = "output" in part ? part.output : "result" in legacyPart ? legacyPart.result : null;
992
+ toolCallStates.delete(part.toolCallId);
993
+ if (toolName === "AGUISendStateSnapshot" && toolResult && typeof toolResult === "object") {
994
+ const snapshot = toolResult.snapshot;
995
+ if (snapshot !== void 0) {
996
+ const stateSnapshotEvent = {
997
+ type: _ag_ui_client.EventType.STATE_SNAPSHOT,
998
+ snapshot
999
+ };
1000
+ for (const event of normalizeStateEvent(stateSnapshotEvent)) subscriber.next(event);
1001
+ }
1002
+ } else if (toolName === "AGUISendStateDelta" && toolResult && typeof toolResult === "object") {
1003
+ const delta = toolResult.delta;
1004
+ if (delta !== void 0) {
1005
+ const stateDeltaEvent = {
1006
+ type: _ag_ui_client.EventType.STATE_DELTA,
1007
+ delta
1008
+ };
1009
+ for (const event of normalizeStateEvent(stateDeltaEvent)) subscriber.next(event);
1010
+ }
1011
+ }
1012
+ let serializedResult;
1013
+ try {
1014
+ serializedResult = JSON.stringify(toolResult);
1015
+ } catch {
1016
+ serializedResult = `[Unserializable tool result from ${toolName || part.toolCallId}]`;
1017
+ }
1018
+ const resultEvent = {
1019
+ type: _ag_ui_client.EventType.TOOL_CALL_RESULT,
1020
+ role: "tool",
1021
+ messageId: (0, _copilotkit_shared.randomUUID)(),
1022
+ toolCallId: part.toolCallId,
1023
+ content: serializedResult
1024
+ };
1025
+ subscriber.next(resultEvent);
1026
+ break;
1027
+ }
1028
+ case "tool-error": {
1029
+ const toolCallId = part.toolCallId;
1030
+ const toolName = "toolName" in part && part.toolName || toolCallStates.get(toolCallId)?.toolName || "";
1031
+ if (toolName && interruptToolNames.has(toolName)) {
1032
+ toolCallStates.delete(toolCallId);
1033
+ break;
1034
+ }
1035
+ toolCallStates.delete(toolCallId);
1036
+ const resultEvent = {
1037
+ type: _ag_ui_client.EventType.TOOL_CALL_RESULT,
1038
+ role: "tool",
1039
+ messageId: (0, _copilotkit_shared.randomUUID)(),
1040
+ toolCallId,
1041
+ content: `Error: ${require_aisdk.formatToolError(part.error)}`
1042
+ };
1043
+ subscriber.next(resultEvent);
1044
+ break;
1045
+ }
1046
+ case "finish": {
1047
+ const model = streamTextParams.model;
1048
+ const finishedEvent = {
1049
+ type: _ag_ui_client.EventType.RUN_FINISHED,
1050
+ threadId: input.threadId,
1051
+ runId: input.runId,
1052
+ ...require_aisdk.getAISDKRunFinishedDetails(part, {
1053
+ provider: require_usage.isRecord(model) ? require_usage.getNonEmptyString(model.provider) : void 0,
1054
+ model: require_usage.isRecord(model) ? require_usage.getNonEmptyString(model.modelId) : void 0
1055
+ }),
1056
+ ...pendingInterrupts.length > 0 ? { outcome: {
1057
+ type: "interrupt",
1058
+ interrupts: pendingInterrupts
1059
+ } } : {}
1060
+ };
1061
+ subscriber.next(finishedEvent);
1062
+ terminalEventEmitted = true;
1063
+ subscriber.complete();
1064
+ break;
1065
+ }
1066
+ case "error": {
1067
+ if (abortController.signal.aborted) break;
1068
+ const err = part.error ?? ("message" in part ? part.message : void 0) ?? ("cause" in part ? part.cause : void 0);
1069
+ const runErrorEvent = {
1070
+ type: _ag_ui_client.EventType.RUN_ERROR,
1071
+ message: err instanceof Error ? err.message : typeof err === "string" ? err : `AI SDK stream error: ${JSON.stringify(part)}`,
1072
+ threadId: input.threadId,
1073
+ runId: input.runId
1074
+ };
1075
+ subscriber.next(runErrorEvent);
1076
+ terminalEventEmitted = true;
1077
+ if (err instanceof Error) subscriber.error(err);
1078
+ else subscriber.error(new Error(typeof err === "string" ? err : `AI SDK stream error`));
1079
+ break;
1080
+ }
1081
+ case "start":
1082
+ case "start-step":
1083
+ case "finish-step":
1084
+ case "text-end":
1085
+ case "source":
1086
+ case "file":
1087
+ case "tool-output-denied":
1088
+ case "tool-approval-request":
1089
+ case "raw": break;
1090
+ default: {
1091
+ const _exhaustive = part;
1092
+ const unknownType = String(_exhaustive.type);
1093
+ if (!warnedUnknownPartTypes.has(unknownType)) {
1094
+ warnedUnknownPartTypes.add(unknownType);
1095
+ console.warn(`[BuiltInAgent] Ignoring unhandled AI SDK stream part: ${unknownType}`);
1096
+ }
1097
+ break;
1098
+ }
1099
+ }
1100
+ }
1101
+ if (!terminalEventEmitted) {
1102
+ closeReasoningIfOpen();
1103
+ if (abortController.signal.aborted) {} else {
1104
+ const finishedEvent = {
1105
+ type: _ag_ui_client.EventType.RUN_FINISHED,
1106
+ threadId: input.threadId,
1107
+ runId: input.runId,
1108
+ ...pendingInterrupts.length > 0 ? { outcome: {
1109
+ type: "interrupt",
1110
+ interrupts: pendingInterrupts
1111
+ } } : {}
1112
+ };
1113
+ subscriber.next(finishedEvent);
1114
+ }
1115
+ terminalEventEmitted = true;
1116
+ subscriber.complete();
1117
+ }
1118
+ } catch (error) {
1119
+ closeReasoningIfOpen();
1120
+ if (abortController.signal.aborted) subscriber.complete();
1121
+ else {
1122
+ const runErrorEvent = {
1123
+ type: _ag_ui_client.EventType.RUN_ERROR,
1124
+ message: error instanceof Error ? error.message : String(error),
1125
+ threadId: input.threadId,
1126
+ runId: input.runId
1127
+ };
1128
+ subscriber.next(runErrorEvent);
1129
+ terminalEventEmitted = true;
1130
+ subscriber.error(error);
1131
+ }
1132
+ } finally {
1133
+ if (this.abortController === abortController) this.abortController = void 0;
1134
+ await Promise.all(mcpClients.map((client) => client.close()));
1135
+ }
1136
+ })();
1137
+ return () => {
1138
+ abortController.abort();
1139
+ if (this.abortController === abortController) this.abortController = void 0;
1140
+ Promise.all(mcpClients.map((client) => client.close())).catch(() => {});
1141
+ };
1142
+ });
1143
+ }
1144
+ runFactory(input, config) {
1145
+ if (this.abortController) throw new Error("Agent is already running. Call abortRun() first or create a new instance.");
1146
+ this.abortController = new AbortController();
1147
+ const controller = this.abortController;
1148
+ return new rxjs.Observable((subscriber) => {
1149
+ const startEvent = {
1150
+ type: _ag_ui_client.EventType.RUN_STARTED,
1151
+ threadId: input.threadId,
1152
+ runId: input.runId,
1153
+ protocolVersion: _ag_ui_client.PROTOCOL_VERSION
1154
+ };
1155
+ subscriber.next(startEvent);
1156
+ const ctx = {
1157
+ input,
1158
+ abortController: controller,
1159
+ abortSignal: controller.signal,
1160
+ interrupt: async (interrupts) => {
1161
+ const resume = input.resume ?? [];
1162
+ const ids = new Set(interrupts.map((i) => i.id));
1163
+ const matching = resume.filter((r) => ids.has(r.interruptId));
1164
+ if (interrupts.length > 0 && matching.length === interrupts.length) return matching;
1165
+ throw new InterruptSignal(interrupts);
1166
+ }
1167
+ };
1168
+ (async () => {
1169
+ const runFinishedDetails = {};
1170
+ try {
1171
+ const toolCallIds = new Set(input.messages.flatMap((message) => message.role === "assistant" ? (message.toolCalls ?? []).map((call) => call.id) : []));
1172
+ const answeredToolMessages = input.messages.filter((message) => message.role === "tool");
1173
+ const answeredToolCallIds = new Set(answeredToolMessages.map((message) => message.toolCallId));
1174
+ const nativeResume = config.type === "custom" ? [] : input.resume ?? [];
1175
+ const resumeToolMessages = [];
1176
+ const decisionsByCall = /* @__PURE__ */ new Map();
1177
+ for (const entry of nativeResume) {
1178
+ if (!toolCallIds.has(entry.interruptId)) continue;
1179
+ const content = JSON.stringify(entry.status === "cancelled" ? { status: "cancelled" } : entry.payload ?? { status: "resolved" });
1180
+ if (decisionsByCall.has(entry.interruptId)) {
1181
+ if (decisionsByCall.get(entry.interruptId) !== content) throw new Error(`Conflicting decisions for resumed tool call ${entry.interruptId}`);
1182
+ continue;
1183
+ }
1184
+ decisionsByCall.set(entry.interruptId, content);
1185
+ if (answeredToolCallIds.has(entry.interruptId)) continue;
1186
+ resumeToolMessages.push({
1187
+ id: (0, _copilotkit_shared.randomUUID)(),
1188
+ role: "tool",
1189
+ toolCallId: entry.interruptId,
1190
+ content
1191
+ });
1192
+ }
1193
+ const resumedIds = new Set(nativeResume.map((entry) => entry.interruptId));
1194
+ const resumedResults = new Map([...answeredToolMessages, ...resumeToolMessages].filter((message) => resumedIds.has(message.toolCallId)).map((message) => [message.toolCallId, message.content]));
1195
+ for (const message of resumeToolMessages) {
1196
+ const event = {
1197
+ type: _ag_ui_client.EventType.TOOL_CALL_RESULT,
1198
+ messageId: message.id,
1199
+ toolCallId: message.toolCallId,
1200
+ role: "tool",
1201
+ content: message.content
1202
+ };
1203
+ subscriber.next(event);
1204
+ }
1205
+ const factoryInput = resumeToolMessages.length > 0 && config.type !== "custom" ? {
1206
+ ...input,
1207
+ messages: [...input.messages, ...resumeToolMessages]
1208
+ } : input;
1209
+ const learnedSkills = await require_learned_skills.prepareLearnedSkills(this.skillRegistry, controller.signal);
1210
+ controller.signal.throwIfAborted();
1211
+ const factoryCtx = {
1212
+ ...ctx,
1213
+ input: factoryInput,
1214
+ learnedSkills
1215
+ };
1216
+ let events;
1217
+ let customRunFinishedEvent;
1218
+ const pendingInterrupts = [];
1219
+ switch (config.type) {
1220
+ case "aisdk":
1221
+ events = require_aisdk.convertAISDKStream((await config.factory(factoryCtx)).fullStream, controller.signal, pendingInterrupts, input.state, runFinishedDetails);
1222
+ break;
1223
+ case "tanstack":
1224
+ events = require_tanstack.convertTanStackStream(await config.factory(factoryCtx), controller.signal, pendingInterrupts, input.state, runFinishedDetails);
1225
+ break;
1226
+ case "custom":
1227
+ events = await config.factory(factoryCtx);
1228
+ break;
1229
+ default: {
1230
+ const _exhaustive = config;
1231
+ throw new Error(`Unknown agent config type: ${_exhaustive.type}`);
1232
+ }
1233
+ }
1234
+ for await (const event of events) {
1235
+ if (event.type === _ag_ui_client.EventType.TOOL_CALL_RESULT && "toolCallId" in event && typeof event.toolCallId === "string" && "content" in event && resumedResults.has(event.toolCallId)) {
1236
+ if (resumedResults.get(event.toolCallId) !== event.content) throw new Error(`Conflicting result for resumed tool call ${event.toolCallId}`);
1237
+ continue;
1238
+ }
1239
+ if (config.type === "custom" && event.type === _ag_ui_client.EventType.RUN_FINISHED) {
1240
+ customRunFinishedEvent = event;
1241
+ require_usage.collectStandardRunFinishedDetails(event, runFinishedDetails);
1242
+ continue;
1243
+ }
1244
+ subscriber.next(event);
1245
+ }
1246
+ if (pendingInterrupts.length > 0 && !controller.signal.aborted) throw new InterruptSignal(pendingInterrupts);
1247
+ if (!controller.signal.aborted) {
1248
+ const finishedEvent = {
1249
+ ...customRunFinishedEvent,
1250
+ type: _ag_ui_client.EventType.RUN_FINISHED,
1251
+ threadId: input.threadId,
1252
+ runId: input.runId,
1253
+ ...runFinishedDetails
1254
+ };
1255
+ subscriber.next(finishedEvent);
1256
+ }
1257
+ subscriber.complete();
1258
+ } catch (error) {
1259
+ if (error instanceof InterruptSignal) {
1260
+ const finishedEvent = {
1261
+ type: _ag_ui_client.EventType.RUN_FINISHED,
1262
+ threadId: input.threadId,
1263
+ runId: input.runId,
1264
+ ...runFinishedDetails,
1265
+ outcome: {
1266
+ type: "interrupt",
1267
+ interrupts: error.interrupts
1268
+ }
1269
+ };
1270
+ subscriber.next(finishedEvent);
1271
+ subscriber.complete();
1272
+ } else if (controller.signal.aborted) subscriber.complete();
1273
+ else {
1274
+ const runErrorEvent = {
1275
+ type: _ag_ui_client.EventType.RUN_ERROR,
1276
+ message: error instanceof Error ? error.message : String(error),
1277
+ threadId: input.threadId,
1278
+ runId: input.runId
1279
+ };
1280
+ subscriber.next(runErrorEvent);
1281
+ subscriber.error(error);
1282
+ }
1283
+ } finally {
1284
+ if (this.abortController === controller) this.abortController = void 0;
1285
+ }
1286
+ })();
1287
+ return () => {
1288
+ controller.abort();
1289
+ if (this.abortController === controller) this.abortController = void 0;
1290
+ };
1291
+ });
1292
+ }
1293
+ clone() {
1294
+ const cloned = new BuiltInAgent({
1295
+ ...this.config,
1296
+ learnedSkills: void 0
1297
+ });
1298
+ cloned.config = this.config;
1299
+ cloned.skillRegistry = this.skillRegistry;
1300
+ cloned.middlewares = [...this.middlewares];
1301
+ return cloned;
1302
+ }
1303
+ abortRun() {
1304
+ this.abortController?.abort();
1305
+ }
1306
+ };
1307
+ /**
1308
+ * @deprecated Use BuiltInAgent instead
1309
+ */
1310
+ var BasicAgent = class extends BuiltInAgent {
1311
+ constructor(config) {
1312
+ super(config);
1313
+ console.warn("BasicAgent is deprecated, use BuiltInAgent instead");
1314
+ }
1315
+ };
1316
+
1317
+ //#endregion
1318
+ exports.BasicAgent = BasicAgent;
1319
+ exports.BuiltInAgent = BuiltInAgent;
1320
+ exports.InterruptSignal = InterruptSignal;
1321
+ exports.classifyModelSpec = classifyModelSpec;
1322
+ exports.convertJsonSchemaToZodSchema = convertJsonSchemaToZodSchema;
1323
+ exports.convertMessagesToVercelAISDKMessages = convertMessagesToVercelAISDKMessages;
1324
+ exports.convertToolDefinitionsToVercelAITools = convertToolDefinitionsToVercelAITools;
1325
+ exports.convertToolsToVercelAITools = convertToolsToVercelAITools;
1326
+ exports.defineTool = defineTool;
1327
+ exports.resolveModel = resolveModel;
1328
+ //# sourceMappingURL=index.cjs.map