@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,283 @@
1
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
2
+ const require_json_response = require('../shared/json-response.cjs');
3
+ const require_learning = require('../../core/learning.cjs');
4
+ const require_intelligence_utils = require('../shared/intelligence-utils.cjs');
5
+ const require_resolve_intelligence_user = require('../shared/resolve-intelligence-user.cjs');
6
+ const require_telemetry_client = require('../../telemetry/telemetry-client.cjs');
7
+ const require_runtime_error_reporter = require('../../core/runtime-error-reporter.cjs');
8
+ const require_thread_lock_heartbeat = require('../../intelligence-platform/thread-lock-heartbeat.cjs');
9
+ const require_thread_names = require('./thread-names.cjs');
10
+ let _copilotkit_shared = require("@copilotkit/shared");
11
+ let _ag_ui_client = require("@ag-ui/client");
12
+
13
+ //#region src/runtime/handlers/intelligence/run.ts
14
+ /**
15
+ * Builds browser-facing realtime connection metadata owned by the runtime.
16
+ */
17
+ function buildRealtimeConnectionInfo(params) {
18
+ return {
19
+ clientUrl: params.clientUrl,
20
+ topic: `thread:${params.threadId}`
21
+ };
22
+ }
23
+ function hasRunnerStartupBoundary(runner) {
24
+ return typeof runner.runWithStartupBoundary === "function" && (Object.prototype.hasOwnProperty.call(runner, "runWithStartupBoundary") || Object.prototype.hasOwnProperty.call(runner, "threads"));
25
+ }
26
+ async function handleIntelligenceRun({ runtime, request, agentId, agent, input, startTime }) {
27
+ const runtimeTelemetry = runtime.telemetry ?? require_telemetry_client.default;
28
+ if (!runtime.intelligence) return Response.json({
29
+ error: "Intelligence not configured",
30
+ message: "Intelligence mode requires a CopilotKitIntelligence"
31
+ }, { status: 500 });
32
+ const user = await require_resolve_intelligence_user.resolveIntelligenceUser({
33
+ runtime,
34
+ request
35
+ });
36
+ if (require_json_response.isHandlerResponse(user)) return user;
37
+ const userId = user.id;
38
+ const proxyRequest = input.forwardedProps?.__proxiedMCPRequest;
39
+ const isDirectResourceRead = input.forwardedProps?.__copilotkitMcpResourceReadOnly === true && proxyRequest && typeof proxyRequest === "object" && proxyRequest.method === "resources/read";
40
+ const forwardedRequestId = input.forwardedProps?.__copilotkitRequestId;
41
+ const requestId = typeof forwardedRequestId === "string" && forwardedRequestId.length > 0 ? forwardedRequestId : void 0;
42
+ let learningContainerId;
43
+ try {
44
+ const selector = runtime.intelligence.ɵgetLearningContainerId?.();
45
+ learningContainerId = selector ? await require_learning.resolveLearningContainerSelector(selector, {
46
+ surface: "web",
47
+ user,
48
+ agentId,
49
+ input
50
+ }) : await require_learning.resolveLearningContainerId(runtime.learning, {
51
+ surface: "web",
52
+ request,
53
+ threadId: input.threadId,
54
+ runId: input.runId,
55
+ agentId,
56
+ userId
57
+ });
58
+ } catch (error) {
59
+ _copilotkit_shared.logger.error("Failed to resolve Learning Container:", error);
60
+ return Response.json({ error: "Failed to resolve Learning Container" }, { status: 500 });
61
+ }
62
+ let thread;
63
+ try {
64
+ const initialized = await runtime.intelligence.getOrCreateThread({
65
+ threadId: input.threadId,
66
+ userId,
67
+ agentId,
68
+ ...learningContainerId !== void 0 ? { learningContainerId } : {}
69
+ });
70
+ thread = initialized.thread;
71
+ const { created } = initialized;
72
+ if (created && runtime.generateThreadNames && !thread.name?.trim()) require_thread_names.generateThreadNameForNewThread({
73
+ runtime,
74
+ request,
75
+ agentId,
76
+ sourceInput: input,
77
+ thread,
78
+ userId
79
+ }).catch((nameError) => {
80
+ _copilotkit_shared.logger.error("Failed to generate thread name:", nameError);
81
+ });
82
+ } catch (error) {
83
+ _copilotkit_shared.logger.error("Failed to get or create thread:", error);
84
+ const platformStatus = require_intelligence_utils.getPlatformErrorStatus(error);
85
+ return Response.json({ error: "Failed to initialize thread" }, { status: platformStatus !== void 0 && platformStatus >= 400 && platformStatus < 500 ? platformStatus : 502 });
86
+ }
87
+ if (isDirectResourceRead) try {
88
+ if (thread.agentId && thread.agentId !== agentId) return Response.json({ error: "Thread belongs to another agent" }, { status: 403 });
89
+ agent.threadId = thread.id;
90
+ const run = await agent.runAgent({
91
+ runId: input.runId,
92
+ tools: input.tools,
93
+ context: input.context,
94
+ forwardedProps: input.forwardedProps
95
+ });
96
+ return Response.json({
97
+ kind: "mcp-resource-read",
98
+ threadId: thread.id,
99
+ runId: input.runId,
100
+ result: run.result ?? null
101
+ });
102
+ } catch (error) {
103
+ _copilotkit_shared.logger.error("MCP resource read failed:", error);
104
+ const status = require_intelligence_utils.getPlatformErrorStatus(error);
105
+ return Response.json({ error: "MCP resource read failed" }, { status: status && status >= 400 && status < 500 ? status : 502 });
106
+ }
107
+ let canonicalThreadId = input.threadId;
108
+ let canonicalRunId = input.runId;
109
+ let joinToken;
110
+ let backendThreadId;
111
+ let lockTtlSeconds;
112
+ let lockRequestedAt = 0;
113
+ try {
114
+ lockRequestedAt = Date.now();
115
+ const lockResult = await runtime.intelligence.ɵacquireThreadLock({
116
+ supportsBackendThreadId: true,
117
+ threadId: input.threadId,
118
+ runId: input.runId,
119
+ userId,
120
+ agentId,
121
+ ...learningContainerId !== void 0 ? { learningContainerId } : {},
122
+ ...requestId !== void 0 ? { requestId } : {},
123
+ ...runtime.lockKeyPrefix !== void 0 ? { lockKeyPrefix: runtime.lockKeyPrefix } : {},
124
+ ttlSeconds: runtime.lockTtlSeconds
125
+ });
126
+ canonicalThreadId = lockResult.threadId;
127
+ canonicalRunId = lockResult.runId;
128
+ joinToken = lockResult.joinToken;
129
+ backendThreadId = lockResult.backendThreadId;
130
+ lockTtlSeconds = lockResult.ttlSeconds;
131
+ } catch (error) {
132
+ _copilotkit_shared.logger.error("Thread lock denied:", error);
133
+ const platformStatus = require_intelligence_utils.getPlatformErrorStatus(error);
134
+ return Response.json({ error: "Thread lock denied" }, { status: platformStatus === 409 ? 409 : 502 });
135
+ }
136
+ const cleanupLock = (reason) => runtime.intelligence.ɵcleanupThreadLock({
137
+ threadId: canonicalThreadId || input.threadId,
138
+ runId: canonicalRunId || input.runId
139
+ }).catch((cleanupError) => {
140
+ _copilotkit_shared.logger.error({
141
+ err: cleanupError,
142
+ reason
143
+ }, "Failed to cleanup thread lock");
144
+ });
145
+ if (!canonicalThreadId || !canonicalRunId || !joinToken) {
146
+ await cleanupLock("malformed-lock-response");
147
+ return Response.json({
148
+ error: "Run connection credentials not available",
149
+ message: "Intelligence platform did not return canonical threadId, runId, and joinToken"
150
+ }, { status: 502 });
151
+ }
152
+ const canonicalInput = {
153
+ ...input,
154
+ threadId: canonicalThreadId,
155
+ runId: canonicalRunId
156
+ };
157
+ let persistedInputMessages;
158
+ if (Array.isArray(input.messages)) try {
159
+ const historicMessageIds = new Set(await runtime.intelligence.ɵgetThreadMessageIds({
160
+ threadId: canonicalThreadId,
161
+ userId
162
+ }));
163
+ persistedInputMessages = input.messages.filter((message) => !historicMessageIds.has(message.id));
164
+ } catch (error) {
165
+ _copilotkit_shared.logger.error("Thread history lookup failed:", error);
166
+ await cleanupLock("thread-history-lookup-failed");
167
+ return Response.json({ error: "Thread history lookup failed" }, { status: 502 });
168
+ }
169
+ runtimeTelemetry.capture("oss.runtime.agent_execution_stream_started", {});
170
+ const heartbeat = require_thread_lock_heartbeat.startThreadLockHeartbeat({
171
+ renew: (signal) => runtime.intelligence.ɵrenewThreadLock({
172
+ threadId: canonicalThreadId,
173
+ runId: canonicalRunId,
174
+ ttlSeconds: runtime.lockTtlSeconds,
175
+ ...runtime.lockKeyPrefix !== void 0 ? { lockKeyPrefix: runtime.lockKeyPrefix } : {},
176
+ signal
177
+ }),
178
+ intervalMs: runtime.lockHeartbeatIntervalSeconds * 1e3,
179
+ fallbackTtlSeconds: runtime.lockTtlSeconds,
180
+ initialTtlSeconds: lockTtlSeconds === void 0 ? void 0 : lockTtlSeconds - (Date.now() - lockRequestedAt) / 1e3,
181
+ onLost: (err) => {
182
+ _copilotkit_shared.logger.error("Failed to renew thread lock:", err);
183
+ try {
184
+ agent.abortRun();
185
+ } catch (abortError) {
186
+ _copilotkit_shared.logger.error("Failed to abort agent after lock renewal failure:", abortError);
187
+ }
188
+ }
189
+ });
190
+ const clearHeartbeat = () => {
191
+ heartbeat.stop();
192
+ };
193
+ const runStarted = { current: false };
194
+ let immediateStartupErrorMessage;
195
+ let immediateStartupCleanup;
196
+ const runRequest = {
197
+ threadId: canonicalThreadId,
198
+ ...backendThreadId === void 0 ? {} : { backendThreadId },
199
+ agent,
200
+ input: canonicalInput,
201
+ ...persistedInputMessages !== void 0 ? { persistedInputMessages } : {}
202
+ };
203
+ const runtimeErrorReporter = require_runtime_error_reporter.getRuntimeErrorReporter(runtime);
204
+ let agentErrorReported = false;
205
+ const reportAgentError = (error, phase) => {
206
+ if (agentErrorReported) return;
207
+ agentErrorReported = true;
208
+ runtimeTelemetry.capture("oss.runtime.agent_execution_stream_errored", { error: "AGENT_EXECUTION_FAILED" });
209
+ runtimeErrorReporter?.report({
210
+ request,
211
+ error,
212
+ operation: "agent.run",
213
+ agentId,
214
+ threadId: canonicalThreadId,
215
+ runId: canonicalRunId,
216
+ phase,
217
+ startTime
218
+ });
219
+ };
220
+ try {
221
+ const runStart = hasRunnerStartupBoundary(runtime.runner) ? runtime.runner.runWithStartupBoundary(runRequest) : {
222
+ events: runtime.runner.run(runRequest),
223
+ startup: Promise.resolve()
224
+ };
225
+ runStart.events.subscribe({
226
+ next: (event) => {
227
+ if (event.type === _ag_ui_client.EventType.RUN_STARTED) runStarted.current = true;
228
+ if (event.type === _ag_ui_client.EventType.RUN_ERROR) {
229
+ const message = "message" in event && typeof event.message === "string" ? event.message : "Runner failed before the run started";
230
+ reportAgentError(new Error(message), runStarted.current ? "intelligence.subscription" : "intelligence.startup");
231
+ if (!runStarted.current) {
232
+ clearHeartbeat();
233
+ immediateStartupErrorMessage = message;
234
+ immediateStartupCleanup = cleanupLock("runner-start-failed");
235
+ }
236
+ }
237
+ },
238
+ error: (error) => {
239
+ reportAgentError(error, runStarted.current ? "intelligence.subscription" : "intelligence.startup");
240
+ clearHeartbeat();
241
+ if (!runStarted.current) {
242
+ immediateStartupErrorMessage = error instanceof Error ? error.message : String(error);
243
+ immediateStartupCleanup = cleanupLock("runner-start-error");
244
+ } else cleanupLock("runner-error");
245
+ _copilotkit_shared.logger.error("Error running agent:", error);
246
+ },
247
+ complete: () => {
248
+ clearHeartbeat();
249
+ runtimeTelemetry.capture("oss.runtime.agent_execution_stream_ended", {});
250
+ }
251
+ });
252
+ await runStart.startup;
253
+ } catch (error) {
254
+ reportAgentError(error, "intelligence.startup");
255
+ clearHeartbeat();
256
+ await (immediateStartupCleanup ?? cleanupLock("runner-start-threw"));
257
+ _copilotkit_shared.logger.error("Error starting agent runner:", error);
258
+ return Response.json({
259
+ error: "Failed to start runner",
260
+ message: error instanceof Error ? error.message : String(error)
261
+ }, { status: 502 });
262
+ }
263
+ if (immediateStartupErrorMessage) {
264
+ await immediateStartupCleanup;
265
+ return Response.json({
266
+ error: "Failed to start runner",
267
+ message: immediateStartupErrorMessage
268
+ }, { status: 502 });
269
+ }
270
+ return Response.json({
271
+ threadId: canonicalThreadId,
272
+ runId: canonicalRunId,
273
+ joinToken,
274
+ realtime: buildRealtimeConnectionInfo({
275
+ clientUrl: runtime.intelligence.ɵgetClientWsUrl(),
276
+ threadId: canonicalThreadId
277
+ })
278
+ }, { headers: { "Cache-Control": "no-cache" } });
279
+ }
280
+
281
+ //#endregion
282
+ exports.handleIntelligenceRun = handleIntelligenceRun;
283
+ //# sourceMappingURL=run.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.cjs","names":["telemetry","resolveIntelligenceUser","isHandlerResponse","resolveLearningContainerSelector","resolveLearningContainerId","generateThreadNameForNewThread","getPlatformErrorStatus","startThreadLockHeartbeat","getRuntimeErrorReporter","EventType"],"sources":["../../../../src/runtime/handlers/intelligence/run.ts"],"sourcesContent":["import type {\n AbstractAgent,\n BaseEvent,\n Message,\n RunAgentInput,\n} from \"@ag-ui/client\";\nimport { EventType } from \"@ag-ui/client\";\nimport type { CopilotIntelligenceRuntimeLike } from \"../../core/runtime\";\nimport { generateThreadNameForNewThread } from \"./thread-names\";\nimport { logger } from \"@copilotkit/shared\";\nimport { telemetry } from \"../../telemetry\";\nimport { resolveIntelligenceUser } from \"../shared/resolve-intelligence-user\";\nimport { isHandlerResponse } from \"../shared/json-response\";\nimport type { AgentRunnerRunRequest } from \"../../runner/agent-runner\";\nimport type { Observable } from \"rxjs\";\nimport { getRuntimeErrorReporter } from \"../../core/runtime-error-reporter\";\nimport type { RuntimeErrorPhase } from \"../../core/runtime-error-reporter\";\nimport {\n resolveLearningContainerId,\n resolveLearningContainerSelector,\n} from \"../../core/learning\";\nimport { getPlatformErrorStatus } from \"../shared/intelligence-utils\";\nimport { startThreadLockHeartbeat } from \"../../intelligence-platform/thread-lock-heartbeat\";\nimport type { ThreadSummary } from \"../../intelligence-platform\";\n\n/**\n * Builds browser-facing realtime connection metadata owned by the runtime.\n */\nfunction buildRealtimeConnectionInfo(params: {\n clientUrl: string;\n threadId: string;\n}): { clientUrl: string; topic: string } {\n return {\n clientUrl: params.clientUrl,\n topic: `thread:${params.threadId}`,\n };\n}\n\ninterface RunnerStartupBoundary {\n events: Observable<BaseEvent>;\n startup: Promise<void>;\n}\n\ninterface RunnerWithStartupBoundary {\n runWithStartupBoundary(request: AgentRunnerRunRequest): RunnerStartupBoundary;\n}\n\nfunction hasRunnerStartupBoundary(\n runner: CopilotIntelligenceRuntimeLike[\"runner\"],\n): runner is CopilotIntelligenceRuntimeLike[\"runner\"] &\n RunnerWithStartupBoundary {\n const candidate = runner as { runWithStartupBoundary?: unknown };\n\n return (\n typeof candidate.runWithStartupBoundary === \"function\" &&\n (Object.prototype.hasOwnProperty.call(runner, \"runWithStartupBoundary\") ||\n Object.prototype.hasOwnProperty.call(runner, \"threads\"))\n );\n}\n\ninterface HandleIntelligenceRunParams {\n runtime: CopilotIntelligenceRuntimeLike;\n request: Request;\n agentId: string;\n agent: AbstractAgent;\n input: RunAgentInput;\n startTime?: number;\n}\n\nexport async function handleIntelligenceRun({\n runtime,\n request,\n agentId,\n agent,\n input,\n startTime,\n}: HandleIntelligenceRunParams): Promise<Response> {\n const runtimeTelemetry = runtime.telemetry ?? telemetry;\n\n if (!runtime.intelligence) {\n return Response.json(\n {\n error: \"Intelligence not configured\",\n message: \"Intelligence mode requires a CopilotKitIntelligence\",\n },\n { status: 500 },\n );\n }\n\n const user = await resolveIntelligenceUser({ runtime, request });\n if (isHandlerResponse(user)) {\n return user;\n }\n const userId = user.id;\n\n const proxyRequest = (\n input.forwardedProps as Record<string, unknown> | undefined\n )?.__proxiedMCPRequest;\n const isDirectResourceRead =\n input.forwardedProps?.__copilotkitMcpResourceReadOnly === true &&\n proxyRequest &&\n typeof proxyRequest === \"object\" &&\n (proxyRequest as { method?: unknown }).method === \"resources/read\";\n\n // CopilotKit core sends one request ID across a request's follow-up runs\n // and resumes. Older clients send none, and the platform then uses the run ID.\n const forwardedRequestId = input.forwardedProps?.__copilotkitRequestId;\n const requestId =\n typeof forwardedRequestId === \"string\" && forwardedRequestId.length > 0\n ? forwardedRequestId\n : undefined;\n\n let learningContainerId: string | undefined;\n try {\n const selector = runtime.intelligence.ɵgetLearningContainerId?.();\n learningContainerId = selector\n ? await resolveLearningContainerSelector(selector, {\n surface: \"web\",\n user,\n agentId,\n input,\n })\n : await resolveLearningContainerId(runtime.learning, {\n surface: \"web\",\n request,\n threadId: input.threadId,\n runId: input.runId,\n agentId,\n userId,\n });\n } catch (error) {\n logger.error(\"Failed to resolve Learning Container:\", error);\n return Response.json(\n { error: \"Failed to resolve Learning Container\" },\n { status: 500 },\n );\n }\n\n let thread: ThreadSummary;\n try {\n const initialized = await runtime.intelligence.getOrCreateThread({\n threadId: input.threadId,\n userId,\n agentId,\n ...(learningContainerId !== undefined ? { learningContainerId } : {}),\n });\n thread = initialized.thread;\n const { created } = initialized;\n\n if (created && runtime.generateThreadNames && !thread.name?.trim()) {\n void generateThreadNameForNewThread({\n runtime,\n request,\n agentId,\n sourceInput: input,\n thread,\n userId,\n }).catch((nameError) => {\n logger.error(\"Failed to generate thread name:\", nameError);\n });\n }\n } catch (error) {\n logger.error(\"Failed to get or create thread:\", error);\n const platformStatus = getPlatformErrorStatus(error);\n return Response.json(\n {\n error: \"Failed to initialize thread\",\n },\n {\n status:\n platformStatus !== undefined &&\n platformStatus >= 400 &&\n platformStatus < 500\n ? platformStatus\n : 502,\n },\n );\n }\n\n // MCP App resources are presentation data. Initialize the thread through the\n // usual path, then fetch without claiming its mutation lock so an approval\n // can continue while the resource server is still answering.\n if (isDirectResourceRead) {\n try {\n if (thread.agentId && thread.agentId !== agentId) {\n return Response.json(\n { error: \"Thread belongs to another agent\" },\n { status: 403 },\n );\n }\n agent.threadId = thread.id;\n const run = await agent.runAgent({\n runId: input.runId,\n tools: input.tools,\n context: input.context,\n forwardedProps: input.forwardedProps,\n });\n return Response.json({\n kind: \"mcp-resource-read\",\n threadId: thread.id,\n runId: input.runId,\n result: run.result ?? null,\n });\n } catch (error) {\n logger.error(\"MCP resource read failed:\", error);\n const status = getPlatformErrorStatus(error);\n return Response.json(\n { error: \"MCP resource read failed\" },\n { status: status && status >= 400 && status < 500 ? status : 502 },\n );\n }\n }\n\n let canonicalThreadId = input.threadId;\n let canonicalRunId = input.runId;\n let joinToken: string | undefined;\n let backendThreadId: string | undefined;\n let lockTtlSeconds: number | undefined;\n let lockRequestedAt = 0;\n try {\n // The platform starts the lock's TTL when it handles the request, so time\n // the lifetime from the send rather than from the response.\n lockRequestedAt = Date.now();\n const lockResult = await runtime.intelligence.ɵacquireThreadLock({\n supportsBackendThreadId: true,\n threadId: input.threadId,\n runId: input.runId,\n userId,\n agentId,\n ...(learningContainerId !== undefined ? { learningContainerId } : {}),\n ...(requestId !== undefined ? { requestId } : {}),\n ...(runtime.lockKeyPrefix !== undefined\n ? { lockKeyPrefix: runtime.lockKeyPrefix }\n : {}),\n ttlSeconds: runtime.lockTtlSeconds,\n });\n canonicalThreadId = lockResult.threadId;\n canonicalRunId = lockResult.runId;\n joinToken = lockResult.joinToken;\n backendThreadId = lockResult.backendThreadId;\n lockTtlSeconds = lockResult.ttlSeconds;\n } catch (error) {\n logger.error(\"Thread lock denied:\", error);\n const platformStatus = getPlatformErrorStatus(error);\n return Response.json(\n {\n error: \"Thread lock denied\",\n },\n {\n status: platformStatus === 409 ? 409 : 502,\n },\n );\n }\n\n const cleanupLock = (reason: string): Promise<void> =>\n runtime.intelligence\n .ɵcleanupThreadLock({\n threadId: canonicalThreadId || input.threadId,\n runId: canonicalRunId || input.runId,\n })\n .catch((cleanupError) => {\n logger.error(\n { err: cleanupError, reason },\n \"Failed to cleanup thread lock\",\n );\n });\n\n if (!canonicalThreadId || !canonicalRunId || !joinToken) {\n await cleanupLock(\"malformed-lock-response\");\n return Response.json(\n {\n error: \"Run connection credentials not available\",\n message:\n \"Intelligence platform did not return canonical threadId, runId, and joinToken\",\n },\n { status: 502 },\n );\n }\n\n const canonicalInput: RunAgentInput = {\n ...input,\n threadId: canonicalThreadId,\n runId: canonicalRunId,\n };\n\n let persistedInputMessages: Message[] | undefined;\n if (Array.isArray(input.messages)) {\n try {\n const historicMessageIds = new Set(\n await runtime.intelligence.ɵgetThreadMessageIds({\n threadId: canonicalThreadId,\n userId,\n }),\n );\n persistedInputMessages = input.messages.filter(\n (message) => !historicMessageIds.has(message.id),\n );\n } catch (error) {\n logger.error(\"Thread history lookup failed:\", error);\n await cleanupLock(\"thread-history-lookup-failed\");\n return Response.json(\n {\n error: \"Thread history lookup failed\",\n },\n { status: 502 },\n );\n }\n }\n\n runtimeTelemetry.capture(\"oss.runtime.agent_execution_stream_started\", {});\n\n // Keep the thread lock alive while the run executes. Transient renewal\n // failures are retried within the lock's remaining TTL; only a lost lock\n // (or running out of time) aborts the run.\n const heartbeat = startThreadLockHeartbeat({\n renew: (signal) =>\n runtime.intelligence.ɵrenewThreadLock({\n threadId: canonicalThreadId,\n runId: canonicalRunId,\n ttlSeconds: runtime.lockTtlSeconds,\n ...(runtime.lockKeyPrefix !== undefined\n ? { lockKeyPrefix: runtime.lockKeyPrefix }\n : {}),\n signal,\n }),\n intervalMs: runtime.lockHeartbeatIntervalSeconds * 1_000,\n fallbackTtlSeconds: runtime.lockTtlSeconds,\n // The acquire round trip and the history lookup above both run between\n // the lock request and now, so pass the lifetime the platform set minus\n // the time already spent.\n initialTtlSeconds:\n lockTtlSeconds === undefined\n ? undefined\n : lockTtlSeconds - (Date.now() - lockRequestedAt) / 1_000,\n onLost: (err) => {\n logger.error(\"Failed to renew thread lock:\", err);\n try {\n agent.abortRun();\n } catch (abortError) {\n logger.error(\n \"Failed to abort agent after lock renewal failure:\",\n abortError,\n );\n }\n },\n });\n\n const clearHeartbeat = () => {\n heartbeat.stop();\n };\n\n const runStarted = { current: false };\n let immediateStartupErrorMessage: string | undefined;\n let immediateStartupCleanup: Promise<void> | undefined;\n\n const runRequest: AgentRunnerRunRequest = {\n threadId: canonicalThreadId,\n ...(backendThreadId === undefined ? {} : { backendThreadId }),\n agent,\n input: canonicalInput,\n ...(persistedInputMessages !== undefined ? { persistedInputMessages } : {}),\n };\n\n const runtimeErrorReporter = getRuntimeErrorReporter(runtime);\n let agentErrorReported = false;\n const reportAgentError = (error: unknown, phase: RuntimeErrorPhase) => {\n if (agentErrorReported) return;\n agentErrorReported = true;\n // Analytics describes the outcome; only the application-owned reporter\n // receives diagnostics that may contain customer or upstream content.\n runtimeTelemetry.capture(\"oss.runtime.agent_execution_stream_errored\", {\n error: \"AGENT_EXECUTION_FAILED\",\n });\n runtimeErrorReporter?.report({\n request,\n error,\n operation: \"agent.run\",\n agentId,\n threadId: canonicalThreadId,\n runId: canonicalRunId,\n phase,\n startTime,\n });\n };\n\n try {\n const runStart = hasRunnerStartupBoundary(runtime.runner)\n ? runtime.runner.runWithStartupBoundary(runRequest)\n : {\n events: runtime.runner.run(runRequest),\n startup: Promise.resolve(),\n };\n\n runStart.events.subscribe({\n next: (event: BaseEvent) => {\n if (event.type === EventType.RUN_STARTED) {\n runStarted.current = true;\n }\n if (event.type === EventType.RUN_ERROR) {\n const message =\n \"message\" in event && typeof event.message === \"string\"\n ? event.message\n : \"Runner failed before the run started\";\n reportAgentError(\n new Error(message),\n runStarted.current\n ? \"intelligence.subscription\"\n : \"intelligence.startup\",\n );\n if (!runStarted.current) {\n clearHeartbeat();\n immediateStartupErrorMessage = message;\n immediateStartupCleanup = cleanupLock(\"runner-start-failed\");\n }\n }\n },\n error: (error) => {\n reportAgentError(\n error,\n runStarted.current\n ? \"intelligence.subscription\"\n : \"intelligence.startup\",\n );\n clearHeartbeat();\n if (!runStarted.current) {\n immediateStartupErrorMessage =\n error instanceof Error ? error.message : String(error);\n immediateStartupCleanup = cleanupLock(\"runner-start-error\");\n } else {\n cleanupLock(\"runner-error\");\n }\n logger.error(\"Error running agent:\", error);\n },\n complete: () => {\n clearHeartbeat();\n // Preserve the existing completion count even when the stream contains\n // RUN_ERROR. Failure reporting is separate and carries only a safe code.\n runtimeTelemetry.capture(\n \"oss.runtime.agent_execution_stream_ended\",\n {},\n );\n },\n });\n\n await runStart.startup;\n } catch (error) {\n reportAgentError(error, \"intelligence.startup\");\n clearHeartbeat();\n await (immediateStartupCleanup ?? cleanupLock(\"runner-start-threw\"));\n logger.error(\"Error starting agent runner:\", error);\n return Response.json(\n {\n error: \"Failed to start runner\",\n message: error instanceof Error ? error.message : String(error),\n },\n { status: 502 },\n );\n }\n\n if (immediateStartupErrorMessage) {\n await immediateStartupCleanup;\n return Response.json(\n {\n error: \"Failed to start runner\",\n message: immediateStartupErrorMessage,\n },\n { status: 502 },\n );\n }\n\n // IntelligenceAgentRunner resolves this boundary after Phoenix channel join.\n // Other runner implementations fall back to construction/subscription errors.\n return Response.json(\n {\n threadId: canonicalThreadId,\n runId: canonicalRunId,\n joinToken,\n realtime: buildRealtimeConnectionInfo({\n clientUrl: runtime.intelligence.ɵgetClientWsUrl(),\n threadId: canonicalThreadId,\n }),\n },\n {\n headers: { \"Cache-Control\": \"no-cache\" },\n },\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA4BA,SAAS,4BAA4B,QAGI;AACvC,QAAO;EACL,WAAW,OAAO;EAClB,OAAO,UAAU,OAAO;EACzB;;AAYH,SAAS,yBACP,QAE0B;AAG1B,QACE,OAHgB,OAGC,2BAA2B,eAC3C,OAAO,UAAU,eAAe,KAAK,QAAQ,yBAAyB,IACrE,OAAO,UAAU,eAAe,KAAK,QAAQ,UAAU;;AAa7D,eAAsB,sBAAsB,EAC1C,SACA,SACA,SACA,OACA,OACA,aACiD;CACjD,MAAM,mBAAmB,QAAQ,aAAaA;AAE9C,KAAI,CAAC,QAAQ,aACX,QAAO,SAAS,KACd;EACE,OAAO;EACP,SAAS;EACV,EACD,EAAE,QAAQ,KAAK,CAChB;CAGH,MAAM,OAAO,MAAMC,0DAAwB;EAAE;EAAS;EAAS,CAAC;AAChE,KAAIC,wCAAkB,KAAK,CACzB,QAAO;CAET,MAAM,SAAS,KAAK;CAEpB,MAAM,eACJ,MAAM,gBACL;CACH,MAAM,uBACJ,MAAM,gBAAgB,oCAAoC,QAC1D,gBACA,OAAO,iBAAiB,YACvB,aAAsC,WAAW;CAIpD,MAAM,qBAAqB,MAAM,gBAAgB;CACjD,MAAM,YACJ,OAAO,uBAAuB,YAAY,mBAAmB,SAAS,IAClE,qBACA;CAEN,IAAI;AACJ,KAAI;EACF,MAAM,WAAW,QAAQ,aAAa,2BAA2B;AACjE,wBAAsB,WAClB,MAAMC,kDAAiC,UAAU;GAC/C,SAAS;GACT;GACA;GACA;GACD,CAAC,GACF,MAAMC,4CAA2B,QAAQ,UAAU;GACjD,SAAS;GACT;GACA,UAAU,MAAM;GAChB,OAAO,MAAM;GACb;GACA;GACD,CAAC;UACC,OAAO;AACd,4BAAO,MAAM,yCAAyC,MAAM;AAC5D,SAAO,SAAS,KACd,EAAE,OAAO,wCAAwC,EACjD,EAAE,QAAQ,KAAK,CAChB;;CAGH,IAAI;AACJ,KAAI;EACF,MAAM,cAAc,MAAM,QAAQ,aAAa,kBAAkB;GAC/D,UAAU,MAAM;GAChB;GACA;GACA,GAAI,wBAAwB,SAAY,EAAE,qBAAqB,GAAG,EAAE;GACrE,CAAC;AACF,WAAS,YAAY;EACrB,MAAM,EAAE,YAAY;AAEpB,MAAI,WAAW,QAAQ,uBAAuB,CAAC,OAAO,MAAM,MAAM,CAChE,CAAKC,oDAA+B;GAClC;GACA;GACA;GACA,aAAa;GACb;GACA;GACD,CAAC,CAAC,OAAO,cAAc;AACtB,6BAAO,MAAM,mCAAmC,UAAU;IAC1D;UAEG,OAAO;AACd,4BAAO,MAAM,mCAAmC,MAAM;EACtD,MAAM,iBAAiBC,kDAAuB,MAAM;AACpD,SAAO,SAAS,KACd,EACE,OAAO,+BACR,EACD,EACE,QACE,mBAAmB,UACnB,kBAAkB,OAClB,iBAAiB,MACb,iBACA,KACP,CACF;;AAMH,KAAI,qBACF,KAAI;AACF,MAAI,OAAO,WAAW,OAAO,YAAY,QACvC,QAAO,SAAS,KACd,EAAE,OAAO,mCAAmC,EAC5C,EAAE,QAAQ,KAAK,CAChB;AAEH,QAAM,WAAW,OAAO;EACxB,MAAM,MAAM,MAAM,MAAM,SAAS;GAC/B,OAAO,MAAM;GACb,OAAO,MAAM;GACb,SAAS,MAAM;GACf,gBAAgB,MAAM;GACvB,CAAC;AACF,SAAO,SAAS,KAAK;GACnB,MAAM;GACN,UAAU,OAAO;GACjB,OAAO,MAAM;GACb,QAAQ,IAAI,UAAU;GACvB,CAAC;UACK,OAAO;AACd,4BAAO,MAAM,6BAA6B,MAAM;EAChD,MAAM,SAASA,kDAAuB,MAAM;AAC5C,SAAO,SAAS,KACd,EAAE,OAAO,4BAA4B,EACrC,EAAE,QAAQ,UAAU,UAAU,OAAO,SAAS,MAAM,SAAS,KAAK,CACnE;;CAIL,IAAI,oBAAoB,MAAM;CAC9B,IAAI,iBAAiB,MAAM;CAC3B,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI,kBAAkB;AACtB,KAAI;AAGF,oBAAkB,KAAK,KAAK;EAC5B,MAAM,aAAa,MAAM,QAAQ,aAAa,mBAAmB;GAC/D,yBAAyB;GACzB,UAAU,MAAM;GAChB,OAAO,MAAM;GACb;GACA;GACA,GAAI,wBAAwB,SAAY,EAAE,qBAAqB,GAAG,EAAE;GACpE,GAAI,cAAc,SAAY,EAAE,WAAW,GAAG,EAAE;GAChD,GAAI,QAAQ,kBAAkB,SAC1B,EAAE,eAAe,QAAQ,eAAe,GACxC,EAAE;GACN,YAAY,QAAQ;GACrB,CAAC;AACF,sBAAoB,WAAW;AAC/B,mBAAiB,WAAW;AAC5B,cAAY,WAAW;AACvB,oBAAkB,WAAW;AAC7B,mBAAiB,WAAW;UACrB,OAAO;AACd,4BAAO,MAAM,uBAAuB,MAAM;EAC1C,MAAM,iBAAiBA,kDAAuB,MAAM;AACpD,SAAO,SAAS,KACd,EACE,OAAO,sBACR,EACD,EACE,QAAQ,mBAAmB,MAAM,MAAM,KACxC,CACF;;CAGH,MAAM,eAAe,WACnB,QAAQ,aACL,mBAAmB;EAClB,UAAU,qBAAqB,MAAM;EACrC,OAAO,kBAAkB,MAAM;EAChC,CAAC,CACD,OAAO,iBAAiB;AACvB,4BAAO,MACL;GAAE,KAAK;GAAc;GAAQ,EAC7B,gCACD;GACD;AAEN,KAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,WAAW;AACvD,QAAM,YAAY,0BAA0B;AAC5C,SAAO,SAAS,KACd;GACE,OAAO;GACP,SACE;GACH,EACD,EAAE,QAAQ,KAAK,CAChB;;CAGH,MAAM,iBAAgC;EACpC,GAAG;EACH,UAAU;EACV,OAAO;EACR;CAED,IAAI;AACJ,KAAI,MAAM,QAAQ,MAAM,SAAS,CAC/B,KAAI;EACF,MAAM,qBAAqB,IAAI,IAC7B,MAAM,QAAQ,aAAa,qBAAqB;GAC9C,UAAU;GACV;GACD,CAAC,CACH;AACD,2BAAyB,MAAM,SAAS,QACrC,YAAY,CAAC,mBAAmB,IAAI,QAAQ,GAAG,CACjD;UACM,OAAO;AACd,4BAAO,MAAM,iCAAiC,MAAM;AACpD,QAAM,YAAY,+BAA+B;AACjD,SAAO,SAAS,KACd,EACE,OAAO,gCACR,EACD,EAAE,QAAQ,KAAK,CAChB;;AAIL,kBAAiB,QAAQ,8CAA8C,EAAE,CAAC;CAK1E,MAAM,YAAYC,uDAAyB;EACzC,QAAQ,WACN,QAAQ,aAAa,iBAAiB;GACpC,UAAU;GACV,OAAO;GACP,YAAY,QAAQ;GACpB,GAAI,QAAQ,kBAAkB,SAC1B,EAAE,eAAe,QAAQ,eAAe,GACxC,EAAE;GACN;GACD,CAAC;EACJ,YAAY,QAAQ,+BAA+B;EACnD,oBAAoB,QAAQ;EAI5B,mBACE,mBAAmB,SACf,SACA,kBAAkB,KAAK,KAAK,GAAG,mBAAmB;EACxD,SAAS,QAAQ;AACf,6BAAO,MAAM,gCAAgC,IAAI;AACjD,OAAI;AACF,UAAM,UAAU;YACT,YAAY;AACnB,8BAAO,MACL,qDACA,WACD;;;EAGN,CAAC;CAEF,MAAM,uBAAuB;AAC3B,YAAU,MAAM;;CAGlB,MAAM,aAAa,EAAE,SAAS,OAAO;CACrC,IAAI;CACJ,IAAI;CAEJ,MAAM,aAAoC;EACxC,UAAU;EACV,GAAI,oBAAoB,SAAY,EAAE,GAAG,EAAE,iBAAiB;EAC5D;EACA,OAAO;EACP,GAAI,2BAA2B,SAAY,EAAE,wBAAwB,GAAG,EAAE;EAC3E;CAED,MAAM,uBAAuBC,uDAAwB,QAAQ;CAC7D,IAAI,qBAAqB;CACzB,MAAM,oBAAoB,OAAgB,UAA6B;AACrE,MAAI,mBAAoB;AACxB,uBAAqB;AAGrB,mBAAiB,QAAQ,8CAA8C,EACrE,OAAO,0BACR,CAAC;AACF,wBAAsB,OAAO;GAC3B;GACA;GACA,WAAW;GACX;GACA,UAAU;GACV,OAAO;GACP;GACA;GACD,CAAC;;AAGJ,KAAI;EACF,MAAM,WAAW,yBAAyB,QAAQ,OAAO,GACrD,QAAQ,OAAO,uBAAuB,WAAW,GACjD;GACE,QAAQ,QAAQ,OAAO,IAAI,WAAW;GACtC,SAAS,QAAQ,SAAS;GAC3B;AAEL,WAAS,OAAO,UAAU;GACxB,OAAO,UAAqB;AAC1B,QAAI,MAAM,SAASC,wBAAU,YAC3B,YAAW,UAAU;AAEvB,QAAI,MAAM,SAASA,wBAAU,WAAW;KACtC,MAAM,UACJ,aAAa,SAAS,OAAO,MAAM,YAAY,WAC3C,MAAM,UACN;AACN,sBACE,IAAI,MAAM,QAAQ,EAClB,WAAW,UACP,8BACA,uBACL;AACD,SAAI,CAAC,WAAW,SAAS;AACvB,sBAAgB;AAChB,qCAA+B;AAC/B,gCAA0B,YAAY,sBAAsB;;;;GAIlE,QAAQ,UAAU;AAChB,qBACE,OACA,WAAW,UACP,8BACA,uBACL;AACD,oBAAgB;AAChB,QAAI,CAAC,WAAW,SAAS;AACvB,oCACE,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACxD,+BAA0B,YAAY,qBAAqB;UAE3D,aAAY,eAAe;AAE7B,8BAAO,MAAM,wBAAwB,MAAM;;GAE7C,gBAAgB;AACd,oBAAgB;AAGhB,qBAAiB,QACf,4CACA,EAAE,CACH;;GAEJ,CAAC;AAEF,QAAM,SAAS;UACR,OAAO;AACd,mBAAiB,OAAO,uBAAuB;AAC/C,kBAAgB;AAChB,SAAO,2BAA2B,YAAY,qBAAqB;AACnE,4BAAO,MAAM,gCAAgC,MAAM;AACnD,SAAO,SAAS,KACd;GACE,OAAO;GACP,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;GAChE,EACD,EAAE,QAAQ,KAAK,CAChB;;AAGH,KAAI,8BAA8B;AAChC,QAAM;AACN,SAAO,SAAS,KACd;GACE,OAAO;GACP,SAAS;GACV,EACD,EAAE,QAAQ,KAAK,CAChB;;AAKH,QAAO,SAAS,KACd;EACE,UAAU;EACV,OAAO;EACP;EACA,UAAU,4BAA4B;GACpC,WAAW,QAAQ,aAAa,iBAAiB;GACjD,UAAU;GACX,CAAC;EACH,EACD,EACE,SAAS,EAAE,iBAAiB,YAAY,EACzC,CACF"}
@@ -0,0 +1,282 @@
1
+ import { isHandlerResponse } from "../shared/json-response.mjs";
2
+ import { resolveLearningContainerId, resolveLearningContainerSelector } from "../../core/learning.mjs";
3
+ import { getPlatformErrorStatus } from "../shared/intelligence-utils.mjs";
4
+ import { resolveIntelligenceUser } from "../shared/resolve-intelligence-user.mjs";
5
+ import telemetry from "../../telemetry/telemetry-client.mjs";
6
+ import { getRuntimeErrorReporter } from "../../core/runtime-error-reporter.mjs";
7
+ import { startThreadLockHeartbeat } from "../../intelligence-platform/thread-lock-heartbeat.mjs";
8
+ import { generateThreadNameForNewThread } from "./thread-names.mjs";
9
+ import { logger } from "@copilotkit/shared";
10
+ import { EventType } from "@ag-ui/client";
11
+
12
+ //#region src/runtime/handlers/intelligence/run.ts
13
+ /**
14
+ * Builds browser-facing realtime connection metadata owned by the runtime.
15
+ */
16
+ function buildRealtimeConnectionInfo(params) {
17
+ return {
18
+ clientUrl: params.clientUrl,
19
+ topic: `thread:${params.threadId}`
20
+ };
21
+ }
22
+ function hasRunnerStartupBoundary(runner) {
23
+ return typeof runner.runWithStartupBoundary === "function" && (Object.prototype.hasOwnProperty.call(runner, "runWithStartupBoundary") || Object.prototype.hasOwnProperty.call(runner, "threads"));
24
+ }
25
+ async function handleIntelligenceRun({ runtime, request, agentId, agent, input, startTime }) {
26
+ const runtimeTelemetry = runtime.telemetry ?? telemetry;
27
+ if (!runtime.intelligence) return Response.json({
28
+ error: "Intelligence not configured",
29
+ message: "Intelligence mode requires a CopilotKitIntelligence"
30
+ }, { status: 500 });
31
+ const user = await resolveIntelligenceUser({
32
+ runtime,
33
+ request
34
+ });
35
+ if (isHandlerResponse(user)) return user;
36
+ const userId = user.id;
37
+ const proxyRequest = input.forwardedProps?.__proxiedMCPRequest;
38
+ const isDirectResourceRead = input.forwardedProps?.__copilotkitMcpResourceReadOnly === true && proxyRequest && typeof proxyRequest === "object" && proxyRequest.method === "resources/read";
39
+ const forwardedRequestId = input.forwardedProps?.__copilotkitRequestId;
40
+ const requestId = typeof forwardedRequestId === "string" && forwardedRequestId.length > 0 ? forwardedRequestId : void 0;
41
+ let learningContainerId;
42
+ try {
43
+ const selector = runtime.intelligence.ɵgetLearningContainerId?.();
44
+ learningContainerId = selector ? await resolveLearningContainerSelector(selector, {
45
+ surface: "web",
46
+ user,
47
+ agentId,
48
+ input
49
+ }) : await resolveLearningContainerId(runtime.learning, {
50
+ surface: "web",
51
+ request,
52
+ threadId: input.threadId,
53
+ runId: input.runId,
54
+ agentId,
55
+ userId
56
+ });
57
+ } catch (error) {
58
+ logger.error("Failed to resolve Learning Container:", error);
59
+ return Response.json({ error: "Failed to resolve Learning Container" }, { status: 500 });
60
+ }
61
+ let thread;
62
+ try {
63
+ const initialized = await runtime.intelligence.getOrCreateThread({
64
+ threadId: input.threadId,
65
+ userId,
66
+ agentId,
67
+ ...learningContainerId !== void 0 ? { learningContainerId } : {}
68
+ });
69
+ thread = initialized.thread;
70
+ const { created } = initialized;
71
+ if (created && runtime.generateThreadNames && !thread.name?.trim()) generateThreadNameForNewThread({
72
+ runtime,
73
+ request,
74
+ agentId,
75
+ sourceInput: input,
76
+ thread,
77
+ userId
78
+ }).catch((nameError) => {
79
+ logger.error("Failed to generate thread name:", nameError);
80
+ });
81
+ } catch (error) {
82
+ logger.error("Failed to get or create thread:", error);
83
+ const platformStatus = getPlatformErrorStatus(error);
84
+ return Response.json({ error: "Failed to initialize thread" }, { status: platformStatus !== void 0 && platformStatus >= 400 && platformStatus < 500 ? platformStatus : 502 });
85
+ }
86
+ if (isDirectResourceRead) try {
87
+ if (thread.agentId && thread.agentId !== agentId) return Response.json({ error: "Thread belongs to another agent" }, { status: 403 });
88
+ agent.threadId = thread.id;
89
+ const run = await agent.runAgent({
90
+ runId: input.runId,
91
+ tools: input.tools,
92
+ context: input.context,
93
+ forwardedProps: input.forwardedProps
94
+ });
95
+ return Response.json({
96
+ kind: "mcp-resource-read",
97
+ threadId: thread.id,
98
+ runId: input.runId,
99
+ result: run.result ?? null
100
+ });
101
+ } catch (error) {
102
+ logger.error("MCP resource read failed:", error);
103
+ const status = getPlatformErrorStatus(error);
104
+ return Response.json({ error: "MCP resource read failed" }, { status: status && status >= 400 && status < 500 ? status : 502 });
105
+ }
106
+ let canonicalThreadId = input.threadId;
107
+ let canonicalRunId = input.runId;
108
+ let joinToken;
109
+ let backendThreadId;
110
+ let lockTtlSeconds;
111
+ let lockRequestedAt = 0;
112
+ try {
113
+ lockRequestedAt = Date.now();
114
+ const lockResult = await runtime.intelligence.ɵacquireThreadLock({
115
+ supportsBackendThreadId: true,
116
+ threadId: input.threadId,
117
+ runId: input.runId,
118
+ userId,
119
+ agentId,
120
+ ...learningContainerId !== void 0 ? { learningContainerId } : {},
121
+ ...requestId !== void 0 ? { requestId } : {},
122
+ ...runtime.lockKeyPrefix !== void 0 ? { lockKeyPrefix: runtime.lockKeyPrefix } : {},
123
+ ttlSeconds: runtime.lockTtlSeconds
124
+ });
125
+ canonicalThreadId = lockResult.threadId;
126
+ canonicalRunId = lockResult.runId;
127
+ joinToken = lockResult.joinToken;
128
+ backendThreadId = lockResult.backendThreadId;
129
+ lockTtlSeconds = lockResult.ttlSeconds;
130
+ } catch (error) {
131
+ logger.error("Thread lock denied:", error);
132
+ const platformStatus = getPlatformErrorStatus(error);
133
+ return Response.json({ error: "Thread lock denied" }, { status: platformStatus === 409 ? 409 : 502 });
134
+ }
135
+ const cleanupLock = (reason) => runtime.intelligence.ɵcleanupThreadLock({
136
+ threadId: canonicalThreadId || input.threadId,
137
+ runId: canonicalRunId || input.runId
138
+ }).catch((cleanupError) => {
139
+ logger.error({
140
+ err: cleanupError,
141
+ reason
142
+ }, "Failed to cleanup thread lock");
143
+ });
144
+ if (!canonicalThreadId || !canonicalRunId || !joinToken) {
145
+ await cleanupLock("malformed-lock-response");
146
+ return Response.json({
147
+ error: "Run connection credentials not available",
148
+ message: "Intelligence platform did not return canonical threadId, runId, and joinToken"
149
+ }, { status: 502 });
150
+ }
151
+ const canonicalInput = {
152
+ ...input,
153
+ threadId: canonicalThreadId,
154
+ runId: canonicalRunId
155
+ };
156
+ let persistedInputMessages;
157
+ if (Array.isArray(input.messages)) try {
158
+ const historicMessageIds = new Set(await runtime.intelligence.ɵgetThreadMessageIds({
159
+ threadId: canonicalThreadId,
160
+ userId
161
+ }));
162
+ persistedInputMessages = input.messages.filter((message) => !historicMessageIds.has(message.id));
163
+ } catch (error) {
164
+ logger.error("Thread history lookup failed:", error);
165
+ await cleanupLock("thread-history-lookup-failed");
166
+ return Response.json({ error: "Thread history lookup failed" }, { status: 502 });
167
+ }
168
+ runtimeTelemetry.capture("oss.runtime.agent_execution_stream_started", {});
169
+ const heartbeat = startThreadLockHeartbeat({
170
+ renew: (signal) => runtime.intelligence.ɵrenewThreadLock({
171
+ threadId: canonicalThreadId,
172
+ runId: canonicalRunId,
173
+ ttlSeconds: runtime.lockTtlSeconds,
174
+ ...runtime.lockKeyPrefix !== void 0 ? { lockKeyPrefix: runtime.lockKeyPrefix } : {},
175
+ signal
176
+ }),
177
+ intervalMs: runtime.lockHeartbeatIntervalSeconds * 1e3,
178
+ fallbackTtlSeconds: runtime.lockTtlSeconds,
179
+ initialTtlSeconds: lockTtlSeconds === void 0 ? void 0 : lockTtlSeconds - (Date.now() - lockRequestedAt) / 1e3,
180
+ onLost: (err) => {
181
+ logger.error("Failed to renew thread lock:", err);
182
+ try {
183
+ agent.abortRun();
184
+ } catch (abortError) {
185
+ logger.error("Failed to abort agent after lock renewal failure:", abortError);
186
+ }
187
+ }
188
+ });
189
+ const clearHeartbeat = () => {
190
+ heartbeat.stop();
191
+ };
192
+ const runStarted = { current: false };
193
+ let immediateStartupErrorMessage;
194
+ let immediateStartupCleanup;
195
+ const runRequest = {
196
+ threadId: canonicalThreadId,
197
+ ...backendThreadId === void 0 ? {} : { backendThreadId },
198
+ agent,
199
+ input: canonicalInput,
200
+ ...persistedInputMessages !== void 0 ? { persistedInputMessages } : {}
201
+ };
202
+ const runtimeErrorReporter = getRuntimeErrorReporter(runtime);
203
+ let agentErrorReported = false;
204
+ const reportAgentError = (error, phase) => {
205
+ if (agentErrorReported) return;
206
+ agentErrorReported = true;
207
+ runtimeTelemetry.capture("oss.runtime.agent_execution_stream_errored", { error: "AGENT_EXECUTION_FAILED" });
208
+ runtimeErrorReporter?.report({
209
+ request,
210
+ error,
211
+ operation: "agent.run",
212
+ agentId,
213
+ threadId: canonicalThreadId,
214
+ runId: canonicalRunId,
215
+ phase,
216
+ startTime
217
+ });
218
+ };
219
+ try {
220
+ const runStart = hasRunnerStartupBoundary(runtime.runner) ? runtime.runner.runWithStartupBoundary(runRequest) : {
221
+ events: runtime.runner.run(runRequest),
222
+ startup: Promise.resolve()
223
+ };
224
+ runStart.events.subscribe({
225
+ next: (event) => {
226
+ if (event.type === EventType.RUN_STARTED) runStarted.current = true;
227
+ if (event.type === EventType.RUN_ERROR) {
228
+ const message = "message" in event && typeof event.message === "string" ? event.message : "Runner failed before the run started";
229
+ reportAgentError(new Error(message), runStarted.current ? "intelligence.subscription" : "intelligence.startup");
230
+ if (!runStarted.current) {
231
+ clearHeartbeat();
232
+ immediateStartupErrorMessage = message;
233
+ immediateStartupCleanup = cleanupLock("runner-start-failed");
234
+ }
235
+ }
236
+ },
237
+ error: (error) => {
238
+ reportAgentError(error, runStarted.current ? "intelligence.subscription" : "intelligence.startup");
239
+ clearHeartbeat();
240
+ if (!runStarted.current) {
241
+ immediateStartupErrorMessage = error instanceof Error ? error.message : String(error);
242
+ immediateStartupCleanup = cleanupLock("runner-start-error");
243
+ } else cleanupLock("runner-error");
244
+ logger.error("Error running agent:", error);
245
+ },
246
+ complete: () => {
247
+ clearHeartbeat();
248
+ runtimeTelemetry.capture("oss.runtime.agent_execution_stream_ended", {});
249
+ }
250
+ });
251
+ await runStart.startup;
252
+ } catch (error) {
253
+ reportAgentError(error, "intelligence.startup");
254
+ clearHeartbeat();
255
+ await (immediateStartupCleanup ?? cleanupLock("runner-start-threw"));
256
+ logger.error("Error starting agent runner:", error);
257
+ return Response.json({
258
+ error: "Failed to start runner",
259
+ message: error instanceof Error ? error.message : String(error)
260
+ }, { status: 502 });
261
+ }
262
+ if (immediateStartupErrorMessage) {
263
+ await immediateStartupCleanup;
264
+ return Response.json({
265
+ error: "Failed to start runner",
266
+ message: immediateStartupErrorMessage
267
+ }, { status: 502 });
268
+ }
269
+ return Response.json({
270
+ threadId: canonicalThreadId,
271
+ runId: canonicalRunId,
272
+ joinToken,
273
+ realtime: buildRealtimeConnectionInfo({
274
+ clientUrl: runtime.intelligence.ɵgetClientWsUrl(),
275
+ threadId: canonicalThreadId
276
+ })
277
+ }, { headers: { "Cache-Control": "no-cache" } });
278
+ }
279
+
280
+ //#endregion
281
+ export { handleIntelligenceRun };
282
+ //# sourceMappingURL=run.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.mjs","names":[],"sources":["../../../../src/runtime/handlers/intelligence/run.ts"],"sourcesContent":["import type {\n AbstractAgent,\n BaseEvent,\n Message,\n RunAgentInput,\n} from \"@ag-ui/client\";\nimport { EventType } from \"@ag-ui/client\";\nimport type { CopilotIntelligenceRuntimeLike } from \"../../core/runtime\";\nimport { generateThreadNameForNewThread } from \"./thread-names\";\nimport { logger } from \"@copilotkit/shared\";\nimport { telemetry } from \"../../telemetry\";\nimport { resolveIntelligenceUser } from \"../shared/resolve-intelligence-user\";\nimport { isHandlerResponse } from \"../shared/json-response\";\nimport type { AgentRunnerRunRequest } from \"../../runner/agent-runner\";\nimport type { Observable } from \"rxjs\";\nimport { getRuntimeErrorReporter } from \"../../core/runtime-error-reporter\";\nimport type { RuntimeErrorPhase } from \"../../core/runtime-error-reporter\";\nimport {\n resolveLearningContainerId,\n resolveLearningContainerSelector,\n} from \"../../core/learning\";\nimport { getPlatformErrorStatus } from \"../shared/intelligence-utils\";\nimport { startThreadLockHeartbeat } from \"../../intelligence-platform/thread-lock-heartbeat\";\nimport type { ThreadSummary } from \"../../intelligence-platform\";\n\n/**\n * Builds browser-facing realtime connection metadata owned by the runtime.\n */\nfunction buildRealtimeConnectionInfo(params: {\n clientUrl: string;\n threadId: string;\n}): { clientUrl: string; topic: string } {\n return {\n clientUrl: params.clientUrl,\n topic: `thread:${params.threadId}`,\n };\n}\n\ninterface RunnerStartupBoundary {\n events: Observable<BaseEvent>;\n startup: Promise<void>;\n}\n\ninterface RunnerWithStartupBoundary {\n runWithStartupBoundary(request: AgentRunnerRunRequest): RunnerStartupBoundary;\n}\n\nfunction hasRunnerStartupBoundary(\n runner: CopilotIntelligenceRuntimeLike[\"runner\"],\n): runner is CopilotIntelligenceRuntimeLike[\"runner\"] &\n RunnerWithStartupBoundary {\n const candidate = runner as { runWithStartupBoundary?: unknown };\n\n return (\n typeof candidate.runWithStartupBoundary === \"function\" &&\n (Object.prototype.hasOwnProperty.call(runner, \"runWithStartupBoundary\") ||\n Object.prototype.hasOwnProperty.call(runner, \"threads\"))\n );\n}\n\ninterface HandleIntelligenceRunParams {\n runtime: CopilotIntelligenceRuntimeLike;\n request: Request;\n agentId: string;\n agent: AbstractAgent;\n input: RunAgentInput;\n startTime?: number;\n}\n\nexport async function handleIntelligenceRun({\n runtime,\n request,\n agentId,\n agent,\n input,\n startTime,\n}: HandleIntelligenceRunParams): Promise<Response> {\n const runtimeTelemetry = runtime.telemetry ?? telemetry;\n\n if (!runtime.intelligence) {\n return Response.json(\n {\n error: \"Intelligence not configured\",\n message: \"Intelligence mode requires a CopilotKitIntelligence\",\n },\n { status: 500 },\n );\n }\n\n const user = await resolveIntelligenceUser({ runtime, request });\n if (isHandlerResponse(user)) {\n return user;\n }\n const userId = user.id;\n\n const proxyRequest = (\n input.forwardedProps as Record<string, unknown> | undefined\n )?.__proxiedMCPRequest;\n const isDirectResourceRead =\n input.forwardedProps?.__copilotkitMcpResourceReadOnly === true &&\n proxyRequest &&\n typeof proxyRequest === \"object\" &&\n (proxyRequest as { method?: unknown }).method === \"resources/read\";\n\n // CopilotKit core sends one request ID across a request's follow-up runs\n // and resumes. Older clients send none, and the platform then uses the run ID.\n const forwardedRequestId = input.forwardedProps?.__copilotkitRequestId;\n const requestId =\n typeof forwardedRequestId === \"string\" && forwardedRequestId.length > 0\n ? forwardedRequestId\n : undefined;\n\n let learningContainerId: string | undefined;\n try {\n const selector = runtime.intelligence.ɵgetLearningContainerId?.();\n learningContainerId = selector\n ? await resolveLearningContainerSelector(selector, {\n surface: \"web\",\n user,\n agentId,\n input,\n })\n : await resolveLearningContainerId(runtime.learning, {\n surface: \"web\",\n request,\n threadId: input.threadId,\n runId: input.runId,\n agentId,\n userId,\n });\n } catch (error) {\n logger.error(\"Failed to resolve Learning Container:\", error);\n return Response.json(\n { error: \"Failed to resolve Learning Container\" },\n { status: 500 },\n );\n }\n\n let thread: ThreadSummary;\n try {\n const initialized = await runtime.intelligence.getOrCreateThread({\n threadId: input.threadId,\n userId,\n agentId,\n ...(learningContainerId !== undefined ? { learningContainerId } : {}),\n });\n thread = initialized.thread;\n const { created } = initialized;\n\n if (created && runtime.generateThreadNames && !thread.name?.trim()) {\n void generateThreadNameForNewThread({\n runtime,\n request,\n agentId,\n sourceInput: input,\n thread,\n userId,\n }).catch((nameError) => {\n logger.error(\"Failed to generate thread name:\", nameError);\n });\n }\n } catch (error) {\n logger.error(\"Failed to get or create thread:\", error);\n const platformStatus = getPlatformErrorStatus(error);\n return Response.json(\n {\n error: \"Failed to initialize thread\",\n },\n {\n status:\n platformStatus !== undefined &&\n platformStatus >= 400 &&\n platformStatus < 500\n ? platformStatus\n : 502,\n },\n );\n }\n\n // MCP App resources are presentation data. Initialize the thread through the\n // usual path, then fetch without claiming its mutation lock so an approval\n // can continue while the resource server is still answering.\n if (isDirectResourceRead) {\n try {\n if (thread.agentId && thread.agentId !== agentId) {\n return Response.json(\n { error: \"Thread belongs to another agent\" },\n { status: 403 },\n );\n }\n agent.threadId = thread.id;\n const run = await agent.runAgent({\n runId: input.runId,\n tools: input.tools,\n context: input.context,\n forwardedProps: input.forwardedProps,\n });\n return Response.json({\n kind: \"mcp-resource-read\",\n threadId: thread.id,\n runId: input.runId,\n result: run.result ?? null,\n });\n } catch (error) {\n logger.error(\"MCP resource read failed:\", error);\n const status = getPlatformErrorStatus(error);\n return Response.json(\n { error: \"MCP resource read failed\" },\n { status: status && status >= 400 && status < 500 ? status : 502 },\n );\n }\n }\n\n let canonicalThreadId = input.threadId;\n let canonicalRunId = input.runId;\n let joinToken: string | undefined;\n let backendThreadId: string | undefined;\n let lockTtlSeconds: number | undefined;\n let lockRequestedAt = 0;\n try {\n // The platform starts the lock's TTL when it handles the request, so time\n // the lifetime from the send rather than from the response.\n lockRequestedAt = Date.now();\n const lockResult = await runtime.intelligence.ɵacquireThreadLock({\n supportsBackendThreadId: true,\n threadId: input.threadId,\n runId: input.runId,\n userId,\n agentId,\n ...(learningContainerId !== undefined ? { learningContainerId } : {}),\n ...(requestId !== undefined ? { requestId } : {}),\n ...(runtime.lockKeyPrefix !== undefined\n ? { lockKeyPrefix: runtime.lockKeyPrefix }\n : {}),\n ttlSeconds: runtime.lockTtlSeconds,\n });\n canonicalThreadId = lockResult.threadId;\n canonicalRunId = lockResult.runId;\n joinToken = lockResult.joinToken;\n backendThreadId = lockResult.backendThreadId;\n lockTtlSeconds = lockResult.ttlSeconds;\n } catch (error) {\n logger.error(\"Thread lock denied:\", error);\n const platformStatus = getPlatformErrorStatus(error);\n return Response.json(\n {\n error: \"Thread lock denied\",\n },\n {\n status: platformStatus === 409 ? 409 : 502,\n },\n );\n }\n\n const cleanupLock = (reason: string): Promise<void> =>\n runtime.intelligence\n .ɵcleanupThreadLock({\n threadId: canonicalThreadId || input.threadId,\n runId: canonicalRunId || input.runId,\n })\n .catch((cleanupError) => {\n logger.error(\n { err: cleanupError, reason },\n \"Failed to cleanup thread lock\",\n );\n });\n\n if (!canonicalThreadId || !canonicalRunId || !joinToken) {\n await cleanupLock(\"malformed-lock-response\");\n return Response.json(\n {\n error: \"Run connection credentials not available\",\n message:\n \"Intelligence platform did not return canonical threadId, runId, and joinToken\",\n },\n { status: 502 },\n );\n }\n\n const canonicalInput: RunAgentInput = {\n ...input,\n threadId: canonicalThreadId,\n runId: canonicalRunId,\n };\n\n let persistedInputMessages: Message[] | undefined;\n if (Array.isArray(input.messages)) {\n try {\n const historicMessageIds = new Set(\n await runtime.intelligence.ɵgetThreadMessageIds({\n threadId: canonicalThreadId,\n userId,\n }),\n );\n persistedInputMessages = input.messages.filter(\n (message) => !historicMessageIds.has(message.id),\n );\n } catch (error) {\n logger.error(\"Thread history lookup failed:\", error);\n await cleanupLock(\"thread-history-lookup-failed\");\n return Response.json(\n {\n error: \"Thread history lookup failed\",\n },\n { status: 502 },\n );\n }\n }\n\n runtimeTelemetry.capture(\"oss.runtime.agent_execution_stream_started\", {});\n\n // Keep the thread lock alive while the run executes. Transient renewal\n // failures are retried within the lock's remaining TTL; only a lost lock\n // (or running out of time) aborts the run.\n const heartbeat = startThreadLockHeartbeat({\n renew: (signal) =>\n runtime.intelligence.ɵrenewThreadLock({\n threadId: canonicalThreadId,\n runId: canonicalRunId,\n ttlSeconds: runtime.lockTtlSeconds,\n ...(runtime.lockKeyPrefix !== undefined\n ? { lockKeyPrefix: runtime.lockKeyPrefix }\n : {}),\n signal,\n }),\n intervalMs: runtime.lockHeartbeatIntervalSeconds * 1_000,\n fallbackTtlSeconds: runtime.lockTtlSeconds,\n // The acquire round trip and the history lookup above both run between\n // the lock request and now, so pass the lifetime the platform set minus\n // the time already spent.\n initialTtlSeconds:\n lockTtlSeconds === undefined\n ? undefined\n : lockTtlSeconds - (Date.now() - lockRequestedAt) / 1_000,\n onLost: (err) => {\n logger.error(\"Failed to renew thread lock:\", err);\n try {\n agent.abortRun();\n } catch (abortError) {\n logger.error(\n \"Failed to abort agent after lock renewal failure:\",\n abortError,\n );\n }\n },\n });\n\n const clearHeartbeat = () => {\n heartbeat.stop();\n };\n\n const runStarted = { current: false };\n let immediateStartupErrorMessage: string | undefined;\n let immediateStartupCleanup: Promise<void> | undefined;\n\n const runRequest: AgentRunnerRunRequest = {\n threadId: canonicalThreadId,\n ...(backendThreadId === undefined ? {} : { backendThreadId }),\n agent,\n input: canonicalInput,\n ...(persistedInputMessages !== undefined ? { persistedInputMessages } : {}),\n };\n\n const runtimeErrorReporter = getRuntimeErrorReporter(runtime);\n let agentErrorReported = false;\n const reportAgentError = (error: unknown, phase: RuntimeErrorPhase) => {\n if (agentErrorReported) return;\n agentErrorReported = true;\n // Analytics describes the outcome; only the application-owned reporter\n // receives diagnostics that may contain customer or upstream content.\n runtimeTelemetry.capture(\"oss.runtime.agent_execution_stream_errored\", {\n error: \"AGENT_EXECUTION_FAILED\",\n });\n runtimeErrorReporter?.report({\n request,\n error,\n operation: \"agent.run\",\n agentId,\n threadId: canonicalThreadId,\n runId: canonicalRunId,\n phase,\n startTime,\n });\n };\n\n try {\n const runStart = hasRunnerStartupBoundary(runtime.runner)\n ? runtime.runner.runWithStartupBoundary(runRequest)\n : {\n events: runtime.runner.run(runRequest),\n startup: Promise.resolve(),\n };\n\n runStart.events.subscribe({\n next: (event: BaseEvent) => {\n if (event.type === EventType.RUN_STARTED) {\n runStarted.current = true;\n }\n if (event.type === EventType.RUN_ERROR) {\n const message =\n \"message\" in event && typeof event.message === \"string\"\n ? event.message\n : \"Runner failed before the run started\";\n reportAgentError(\n new Error(message),\n runStarted.current\n ? \"intelligence.subscription\"\n : \"intelligence.startup\",\n );\n if (!runStarted.current) {\n clearHeartbeat();\n immediateStartupErrorMessage = message;\n immediateStartupCleanup = cleanupLock(\"runner-start-failed\");\n }\n }\n },\n error: (error) => {\n reportAgentError(\n error,\n runStarted.current\n ? \"intelligence.subscription\"\n : \"intelligence.startup\",\n );\n clearHeartbeat();\n if (!runStarted.current) {\n immediateStartupErrorMessage =\n error instanceof Error ? error.message : String(error);\n immediateStartupCleanup = cleanupLock(\"runner-start-error\");\n } else {\n cleanupLock(\"runner-error\");\n }\n logger.error(\"Error running agent:\", error);\n },\n complete: () => {\n clearHeartbeat();\n // Preserve the existing completion count even when the stream contains\n // RUN_ERROR. Failure reporting is separate and carries only a safe code.\n runtimeTelemetry.capture(\n \"oss.runtime.agent_execution_stream_ended\",\n {},\n );\n },\n });\n\n await runStart.startup;\n } catch (error) {\n reportAgentError(error, \"intelligence.startup\");\n clearHeartbeat();\n await (immediateStartupCleanup ?? cleanupLock(\"runner-start-threw\"));\n logger.error(\"Error starting agent runner:\", error);\n return Response.json(\n {\n error: \"Failed to start runner\",\n message: error instanceof Error ? error.message : String(error),\n },\n { status: 502 },\n );\n }\n\n if (immediateStartupErrorMessage) {\n await immediateStartupCleanup;\n return Response.json(\n {\n error: \"Failed to start runner\",\n message: immediateStartupErrorMessage,\n },\n { status: 502 },\n );\n }\n\n // IntelligenceAgentRunner resolves this boundary after Phoenix channel join.\n // Other runner implementations fall back to construction/subscription errors.\n return Response.json(\n {\n threadId: canonicalThreadId,\n runId: canonicalRunId,\n joinToken,\n realtime: buildRealtimeConnectionInfo({\n clientUrl: runtime.intelligence.ɵgetClientWsUrl(),\n threadId: canonicalThreadId,\n }),\n },\n {\n headers: { \"Cache-Control\": \"no-cache\" },\n },\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AA4BA,SAAS,4BAA4B,QAGI;AACvC,QAAO;EACL,WAAW,OAAO;EAClB,OAAO,UAAU,OAAO;EACzB;;AAYH,SAAS,yBACP,QAE0B;AAG1B,QACE,OAHgB,OAGC,2BAA2B,eAC3C,OAAO,UAAU,eAAe,KAAK,QAAQ,yBAAyB,IACrE,OAAO,UAAU,eAAe,KAAK,QAAQ,UAAU;;AAa7D,eAAsB,sBAAsB,EAC1C,SACA,SACA,SACA,OACA,OACA,aACiD;CACjD,MAAM,mBAAmB,QAAQ,aAAa;AAE9C,KAAI,CAAC,QAAQ,aACX,QAAO,SAAS,KACd;EACE,OAAO;EACP,SAAS;EACV,EACD,EAAE,QAAQ,KAAK,CAChB;CAGH,MAAM,OAAO,MAAM,wBAAwB;EAAE;EAAS;EAAS,CAAC;AAChE,KAAI,kBAAkB,KAAK,CACzB,QAAO;CAET,MAAM,SAAS,KAAK;CAEpB,MAAM,eACJ,MAAM,gBACL;CACH,MAAM,uBACJ,MAAM,gBAAgB,oCAAoC,QAC1D,gBACA,OAAO,iBAAiB,YACvB,aAAsC,WAAW;CAIpD,MAAM,qBAAqB,MAAM,gBAAgB;CACjD,MAAM,YACJ,OAAO,uBAAuB,YAAY,mBAAmB,SAAS,IAClE,qBACA;CAEN,IAAI;AACJ,KAAI;EACF,MAAM,WAAW,QAAQ,aAAa,2BAA2B;AACjE,wBAAsB,WAClB,MAAM,iCAAiC,UAAU;GAC/C,SAAS;GACT;GACA;GACA;GACD,CAAC,GACF,MAAM,2BAA2B,QAAQ,UAAU;GACjD,SAAS;GACT;GACA,UAAU,MAAM;GAChB,OAAO,MAAM;GACb;GACA;GACD,CAAC;UACC,OAAO;AACd,SAAO,MAAM,yCAAyC,MAAM;AAC5D,SAAO,SAAS,KACd,EAAE,OAAO,wCAAwC,EACjD,EAAE,QAAQ,KAAK,CAChB;;CAGH,IAAI;AACJ,KAAI;EACF,MAAM,cAAc,MAAM,QAAQ,aAAa,kBAAkB;GAC/D,UAAU,MAAM;GAChB;GACA;GACA,GAAI,wBAAwB,SAAY,EAAE,qBAAqB,GAAG,EAAE;GACrE,CAAC;AACF,WAAS,YAAY;EACrB,MAAM,EAAE,YAAY;AAEpB,MAAI,WAAW,QAAQ,uBAAuB,CAAC,OAAO,MAAM,MAAM,CAChE,CAAK,+BAA+B;GAClC;GACA;GACA;GACA,aAAa;GACb;GACA;GACD,CAAC,CAAC,OAAO,cAAc;AACtB,UAAO,MAAM,mCAAmC,UAAU;IAC1D;UAEG,OAAO;AACd,SAAO,MAAM,mCAAmC,MAAM;EACtD,MAAM,iBAAiB,uBAAuB,MAAM;AACpD,SAAO,SAAS,KACd,EACE,OAAO,+BACR,EACD,EACE,QACE,mBAAmB,UACnB,kBAAkB,OAClB,iBAAiB,MACb,iBACA,KACP,CACF;;AAMH,KAAI,qBACF,KAAI;AACF,MAAI,OAAO,WAAW,OAAO,YAAY,QACvC,QAAO,SAAS,KACd,EAAE,OAAO,mCAAmC,EAC5C,EAAE,QAAQ,KAAK,CAChB;AAEH,QAAM,WAAW,OAAO;EACxB,MAAM,MAAM,MAAM,MAAM,SAAS;GAC/B,OAAO,MAAM;GACb,OAAO,MAAM;GACb,SAAS,MAAM;GACf,gBAAgB,MAAM;GACvB,CAAC;AACF,SAAO,SAAS,KAAK;GACnB,MAAM;GACN,UAAU,OAAO;GACjB,OAAO,MAAM;GACb,QAAQ,IAAI,UAAU;GACvB,CAAC;UACK,OAAO;AACd,SAAO,MAAM,6BAA6B,MAAM;EAChD,MAAM,SAAS,uBAAuB,MAAM;AAC5C,SAAO,SAAS,KACd,EAAE,OAAO,4BAA4B,EACrC,EAAE,QAAQ,UAAU,UAAU,OAAO,SAAS,MAAM,SAAS,KAAK,CACnE;;CAIL,IAAI,oBAAoB,MAAM;CAC9B,IAAI,iBAAiB,MAAM;CAC3B,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI,kBAAkB;AACtB,KAAI;AAGF,oBAAkB,KAAK,KAAK;EAC5B,MAAM,aAAa,MAAM,QAAQ,aAAa,mBAAmB;GAC/D,yBAAyB;GACzB,UAAU,MAAM;GAChB,OAAO,MAAM;GACb;GACA;GACA,GAAI,wBAAwB,SAAY,EAAE,qBAAqB,GAAG,EAAE;GACpE,GAAI,cAAc,SAAY,EAAE,WAAW,GAAG,EAAE;GAChD,GAAI,QAAQ,kBAAkB,SAC1B,EAAE,eAAe,QAAQ,eAAe,GACxC,EAAE;GACN,YAAY,QAAQ;GACrB,CAAC;AACF,sBAAoB,WAAW;AAC/B,mBAAiB,WAAW;AAC5B,cAAY,WAAW;AACvB,oBAAkB,WAAW;AAC7B,mBAAiB,WAAW;UACrB,OAAO;AACd,SAAO,MAAM,uBAAuB,MAAM;EAC1C,MAAM,iBAAiB,uBAAuB,MAAM;AACpD,SAAO,SAAS,KACd,EACE,OAAO,sBACR,EACD,EACE,QAAQ,mBAAmB,MAAM,MAAM,KACxC,CACF;;CAGH,MAAM,eAAe,WACnB,QAAQ,aACL,mBAAmB;EAClB,UAAU,qBAAqB,MAAM;EACrC,OAAO,kBAAkB,MAAM;EAChC,CAAC,CACD,OAAO,iBAAiB;AACvB,SAAO,MACL;GAAE,KAAK;GAAc;GAAQ,EAC7B,gCACD;GACD;AAEN,KAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,WAAW;AACvD,QAAM,YAAY,0BAA0B;AAC5C,SAAO,SAAS,KACd;GACE,OAAO;GACP,SACE;GACH,EACD,EAAE,QAAQ,KAAK,CAChB;;CAGH,MAAM,iBAAgC;EACpC,GAAG;EACH,UAAU;EACV,OAAO;EACR;CAED,IAAI;AACJ,KAAI,MAAM,QAAQ,MAAM,SAAS,CAC/B,KAAI;EACF,MAAM,qBAAqB,IAAI,IAC7B,MAAM,QAAQ,aAAa,qBAAqB;GAC9C,UAAU;GACV;GACD,CAAC,CACH;AACD,2BAAyB,MAAM,SAAS,QACrC,YAAY,CAAC,mBAAmB,IAAI,QAAQ,GAAG,CACjD;UACM,OAAO;AACd,SAAO,MAAM,iCAAiC,MAAM;AACpD,QAAM,YAAY,+BAA+B;AACjD,SAAO,SAAS,KACd,EACE,OAAO,gCACR,EACD,EAAE,QAAQ,KAAK,CAChB;;AAIL,kBAAiB,QAAQ,8CAA8C,EAAE,CAAC;CAK1E,MAAM,YAAY,yBAAyB;EACzC,QAAQ,WACN,QAAQ,aAAa,iBAAiB;GACpC,UAAU;GACV,OAAO;GACP,YAAY,QAAQ;GACpB,GAAI,QAAQ,kBAAkB,SAC1B,EAAE,eAAe,QAAQ,eAAe,GACxC,EAAE;GACN;GACD,CAAC;EACJ,YAAY,QAAQ,+BAA+B;EACnD,oBAAoB,QAAQ;EAI5B,mBACE,mBAAmB,SACf,SACA,kBAAkB,KAAK,KAAK,GAAG,mBAAmB;EACxD,SAAS,QAAQ;AACf,UAAO,MAAM,gCAAgC,IAAI;AACjD,OAAI;AACF,UAAM,UAAU;YACT,YAAY;AACnB,WAAO,MACL,qDACA,WACD;;;EAGN,CAAC;CAEF,MAAM,uBAAuB;AAC3B,YAAU,MAAM;;CAGlB,MAAM,aAAa,EAAE,SAAS,OAAO;CACrC,IAAI;CACJ,IAAI;CAEJ,MAAM,aAAoC;EACxC,UAAU;EACV,GAAI,oBAAoB,SAAY,EAAE,GAAG,EAAE,iBAAiB;EAC5D;EACA,OAAO;EACP,GAAI,2BAA2B,SAAY,EAAE,wBAAwB,GAAG,EAAE;EAC3E;CAED,MAAM,uBAAuB,wBAAwB,QAAQ;CAC7D,IAAI,qBAAqB;CACzB,MAAM,oBAAoB,OAAgB,UAA6B;AACrE,MAAI,mBAAoB;AACxB,uBAAqB;AAGrB,mBAAiB,QAAQ,8CAA8C,EACrE,OAAO,0BACR,CAAC;AACF,wBAAsB,OAAO;GAC3B;GACA;GACA,WAAW;GACX;GACA,UAAU;GACV,OAAO;GACP;GACA;GACD,CAAC;;AAGJ,KAAI;EACF,MAAM,WAAW,yBAAyB,QAAQ,OAAO,GACrD,QAAQ,OAAO,uBAAuB,WAAW,GACjD;GACE,QAAQ,QAAQ,OAAO,IAAI,WAAW;GACtC,SAAS,QAAQ,SAAS;GAC3B;AAEL,WAAS,OAAO,UAAU;GACxB,OAAO,UAAqB;AAC1B,QAAI,MAAM,SAAS,UAAU,YAC3B,YAAW,UAAU;AAEvB,QAAI,MAAM,SAAS,UAAU,WAAW;KACtC,MAAM,UACJ,aAAa,SAAS,OAAO,MAAM,YAAY,WAC3C,MAAM,UACN;AACN,sBACE,IAAI,MAAM,QAAQ,EAClB,WAAW,UACP,8BACA,uBACL;AACD,SAAI,CAAC,WAAW,SAAS;AACvB,sBAAgB;AAChB,qCAA+B;AAC/B,gCAA0B,YAAY,sBAAsB;;;;GAIlE,QAAQ,UAAU;AAChB,qBACE,OACA,WAAW,UACP,8BACA,uBACL;AACD,oBAAgB;AAChB,QAAI,CAAC,WAAW,SAAS;AACvB,oCACE,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACxD,+BAA0B,YAAY,qBAAqB;UAE3D,aAAY,eAAe;AAE7B,WAAO,MAAM,wBAAwB,MAAM;;GAE7C,gBAAgB;AACd,oBAAgB;AAGhB,qBAAiB,QACf,4CACA,EAAE,CACH;;GAEJ,CAAC;AAEF,QAAM,SAAS;UACR,OAAO;AACd,mBAAiB,OAAO,uBAAuB;AAC/C,kBAAgB;AAChB,SAAO,2BAA2B,YAAY,qBAAqB;AACnE,SAAO,MAAM,gCAAgC,MAAM;AACnD,SAAO,SAAS,KACd;GACE,OAAO;GACP,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;GAChE,EACD,EAAE,QAAQ,KAAK,CAChB;;AAGH,KAAI,8BAA8B;AAChC,QAAM;AACN,SAAO,SAAS,KACd;GACE,OAAO;GACP,SAAS;GACV,EACD,EAAE,QAAQ,KAAK,CAChB;;AAKH,QAAO,SAAS,KACd;EACE,UAAU;EACV,OAAO;EACP;EACA,UAAU,4BAA4B;GACpC,WAAW,QAAQ,aAAa,iBAAiB;GACjD,UAAU;GACX,CAAC;EACH,EACD,EACE,SAAS,EAAE,iBAAiB,YAAY,EACzC,CACF"}