@copilotkit/runtime 1.51.5-next.0 → 1.51.5-next.1

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 (490) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorate.cjs +12 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorate.mjs +11 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateMetadata.cjs +9 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateMetadata.mjs +8 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateParam.cjs +11 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.112.0/helpers/decorateParam.mjs +10 -0
  8. package/dist/_virtual/_rolldown/runtime.cjs +32 -0
  9. package/dist/_virtual/_rolldown/runtime.mjs +9 -0
  10. package/dist/agents/langgraph/events.cjs +25 -0
  11. package/dist/agents/langgraph/events.cjs.map +1 -0
  12. package/dist/agents/langgraph/events.mjs +24 -0
  13. package/dist/agents/langgraph/events.mjs.map +1 -0
  14. package/dist/graphql/inputs/action.input.cjs +24 -0
  15. package/dist/graphql/inputs/action.input.cjs.map +1 -0
  16. package/dist/graphql/inputs/action.input.d.cts +13 -0
  17. package/dist/graphql/inputs/action.input.d.cts.map +1 -0
  18. package/dist/graphql/inputs/action.input.d.mts +13 -0
  19. package/dist/graphql/inputs/action.input.d.mts.map +1 -0
  20. package/dist/graphql/inputs/action.input.mjs +18 -0
  21. package/dist/graphql/inputs/action.input.mjs.map +1 -0
  22. package/dist/graphql/inputs/agent-session.input.cjs +21 -0
  23. package/dist/graphql/inputs/agent-session.input.cjs.map +1 -0
  24. package/dist/graphql/inputs/agent-session.input.d.cts +10 -0
  25. package/dist/graphql/inputs/agent-session.input.d.cts.map +1 -0
  26. package/dist/graphql/inputs/agent-session.input.d.mts +10 -0
  27. package/dist/graphql/inputs/agent-session.input.d.mts.map +1 -0
  28. package/dist/graphql/inputs/agent-session.input.mjs +15 -0
  29. package/dist/graphql/inputs/agent-session.input.mjs.map +1 -0
  30. package/dist/graphql/inputs/agent-state.input.cjs +21 -0
  31. package/dist/graphql/inputs/agent-state.input.cjs.map +1 -0
  32. package/dist/graphql/inputs/agent-state.input.d.cts +10 -0
  33. package/dist/graphql/inputs/agent-state.input.d.cts.map +1 -0
  34. package/dist/graphql/inputs/agent-state.input.d.mts +10 -0
  35. package/dist/graphql/inputs/agent-state.input.d.mts.map +1 -0
  36. package/dist/graphql/inputs/agent-state.input.mjs +15 -0
  37. package/dist/graphql/inputs/agent-state.input.mjs.map +1 -0
  38. package/dist/graphql/inputs/cloud-guardrails.input.cjs +29 -0
  39. package/dist/graphql/inputs/cloud-guardrails.input.cjs.map +1 -0
  40. package/dist/graphql/inputs/cloud-guardrails.input.mjs +23 -0
  41. package/dist/graphql/inputs/cloud-guardrails.input.mjs.map +1 -0
  42. package/dist/graphql/inputs/cloud.input.cjs +21 -0
  43. package/dist/graphql/inputs/cloud.input.cjs.map +1 -0
  44. package/dist/graphql/inputs/cloud.input.mjs +15 -0
  45. package/dist/graphql/inputs/cloud.input.mjs.map +1 -0
  46. package/dist/graphql/inputs/copilot-context.input.cjs +20 -0
  47. package/dist/graphql/inputs/copilot-context.input.cjs.map +1 -0
  48. package/dist/graphql/inputs/copilot-context.input.mjs +14 -0
  49. package/dist/graphql/inputs/copilot-context.input.mjs.map +1 -0
  50. package/dist/graphql/inputs/extensions.input.cjs +24 -0
  51. package/dist/graphql/inputs/extensions.input.cjs.map +1 -0
  52. package/dist/graphql/inputs/extensions.input.d.cts +16 -0
  53. package/dist/graphql/inputs/extensions.input.d.cts.map +1 -0
  54. package/dist/graphql/inputs/extensions.input.d.mts +16 -0
  55. package/dist/graphql/inputs/extensions.input.d.mts.map +1 -0
  56. package/dist/graphql/inputs/extensions.input.mjs +18 -0
  57. package/dist/graphql/inputs/extensions.input.mjs.map +1 -0
  58. package/dist/graphql/inputs/forwarded-parameters.input.cjs +25 -0
  59. package/dist/graphql/inputs/forwarded-parameters.input.cjs.map +1 -0
  60. package/dist/graphql/inputs/forwarded-parameters.input.d.cts +13 -0
  61. package/dist/graphql/inputs/forwarded-parameters.input.d.cts.map +1 -0
  62. package/dist/graphql/inputs/forwarded-parameters.input.d.mts +13 -0
  63. package/dist/graphql/inputs/forwarded-parameters.input.d.mts.map +1 -0
  64. package/dist/graphql/inputs/forwarded-parameters.input.mjs +19 -0
  65. package/dist/graphql/inputs/forwarded-parameters.input.mjs.map +1 -0
  66. package/dist/graphql/inputs/frontend.input.cjs +22 -0
  67. package/dist/graphql/inputs/frontend.input.cjs.map +1 -0
  68. package/dist/graphql/inputs/frontend.input.mjs +16 -0
  69. package/dist/graphql/inputs/frontend.input.mjs.map +1 -0
  70. package/dist/graphql/inputs/generate-copilot-response.input.cjs +45 -0
  71. package/dist/graphql/inputs/generate-copilot-response.input.cjs.map +1 -0
  72. package/dist/graphql/inputs/generate-copilot-response.input.mjs +39 -0
  73. package/dist/graphql/inputs/generate-copilot-response.input.mjs.map +1 -0
  74. package/dist/graphql/inputs/load-agent-state.input.cjs +20 -0
  75. package/dist/graphql/inputs/load-agent-state.input.cjs.map +1 -0
  76. package/dist/graphql/inputs/load-agent-state.input.mjs +14 -0
  77. package/dist/graphql/inputs/load-agent-state.input.mjs.map +1 -0
  78. package/dist/graphql/inputs/message.input.cjs +62 -0
  79. package/dist/graphql/inputs/message.input.cjs.map +1 -0
  80. package/dist/graphql/inputs/message.input.d.cts +48 -0
  81. package/dist/graphql/inputs/message.input.d.cts.map +1 -0
  82. package/dist/graphql/inputs/message.input.d.mts +48 -0
  83. package/dist/graphql/inputs/message.input.d.mts.map +1 -0
  84. package/dist/graphql/inputs/message.input.mjs +56 -0
  85. package/dist/graphql/inputs/message.input.mjs.map +1 -0
  86. package/dist/graphql/inputs/meta-event.input.cjs +25 -0
  87. package/dist/graphql/inputs/meta-event.input.cjs.map +1 -0
  88. package/dist/graphql/inputs/meta-event.input.mjs +19 -0
  89. package/dist/graphql/inputs/meta-event.input.mjs.map +1 -0
  90. package/dist/graphql/message-conversion/agui-to-gql.cjs +155 -0
  91. package/dist/graphql/message-conversion/agui-to-gql.cjs.map +1 -0
  92. package/dist/graphql/message-conversion/agui-to-gql.mjs +155 -0
  93. package/dist/graphql/message-conversion/agui-to-gql.mjs.map +1 -0
  94. package/dist/graphql/resolvers/copilot.resolver.cjs +451 -0
  95. package/dist/graphql/resolvers/copilot.resolver.cjs.map +1 -0
  96. package/dist/graphql/resolvers/copilot.resolver.mjs +445 -0
  97. package/dist/graphql/resolvers/copilot.resolver.mjs.map +1 -0
  98. package/dist/graphql/resolvers/state.resolver.cjs +43 -0
  99. package/dist/graphql/resolvers/state.resolver.cjs.map +1 -0
  100. package/dist/graphql/resolvers/state.resolver.mjs +37 -0
  101. package/dist/graphql/resolvers/state.resolver.mjs.map +1 -0
  102. package/dist/graphql/types/agents-response.type.cjs +24 -0
  103. package/dist/graphql/types/agents-response.type.cjs.map +1 -0
  104. package/dist/graphql/types/agents-response.type.mjs +18 -0
  105. package/dist/graphql/types/agents-response.type.mjs.map +1 -0
  106. package/dist/graphql/types/base/index.cjs +21 -0
  107. package/dist/graphql/types/base/index.cjs.map +1 -0
  108. package/dist/graphql/types/base/index.d.cts +9 -0
  109. package/dist/graphql/types/base/index.d.cts.map +1 -0
  110. package/dist/graphql/types/base/index.d.mts +9 -0
  111. package/dist/graphql/types/base/index.d.mts.map +1 -0
  112. package/dist/graphql/types/base/index.mjs +15 -0
  113. package/dist/graphql/types/base/index.mjs.map +1 -0
  114. package/dist/graphql/types/converted/index.cjs +118 -0
  115. package/dist/graphql/types/converted/index.cjs.map +1 -0
  116. package/dist/graphql/types/converted/index.d.cts +78 -0
  117. package/dist/graphql/types/converted/index.d.cts.map +1 -0
  118. package/dist/graphql/types/converted/index.d.mts +78 -0
  119. package/dist/graphql/types/converted/index.d.mts.map +1 -0
  120. package/dist/graphql/types/converted/index.mjs +112 -0
  121. package/dist/graphql/types/converted/index.mjs.map +1 -0
  122. package/dist/graphql/types/copilot-response.type.cjs +82 -0
  123. package/dist/graphql/types/copilot-response.type.cjs.map +1 -0
  124. package/dist/graphql/types/copilot-response.type.d.cts +12 -0
  125. package/dist/graphql/types/copilot-response.type.d.cts.map +1 -0
  126. package/dist/graphql/types/copilot-response.type.d.mts +12 -0
  127. package/dist/graphql/types/copilot-response.type.d.mts.map +1 -0
  128. package/dist/graphql/types/copilot-response.type.mjs +70 -0
  129. package/dist/graphql/types/copilot-response.type.mjs.map +1 -0
  130. package/dist/graphql/types/enums.cjs +45 -0
  131. package/dist/graphql/types/enums.cjs.map +1 -0
  132. package/dist/graphql/types/enums.d.cts +17 -0
  133. package/dist/graphql/types/enums.d.cts.map +1 -0
  134. package/dist/graphql/types/enums.d.mts +17 -0
  135. package/dist/graphql/types/enums.d.mts.map +1 -0
  136. package/dist/graphql/types/enums.mjs +42 -0
  137. package/dist/graphql/types/enums.mjs.map +1 -0
  138. package/dist/graphql/types/extensions-response.type.cjs +24 -0
  139. package/dist/graphql/types/extensions-response.type.cjs.map +1 -0
  140. package/dist/graphql/types/extensions-response.type.d.cts +18 -0
  141. package/dist/graphql/types/extensions-response.type.d.cts.map +1 -0
  142. package/dist/graphql/types/extensions-response.type.d.mts +18 -0
  143. package/dist/graphql/types/extensions-response.type.d.mts.map +1 -0
  144. package/dist/graphql/types/extensions-response.type.mjs +18 -0
  145. package/dist/graphql/types/extensions-response.type.mjs.map +1 -0
  146. package/dist/graphql/types/load-agent-state-response.type.cjs +22 -0
  147. package/dist/graphql/types/load-agent-state-response.type.cjs.map +1 -0
  148. package/dist/graphql/types/load-agent-state-response.type.mjs +16 -0
  149. package/dist/graphql/types/load-agent-state-response.type.mjs.map +1 -0
  150. package/dist/graphql/types/message-status.type.cjs +65 -0
  151. package/dist/graphql/types/message-status.type.cjs.map +1 -0
  152. package/dist/graphql/types/message-status.type.d.cts +25 -0
  153. package/dist/graphql/types/message-status.type.d.cts.map +1 -0
  154. package/dist/graphql/types/message-status.type.d.mts +25 -0
  155. package/dist/graphql/types/message-status.type.d.mts.map +1 -0
  156. package/dist/graphql/types/message-status.type.mjs +51 -0
  157. package/dist/graphql/types/message-status.type.mjs.map +1 -0
  158. package/dist/graphql/types/meta-events.type.cjs +73 -0
  159. package/dist/graphql/types/meta-events.type.cjs.map +1 -0
  160. package/dist/graphql/types/meta-events.type.mjs +54 -0
  161. package/dist/graphql/types/meta-events.type.mjs.map +1 -0
  162. package/dist/graphql/types/response-status.type.cjs +79 -0
  163. package/dist/graphql/types/response-status.type.cjs.map +1 -0
  164. package/dist/graphql/types/response-status.type.d.cts +23 -0
  165. package/dist/graphql/types/response-status.type.d.cts.map +1 -0
  166. package/dist/graphql/types/response-status.type.d.mts +23 -0
  167. package/dist/graphql/types/response-status.type.d.mts.map +1 -0
  168. package/dist/graphql/types/response-status.type.mjs +65 -0
  169. package/dist/graphql/types/response-status.type.mjs.map +1 -0
  170. package/dist/index.cjs +62 -0
  171. package/dist/index.d.cts +28 -0
  172. package/dist/index.d.mts +28 -0
  173. package/dist/index.mjs +27 -5612
  174. package/dist/langgraph.cjs +10 -0
  175. package/dist/langgraph.d.cts +5 -0
  176. package/dist/langgraph.d.mts +5 -0
  177. package/dist/langgraph.mjs +4 -201
  178. package/dist/lib/cloud/index.d.cts +9 -0
  179. package/dist/lib/cloud/index.d.cts.map +1 -0
  180. package/dist/lib/cloud/index.d.mts +9 -0
  181. package/dist/lib/cloud/index.d.mts.map +1 -0
  182. package/dist/lib/index.cjs +40 -0
  183. package/dist/lib/index.cjs.map +1 -0
  184. package/dist/lib/index.d.cts +51 -0
  185. package/dist/lib/index.d.cts.map +1 -0
  186. package/dist/lib/index.d.mts +51 -0
  187. package/dist/lib/index.d.mts.map +1 -0
  188. package/dist/lib/index.mjs +39 -0
  189. package/dist/lib/index.mjs.map +1 -0
  190. package/dist/lib/integrations/index.d.cts +7 -0
  191. package/dist/lib/integrations/index.d.mts +7 -0
  192. package/dist/lib/integrations/nest/index.cjs +14 -0
  193. package/dist/lib/integrations/nest/index.cjs.map +1 -0
  194. package/dist/lib/integrations/nest/index.d.cts +9 -0
  195. package/dist/lib/integrations/nest/index.d.cts.map +1 -0
  196. package/dist/lib/integrations/nest/index.d.mts +9 -0
  197. package/dist/lib/integrations/nest/index.d.mts.map +1 -0
  198. package/dist/lib/integrations/nest/index.mjs +14 -0
  199. package/dist/lib/integrations/nest/index.mjs.map +1 -0
  200. package/dist/lib/integrations/nextjs/app-router.cjs +26 -0
  201. package/dist/lib/integrations/nextjs/app-router.cjs.map +1 -0
  202. package/dist/lib/integrations/nextjs/app-router.d.cts +10 -0
  203. package/dist/lib/integrations/nextjs/app-router.d.cts.map +1 -0
  204. package/dist/lib/integrations/nextjs/app-router.d.mts +10 -0
  205. package/dist/lib/integrations/nextjs/app-router.d.mts.map +1 -0
  206. package/dist/lib/integrations/nextjs/app-router.mjs +25 -0
  207. package/dist/lib/integrations/nextjs/app-router.mjs.map +1 -0
  208. package/dist/lib/integrations/nextjs/pages-router.cjs +20 -0
  209. package/dist/lib/integrations/nextjs/pages-router.cjs.map +1 -0
  210. package/dist/lib/integrations/nextjs/pages-router.d.cts +15 -0
  211. package/dist/lib/integrations/nextjs/pages-router.d.cts.map +1 -0
  212. package/dist/lib/integrations/nextjs/pages-router.d.mts +15 -0
  213. package/dist/lib/integrations/nextjs/pages-router.d.mts.map +1 -0
  214. package/dist/lib/integrations/nextjs/pages-router.mjs +19 -0
  215. package/dist/lib/integrations/nextjs/pages-router.mjs.map +1 -0
  216. package/dist/lib/integrations/node-express/index.cjs +14 -0
  217. package/dist/lib/integrations/node-express/index.cjs.map +1 -0
  218. package/dist/lib/integrations/node-express/index.d.cts +9 -0
  219. package/dist/lib/integrations/node-express/index.d.cts.map +1 -0
  220. package/dist/lib/integrations/node-express/index.d.mts +9 -0
  221. package/dist/lib/integrations/node-express/index.d.mts.map +1 -0
  222. package/dist/lib/integrations/node-express/index.mjs +14 -0
  223. package/dist/lib/integrations/node-express/index.mjs.map +1 -0
  224. package/dist/lib/integrations/node-http/index.cjs +85 -0
  225. package/dist/lib/integrations/node-http/index.cjs.map +1 -0
  226. package/dist/lib/integrations/node-http/index.d.cts +9 -0
  227. package/dist/lib/integrations/node-http/index.d.cts.map +1 -0
  228. package/dist/lib/integrations/node-http/index.d.mts +9 -0
  229. package/dist/lib/integrations/node-http/index.d.mts.map +1 -0
  230. package/dist/lib/integrations/node-http/index.mjs +84 -0
  231. package/dist/lib/integrations/node-http/index.mjs.map +1 -0
  232. package/dist/lib/integrations/node-http/request-handler.cjs +81 -0
  233. package/dist/lib/integrations/node-http/request-handler.cjs.map +1 -0
  234. package/dist/lib/integrations/node-http/request-handler.mjs +74 -0
  235. package/dist/lib/integrations/node-http/request-handler.mjs.map +1 -0
  236. package/dist/lib/integrations/shared.cjs +41 -0
  237. package/dist/lib/integrations/shared.cjs.map +1 -0
  238. package/dist/lib/integrations/shared.d.cts +57 -0
  239. package/dist/lib/integrations/shared.d.cts.map +1 -0
  240. package/dist/lib/integrations/shared.d.mts +57 -0
  241. package/dist/lib/integrations/shared.d.mts.map +1 -0
  242. package/dist/lib/integrations/shared.mjs +39 -0
  243. package/dist/lib/integrations/shared.mjs.map +1 -0
  244. package/dist/lib/logger.cjs +25 -0
  245. package/dist/lib/logger.cjs.map +1 -0
  246. package/dist/lib/logger.d.cts +13 -0
  247. package/dist/lib/logger.d.cts.map +1 -0
  248. package/dist/lib/logger.d.mts +13 -0
  249. package/dist/lib/logger.d.mts.map +1 -0
  250. package/dist/lib/logger.mjs +22 -0
  251. package/dist/lib/logger.mjs.map +1 -0
  252. package/dist/lib/observability.d.cts +72 -0
  253. package/dist/lib/observability.d.cts.map +1 -0
  254. package/dist/lib/observability.d.mts +72 -0
  255. package/dist/lib/observability.d.mts.map +1 -0
  256. package/dist/lib/runtime/agent-integrations/langgraph/agent.cjs +135 -0
  257. package/dist/lib/runtime/agent-integrations/langgraph/agent.cjs.map +1 -0
  258. package/dist/lib/runtime/agent-integrations/langgraph/agent.d.cts +851 -0
  259. package/dist/lib/runtime/agent-integrations/langgraph/agent.d.cts.map +1 -0
  260. package/dist/lib/runtime/agent-integrations/langgraph/agent.d.mts +851 -0
  261. package/dist/lib/runtime/agent-integrations/langgraph/agent.d.mts.map +1 -0
  262. package/dist/lib/runtime/agent-integrations/langgraph/agent.mjs +134 -0
  263. package/dist/lib/runtime/agent-integrations/langgraph/agent.mjs.map +1 -0
  264. package/dist/lib/runtime/agent-integrations/langgraph/consts.cjs +14 -0
  265. package/dist/lib/runtime/agent-integrations/langgraph/consts.cjs.map +1 -0
  266. package/dist/lib/runtime/agent-integrations/langgraph/consts.d.cts +20 -0
  267. package/dist/lib/runtime/agent-integrations/langgraph/consts.d.cts.map +1 -0
  268. package/dist/lib/runtime/agent-integrations/langgraph/consts.d.mts +20 -0
  269. package/dist/lib/runtime/agent-integrations/langgraph/consts.d.mts.map +1 -0
  270. package/dist/lib/runtime/agent-integrations/langgraph/consts.mjs +13 -0
  271. package/dist/lib/runtime/agent-integrations/langgraph/consts.mjs.map +1 -0
  272. package/dist/lib/runtime/agent-integrations/langgraph/index.d.cts +3 -0
  273. package/dist/lib/runtime/agent-integrations/langgraph/index.d.mts +3 -0
  274. package/dist/lib/runtime/copilot-runtime.cjs +251 -0
  275. package/dist/lib/runtime/copilot-runtime.cjs.map +1 -0
  276. package/dist/lib/runtime/copilot-runtime.d.cts +215 -0
  277. package/dist/lib/runtime/copilot-runtime.d.cts.map +1 -0
  278. package/dist/lib/runtime/copilot-runtime.d.mts +215 -0
  279. package/dist/lib/runtime/copilot-runtime.d.mts.map +1 -0
  280. package/dist/lib/runtime/copilot-runtime.mjs +247 -0
  281. package/dist/lib/runtime/copilot-runtime.mjs.map +1 -0
  282. package/dist/lib/runtime/mcp-tools-utils.cjs +138 -0
  283. package/dist/lib/runtime/mcp-tools-utils.cjs.map +1 -0
  284. package/dist/lib/runtime/mcp-tools-utils.d.cts +57 -0
  285. package/dist/lib/runtime/mcp-tools-utils.d.cts.map +1 -0
  286. package/dist/lib/runtime/mcp-tools-utils.d.mts +57 -0
  287. package/dist/lib/runtime/mcp-tools-utils.d.mts.map +1 -0
  288. package/dist/lib/runtime/mcp-tools-utils.mjs +135 -0
  289. package/dist/lib/runtime/mcp-tools-utils.mjs.map +1 -0
  290. package/dist/lib/runtime/telemetry-agent-runner.cjs +90 -0
  291. package/dist/lib/runtime/telemetry-agent-runner.cjs.map +1 -0
  292. package/dist/lib/runtime/telemetry-agent-runner.d.cts +55 -0
  293. package/dist/lib/runtime/telemetry-agent-runner.d.cts.map +1 -0
  294. package/dist/lib/runtime/telemetry-agent-runner.d.mts +55 -0
  295. package/dist/lib/runtime/telemetry-agent-runner.d.mts.map +1 -0
  296. package/dist/lib/runtime/telemetry-agent-runner.mjs +89 -0
  297. package/dist/lib/runtime/telemetry-agent-runner.mjs.map +1 -0
  298. package/dist/lib/runtime/types.cjs +12 -0
  299. package/dist/lib/runtime/types.cjs.map +1 -0
  300. package/dist/lib/runtime/types.d.cts +36 -0
  301. package/dist/lib/runtime/types.d.cts.map +1 -0
  302. package/dist/lib/runtime/types.d.mts +36 -0
  303. package/dist/lib/runtime/types.d.mts.map +1 -0
  304. package/dist/lib/runtime/types.mjs +11 -0
  305. package/dist/lib/runtime/types.mjs.map +1 -0
  306. package/dist/lib/telemetry-client.cjs +56 -0
  307. package/dist/lib/telemetry-client.cjs.map +1 -0
  308. package/dist/lib/telemetry-client.mjs +54 -0
  309. package/dist/lib/telemetry-client.mjs.map +1 -0
  310. package/dist/package.cjs +139 -0
  311. package/dist/package.cjs.map +1 -0
  312. package/dist/package.mjs +136 -0
  313. package/dist/package.mjs.map +1 -0
  314. package/dist/service-adapters/anthropic/anthropic-adapter.cjs +221 -0
  315. package/dist/service-adapters/anthropic/anthropic-adapter.cjs.map +1 -0
  316. package/dist/service-adapters/anthropic/anthropic-adapter.d.cts +54 -0
  317. package/dist/service-adapters/anthropic/anthropic-adapter.d.cts.map +1 -0
  318. package/dist/service-adapters/anthropic/anthropic-adapter.d.mts +54 -0
  319. package/dist/service-adapters/anthropic/anthropic-adapter.d.mts.map +1 -0
  320. package/dist/service-adapters/anthropic/anthropic-adapter.mjs +221 -0
  321. package/dist/service-adapters/anthropic/anthropic-adapter.mjs.map +1 -0
  322. package/dist/service-adapters/anthropic/utils.cjs +116 -0
  323. package/dist/service-adapters/anthropic/utils.cjs.map +1 -0
  324. package/dist/service-adapters/anthropic/utils.mjs +113 -0
  325. package/dist/service-adapters/anthropic/utils.mjs.map +1 -0
  326. package/dist/service-adapters/bedrock/bedrock-adapter.cjs +47 -0
  327. package/dist/service-adapters/bedrock/bedrock-adapter.cjs.map +1 -0
  328. package/dist/service-adapters/bedrock/bedrock-adapter.d.cts +31 -0
  329. package/dist/service-adapters/bedrock/bedrock-adapter.d.cts.map +1 -0
  330. package/dist/service-adapters/bedrock/bedrock-adapter.d.mts +31 -0
  331. package/dist/service-adapters/bedrock/bedrock-adapter.d.mts.map +1 -0
  332. package/dist/service-adapters/bedrock/bedrock-adapter.mjs +48 -0
  333. package/dist/service-adapters/bedrock/bedrock-adapter.mjs.map +1 -0
  334. package/dist/service-adapters/empty/empty-adapter.cjs +19 -0
  335. package/dist/service-adapters/empty/empty-adapter.cjs.map +1 -0
  336. package/dist/service-adapters/empty/empty-adapter.d.cts +12 -0
  337. package/dist/service-adapters/empty/empty-adapter.d.cts.map +1 -0
  338. package/dist/service-adapters/empty/empty-adapter.d.mts +12 -0
  339. package/dist/service-adapters/empty/empty-adapter.d.mts.map +1 -0
  340. package/dist/service-adapters/empty/empty-adapter.mjs +17 -0
  341. package/dist/service-adapters/empty/empty-adapter.mjs.map +1 -0
  342. package/dist/service-adapters/events.cjs +29 -0
  343. package/dist/service-adapters/events.cjs.map +1 -0
  344. package/dist/service-adapters/events.d.cts +185 -0
  345. package/dist/service-adapters/events.d.cts.map +1 -0
  346. package/dist/service-adapters/events.d.mts +185 -0
  347. package/dist/service-adapters/events.d.mts.map +1 -0
  348. package/dist/service-adapters/events.mjs +28 -0
  349. package/dist/service-adapters/events.mjs.map +1 -0
  350. package/dist/service-adapters/experimental/ollama/ollama-adapter.cjs +38 -0
  351. package/dist/service-adapters/experimental/ollama/ollama-adapter.cjs.map +1 -0
  352. package/dist/service-adapters/experimental/ollama/ollama-adapter.d.cts +17 -0
  353. package/dist/service-adapters/experimental/ollama/ollama-adapter.d.cts.map +1 -0
  354. package/dist/service-adapters/experimental/ollama/ollama-adapter.d.mts +17 -0
  355. package/dist/service-adapters/experimental/ollama/ollama-adapter.d.mts.map +1 -0
  356. package/dist/service-adapters/experimental/ollama/ollama-adapter.mjs +38 -0
  357. package/dist/service-adapters/experimental/ollama/ollama-adapter.mjs.map +1 -0
  358. package/dist/service-adapters/google/google-genai-adapter.cjs +52 -0
  359. package/dist/service-adapters/google/google-genai-adapter.cjs.map +1 -0
  360. package/dist/service-adapters/google/google-genai-adapter.d.cts +26 -0
  361. package/dist/service-adapters/google/google-genai-adapter.d.cts.map +1 -0
  362. package/dist/service-adapters/google/google-genai-adapter.d.mts +26 -0
  363. package/dist/service-adapters/google/google-genai-adapter.d.mts.map +1 -0
  364. package/dist/service-adapters/google/google-genai-adapter.mjs +53 -0
  365. package/dist/service-adapters/google/google-genai-adapter.mjs.map +1 -0
  366. package/dist/service-adapters/groq/groq-adapter.cjs +109 -0
  367. package/dist/service-adapters/groq/groq-adapter.cjs.map +1 -0
  368. package/dist/service-adapters/groq/groq-adapter.d.cts +38 -0
  369. package/dist/service-adapters/groq/groq-adapter.d.cts.map +1 -0
  370. package/dist/service-adapters/groq/groq-adapter.d.mts +38 -0
  371. package/dist/service-adapters/groq/groq-adapter.d.mts.map +1 -0
  372. package/dist/service-adapters/groq/groq-adapter.mjs +109 -0
  373. package/dist/service-adapters/groq/groq-adapter.mjs.map +1 -0
  374. package/dist/service-adapters/index.d.cts +14 -0
  375. package/dist/service-adapters/index.d.mts +15 -0
  376. package/dist/service-adapters/langchain/langchain-adapter.cjs +44 -0
  377. package/dist/service-adapters/langchain/langchain-adapter.cjs.map +1 -0
  378. package/dist/service-adapters/langchain/langchain-adapter.d.cts +32 -0
  379. package/dist/service-adapters/langchain/langchain-adapter.d.cts.map +1 -0
  380. package/dist/service-adapters/langchain/langchain-adapter.d.mts +32 -0
  381. package/dist/service-adapters/langchain/langchain-adapter.d.mts.map +1 -0
  382. package/dist/service-adapters/langchain/langchain-adapter.mjs +44 -0
  383. package/dist/service-adapters/langchain/langchain-adapter.mjs.map +1 -0
  384. package/dist/service-adapters/langchain/langserve.cjs +63 -0
  385. package/dist/service-adapters/langchain/langserve.cjs.map +1 -0
  386. package/dist/service-adapters/langchain/langserve.d.cts +24 -0
  387. package/dist/service-adapters/langchain/langserve.d.cts.map +1 -0
  388. package/dist/service-adapters/langchain/langserve.d.mts +24 -0
  389. package/dist/service-adapters/langchain/langserve.d.mts.map +1 -0
  390. package/dist/service-adapters/langchain/langserve.mjs +64 -0
  391. package/dist/service-adapters/langchain/langserve.mjs.map +1 -0
  392. package/dist/service-adapters/langchain/types.d.cts +11 -0
  393. package/dist/service-adapters/langchain/types.d.cts.map +1 -0
  394. package/dist/service-adapters/langchain/types.d.mts +11 -0
  395. package/dist/service-adapters/langchain/types.d.mts.map +1 -0
  396. package/dist/service-adapters/langchain/utils.cjs +183 -0
  397. package/dist/service-adapters/langchain/utils.cjs.map +1 -0
  398. package/dist/service-adapters/langchain/utils.mjs +180 -0
  399. package/dist/service-adapters/langchain/utils.mjs.map +1 -0
  400. package/dist/service-adapters/openai/openai-adapter.cjs +123 -0
  401. package/dist/service-adapters/openai/openai-adapter.cjs.map +1 -0
  402. package/dist/service-adapters/openai/openai-adapter.d.cts +47 -0
  403. package/dist/service-adapters/openai/openai-adapter.d.cts.map +1 -0
  404. package/dist/service-adapters/openai/openai-adapter.d.mts +47 -0
  405. package/dist/service-adapters/openai/openai-adapter.d.mts.map +1 -0
  406. package/dist/service-adapters/openai/openai-adapter.mjs +123 -0
  407. package/dist/service-adapters/openai/openai-adapter.mjs.map +1 -0
  408. package/dist/service-adapters/openai/openai-assistant-adapter.cjs +157 -0
  409. package/dist/service-adapters/openai/openai-assistant-adapter.cjs.map +1 -0
  410. package/dist/service-adapters/openai/openai-assistant-adapter.d.cts +59 -0
  411. package/dist/service-adapters/openai/openai-assistant-adapter.d.cts.map +1 -0
  412. package/dist/service-adapters/openai/openai-assistant-adapter.d.mts +59 -0
  413. package/dist/service-adapters/openai/openai-assistant-adapter.d.mts.map +1 -0
  414. package/dist/service-adapters/openai/openai-assistant-adapter.mjs +158 -0
  415. package/dist/service-adapters/openai/openai-assistant-adapter.mjs.map +1 -0
  416. package/dist/service-adapters/openai/utils.cjs +143 -0
  417. package/dist/service-adapters/openai/utils.cjs.map +1 -0
  418. package/dist/service-adapters/openai/utils.mjs +139 -0
  419. package/dist/service-adapters/openai/utils.mjs.map +1 -0
  420. package/dist/service-adapters/service-adapter.d.cts +37 -0
  421. package/dist/service-adapters/service-adapter.d.cts.map +1 -0
  422. package/dist/service-adapters/service-adapter.d.mts +37 -0
  423. package/dist/service-adapters/service-adapter.d.mts.map +1 -0
  424. package/dist/service-adapters/shared/error-utils.cjs +36 -0
  425. package/dist/service-adapters/shared/error-utils.cjs.map +1 -0
  426. package/dist/service-adapters/shared/error-utils.d.cts +12 -0
  427. package/dist/service-adapters/shared/error-utils.d.cts.map +1 -0
  428. package/dist/service-adapters/shared/error-utils.d.mts +12 -0
  429. package/dist/service-adapters/shared/error-utils.d.mts.map +1 -0
  430. package/dist/service-adapters/shared/error-utils.mjs +35 -0
  431. package/dist/service-adapters/shared/error-utils.mjs.map +1 -0
  432. package/dist/service-adapters/shared/index.d.mts +2 -0
  433. package/dist/service-adapters/unify/unify-adapter.cjs +93 -0
  434. package/dist/service-adapters/unify/unify-adapter.cjs.map +1 -0
  435. package/dist/service-adapters/unify/unify-adapter.d.cts +20 -0
  436. package/dist/service-adapters/unify/unify-adapter.d.cts.map +1 -0
  437. package/dist/service-adapters/unify/unify-adapter.d.mts +20 -0
  438. package/dist/service-adapters/unify/unify-adapter.d.mts.map +1 -0
  439. package/dist/service-adapters/unify/unify-adapter.mjs +93 -0
  440. package/dist/service-adapters/unify/unify-adapter.mjs.map +1 -0
  441. package/dist/utils/failed-response-status-reasons.cjs +37 -0
  442. package/dist/utils/failed-response-status-reasons.cjs.map +1 -0
  443. package/dist/utils/failed-response-status-reasons.d.cts +58 -0
  444. package/dist/utils/failed-response-status-reasons.d.cts.map +1 -0
  445. package/dist/utils/failed-response-status-reasons.d.mts +58 -0
  446. package/dist/utils/failed-response-status-reasons.d.mts.map +1 -0
  447. package/dist/utils/failed-response-status-reasons.mjs +35 -0
  448. package/dist/utils/failed-response-status-reasons.mjs.map +1 -0
  449. package/dist/v2/index.cjs +18 -0
  450. package/dist/v2/index.d.cts +3 -0
  451. package/dist/v2/index.d.mts +3 -0
  452. package/dist/v2/index.mjs +6 -5
  453. package/package.json +30 -28
  454. package/src/graphql/inputs/extensions.input.ts +6 -6
  455. package/src/graphql/inputs/message.input.ts +20 -20
  456. package/src/graphql/message-conversion/agui-to-gql.test.ts +2 -2
  457. package/src/graphql/message-conversion/gql-to-agui.test.ts +28 -28
  458. package/src/graphql/message-conversion/roundtrip-conversion.test.ts +8 -8
  459. package/src/graphql/types/extensions-response.type.ts +6 -6
  460. package/src/index.ts +0 -1
  461. package/src/lib/integrations/shared.ts +1 -81
  462. package/src/lib/runtime/__tests__/copilot-runtime-error.test.ts +4 -4
  463. package/src/lib/runtime/__tests__/mcp-tools-utils.test.ts +1 -1
  464. package/src/service-adapters/google/google-genai-adapter.test.ts +54 -11
  465. package/src/v2/index.ts +0 -1
  466. package/tests/global.d.ts +1 -13
  467. package/tests/service-adapters/anthropic/allowlist-approach.test.ts +0 -6
  468. package/tests/service-adapters/anthropic/anthropic-adapter.test.ts +28 -51
  469. package/tests/service-adapters/openai/allowlist-approach.test.ts +0 -6
  470. package/tests/service-adapters/openai/openai-adapter.test.ts +23 -38
  471. package/tests/setup.vitest.ts +8 -0
  472. package/tests/tsconfig.json +1 -1
  473. package/tsconfig.json +1 -1
  474. package/tsdown.config.ts +37 -0
  475. package/vitest.config.mjs +16 -0
  476. package/dist/index.d.ts +0 -1514
  477. package/dist/index.js +0 -5655
  478. package/dist/index.js.map +0 -1
  479. package/dist/index.mjs.map +0 -1
  480. package/dist/langgraph.d.ts +0 -869
  481. package/dist/langgraph.js +0 -207
  482. package/dist/langgraph.js.map +0 -1
  483. package/dist/langgraph.mjs.map +0 -1
  484. package/dist/v2/index.d.ts +0 -2
  485. package/dist/v2/index.js +0 -22
  486. package/dist/v2/index.js.map +0 -1
  487. package/dist/v2/index.mjs.map +0 -1
  488. package/jest.config.js +0 -10
  489. package/tests/setup.jest.ts +0 -21
  490. package/tsup.config.ts +0 -20
@@ -0,0 +1,25 @@
1
+ import "reflect-metadata";
2
+ import telemetryClient, { getRuntimeInstanceTelemetryInfo } from "../../telemetry-client.mjs";
3
+ import { getCommonConfig } from "../shared.mjs";
4
+ import { createCopilotEndpointSingleRoute } from "@copilotkitnext/runtime";
5
+ import { handle } from "hono/vercel";
6
+
7
+ //#region src/lib/integrations/nextjs/app-router.ts
8
+ function copilotRuntimeNextJSAppRouterEndpoint(options) {
9
+ const commonConfig = getCommonConfig(options);
10
+ telemetryClient.setGlobalProperties({ runtime: { framework: "nextjs-app-router" } });
11
+ if (options.properties?._copilotkit) telemetryClient.setGlobalProperties({ _copilotkit: options.properties._copilotkit });
12
+ telemetryClient.capture("oss.runtime.instance_created", getRuntimeInstanceTelemetryInfo(options));
13
+ commonConfig.logging.debug("Creating NextJS App Router endpoint");
14
+ const serviceAdapter = options.serviceAdapter;
15
+ if (serviceAdapter) options.runtime.handleServiceAdapter(serviceAdapter);
16
+ return { handleRequest: handle(createCopilotEndpointSingleRoute({
17
+ runtime: options.runtime.instance,
18
+ basePath: options.baseUrl ?? options.endpoint,
19
+ ...options.cors && { cors: options.cors }
20
+ })) };
21
+ }
22
+
23
+ //#endregion
24
+ export { copilotRuntimeNextJSAppRouterEndpoint };
25
+ //# sourceMappingURL=app-router.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-router.mjs","names":[],"sources":["../../../../src/lib/integrations/nextjs/app-router.ts"],"sourcesContent":["import { createCopilotEndpointSingleRoute } from \"@copilotkitnext/runtime\";\nimport { CreateCopilotRuntimeServerOptions, getCommonConfig } from \"../shared\";\nimport telemetry, {\n getRuntimeInstanceTelemetryInfo,\n} from \"../../telemetry-client\";\nimport { handle } from \"hono/vercel\";\n\nexport function copilotRuntimeNextJSAppRouterEndpoint(\n options: CreateCopilotRuntimeServerOptions,\n) {\n const commonConfig = getCommonConfig(options);\n\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"nextjs-app-router\",\n },\n });\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: options.properties._copilotkit,\n });\n }\n\n telemetry.capture(\n \"oss.runtime.instance_created\",\n getRuntimeInstanceTelemetryInfo(options),\n );\n\n const logger = commonConfig.logging;\n logger.debug(\"Creating NextJS App Router endpoint\");\n\n const serviceAdapter = options.serviceAdapter;\n if (serviceAdapter) {\n options.runtime.handleServiceAdapter(serviceAdapter);\n }\n\n // Note: cors option requires @copilotkitnext/runtime with credentials support\n const copilotRoute = createCopilotEndpointSingleRoute({\n runtime: options.runtime.instance,\n basePath: options.baseUrl ?? options.endpoint,\n ...(options.cors && { cors: options.cors }),\n } as any);\n\n const handleRequest = handle(copilotRoute as any);\n return { handleRequest };\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,sCACd,SACA;CACA,MAAM,eAAe,gBAAgB,QAAQ;AAE7C,iBAAU,oBAAoB,EAC5B,SAAS,EACP,WAAW,qBACZ,EACF,CAAC;AAEF,KAAI,QAAQ,YAAY,YACtB,iBAAU,oBAAoB,EAC5B,aAAa,QAAQ,WAAW,aACjC,CAAC;AAGJ,iBAAU,QACR,gCACA,gCAAgC,QAAQ,CACzC;AAGD,CADe,aAAa,QACrB,MAAM,sCAAsC;CAEnD,MAAM,iBAAiB,QAAQ;AAC/B,KAAI,eACF,SAAQ,QAAQ,qBAAqB,eAAe;AAWtD,QAAO,EAAE,eADa,OAND,iCAAiC;EACpD,SAAS,QAAQ,QAAQ;EACzB,UAAU,QAAQ,WAAW,QAAQ;EACrC,GAAI,QAAQ,QAAQ,EAAE,MAAM,QAAQ,MAAM;EAC3C,CAAQ,CAEwC,EACzB"}
@@ -0,0 +1,20 @@
1
+ require("reflect-metadata");
2
+ const require_telemetry_client = require('../../telemetry-client.cjs');
3
+ const require_shared = require('../shared.cjs');
4
+ const require_index = require('../node-http/index.cjs');
5
+
6
+ //#region src/lib/integrations/nextjs/pages-router.ts
7
+ const config = { api: { bodyParser: false } };
8
+ function copilotRuntimeNextJSPagesRouterEndpoint(options) {
9
+ const commonConfig = require_shared.getCommonConfig(options);
10
+ require_telemetry_client.default.setGlobalProperties({ runtime: { framework: "nextjs-pages-router" } });
11
+ if (options.properties?._copilotkit) require_telemetry_client.default.setGlobalProperties({ _copilotkit: options.properties._copilotkit });
12
+ require_telemetry_client.default.capture("oss.runtime.instance_created", require_telemetry_client.getRuntimeInstanceTelemetryInfo(options));
13
+ commonConfig.logging.debug("Creating NextJS Pages Router endpoint");
14
+ return require_index.copilotRuntimeNodeHttpEndpoint(options);
15
+ }
16
+
17
+ //#endregion
18
+ exports.config = config;
19
+ exports.copilotRuntimeNextJSPagesRouterEndpoint = copilotRuntimeNextJSPagesRouterEndpoint;
20
+ //# sourceMappingURL=pages-router.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages-router.cjs","names":["getCommonConfig","getRuntimeInstanceTelemetryInfo","copilotRuntimeNodeHttpEndpoint"],"sources":["../../../../src/lib/integrations/nextjs/pages-router.ts"],"sourcesContent":["import { CreateCopilotRuntimeServerOptions, getCommonConfig } from \"../shared\";\nimport telemetry, {\n getRuntimeInstanceTelemetryInfo,\n} from \"../../telemetry-client\";\nimport { copilotRuntimeNodeHttpEndpoint } from \"../node-http\";\n\nexport const config = {\n api: {\n bodyParser: false,\n },\n};\n\n// This import is needed to fix the type error\n// Fix is currently in TypeScript 5.5 beta, waiting for stable version\n// https://github.com/microsoft/TypeScript/issues/42873#issuecomment-2066874644\nexport type {} from \"@whatwg-node/server\";\n\nexport function copilotRuntimeNextJSPagesRouterEndpoint(\n options: CreateCopilotRuntimeServerOptions,\n) {\n const commonConfig = getCommonConfig(options);\n\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"nextjs-pages-router\",\n },\n });\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: options.properties._copilotkit,\n });\n }\n\n telemetry.capture(\n \"oss.runtime.instance_created\",\n getRuntimeInstanceTelemetryInfo(options),\n );\n\n const logger = commonConfig.logging;\n logger.debug(\"Creating NextJS Pages Router endpoint\");\n\n return copilotRuntimeNodeHttpEndpoint(options);\n}\n"],"mappings":";;;;;;AAMA,MAAa,SAAS,EACpB,KAAK,EACH,YAAY,OACb,EACF;AAOD,SAAgB,wCACd,SACA;CACA,MAAM,eAAeA,+BAAgB,QAAQ;AAE7C,kCAAU,oBAAoB,EAC5B,SAAS,EACP,WAAW,uBACZ,EACF,CAAC;AAEF,KAAI,QAAQ,YAAY,YACtB,kCAAU,oBAAoB,EAC5B,aAAa,QAAQ,WAAW,aACjC,CAAC;AAGJ,kCAAU,QACR,gCACAC,yDAAgC,QAAQ,CACzC;AAGD,CADe,aAAa,QACrB,MAAM,wCAAwC;AAErD,QAAOC,6CAA+B,QAAQ"}
@@ -0,0 +1,15 @@
1
+
2
+ import { CreateCopilotRuntimeServerOptions } from "../shared.cjs";
3
+ import * as http from "http";
4
+ import "@whatwg-node/server";
5
+
6
+ //#region src/lib/integrations/nextjs/pages-router.d.ts
7
+ declare const config: {
8
+ api: {
9
+ bodyParser: boolean;
10
+ };
11
+ };
12
+ declare function copilotRuntimeNextJSPagesRouterEndpoint(options: CreateCopilotRuntimeServerOptions): (reqOrRequest: http.IncomingMessage | Request, res?: http.ServerResponse) => Promise<void> | Promise<Response> | Response;
13
+ //#endregion
14
+ export { config, copilotRuntimeNextJSPagesRouterEndpoint };
15
+ //# sourceMappingURL=pages-router.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages-router.d.cts","names":[],"sources":["../../../../src/lib/integrations/nextjs/pages-router.ts"],"mappings":";;;;;;cAMa,MAAA;EAIZ,GAAA;IAAA,UAAA;EAAA;AAAA;AAAA,iBAOe,uCAAA,CACd,OAAA,EAAS,iCAAA,IAAiC,YAAA,EAAA,IAAA,CAAA,eAAA,GAAA,OAAA,EAAA,GAAA,GAAA,IAAA,CAAA,cAAA,KAAA,OAAA,SAAA,OAAA,CAAA,QAAA,IAAA,QAAA"}
@@ -0,0 +1,15 @@
1
+ import "reflect-metadata";
2
+ import { CreateCopilotRuntimeServerOptions } from "../shared.mjs";
3
+ import * as http from "http";
4
+ import "@whatwg-node/server";
5
+
6
+ //#region src/lib/integrations/nextjs/pages-router.d.ts
7
+ declare const config: {
8
+ api: {
9
+ bodyParser: boolean;
10
+ };
11
+ };
12
+ declare function copilotRuntimeNextJSPagesRouterEndpoint(options: CreateCopilotRuntimeServerOptions): (reqOrRequest: http.IncomingMessage | Request, res?: http.ServerResponse) => Promise<void> | Promise<Response> | Response;
13
+ //#endregion
14
+ export { config, copilotRuntimeNextJSPagesRouterEndpoint };
15
+ //# sourceMappingURL=pages-router.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages-router.d.mts","names":[],"sources":["../../../../src/lib/integrations/nextjs/pages-router.ts"],"mappings":";;;;;;cAMa,MAAA;EAIZ,GAAA;IAAA,UAAA;EAAA;AAAA;AAAA,iBAOe,uCAAA,CACd,OAAA,EAAS,iCAAA,IAAiC,YAAA,EAAA,IAAA,CAAA,eAAA,GAAA,OAAA,EAAA,GAAA,GAAA,IAAA,CAAA,cAAA,KAAA,OAAA,SAAA,OAAA,CAAA,QAAA,IAAA,QAAA"}
@@ -0,0 +1,19 @@
1
+ import "reflect-metadata";
2
+ import telemetryClient, { getRuntimeInstanceTelemetryInfo } from "../../telemetry-client.mjs";
3
+ import { getCommonConfig } from "../shared.mjs";
4
+ import { copilotRuntimeNodeHttpEndpoint } from "../node-http/index.mjs";
5
+
6
+ //#region src/lib/integrations/nextjs/pages-router.ts
7
+ const config = { api: { bodyParser: false } };
8
+ function copilotRuntimeNextJSPagesRouterEndpoint(options) {
9
+ const commonConfig = getCommonConfig(options);
10
+ telemetryClient.setGlobalProperties({ runtime: { framework: "nextjs-pages-router" } });
11
+ if (options.properties?._copilotkit) telemetryClient.setGlobalProperties({ _copilotkit: options.properties._copilotkit });
12
+ telemetryClient.capture("oss.runtime.instance_created", getRuntimeInstanceTelemetryInfo(options));
13
+ commonConfig.logging.debug("Creating NextJS Pages Router endpoint");
14
+ return copilotRuntimeNodeHttpEndpoint(options);
15
+ }
16
+
17
+ //#endregion
18
+ export { config, copilotRuntimeNextJSPagesRouterEndpoint };
19
+ //# sourceMappingURL=pages-router.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages-router.mjs","names":[],"sources":["../../../../src/lib/integrations/nextjs/pages-router.ts"],"sourcesContent":["import { CreateCopilotRuntimeServerOptions, getCommonConfig } from \"../shared\";\nimport telemetry, {\n getRuntimeInstanceTelemetryInfo,\n} from \"../../telemetry-client\";\nimport { copilotRuntimeNodeHttpEndpoint } from \"../node-http\";\n\nexport const config = {\n api: {\n bodyParser: false,\n },\n};\n\n// This import is needed to fix the type error\n// Fix is currently in TypeScript 5.5 beta, waiting for stable version\n// https://github.com/microsoft/TypeScript/issues/42873#issuecomment-2066874644\nexport type {} from \"@whatwg-node/server\";\n\nexport function copilotRuntimeNextJSPagesRouterEndpoint(\n options: CreateCopilotRuntimeServerOptions,\n) {\n const commonConfig = getCommonConfig(options);\n\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"nextjs-pages-router\",\n },\n });\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: options.properties._copilotkit,\n });\n }\n\n telemetry.capture(\n \"oss.runtime.instance_created\",\n getRuntimeInstanceTelemetryInfo(options),\n );\n\n const logger = commonConfig.logging;\n logger.debug(\"Creating NextJS Pages Router endpoint\");\n\n return copilotRuntimeNodeHttpEndpoint(options);\n}\n"],"mappings":";;;;;;AAMA,MAAa,SAAS,EACpB,KAAK,EACH,YAAY,OACb,EACF;AAOD,SAAgB,wCACd,SACA;CACA,MAAM,eAAe,gBAAgB,QAAQ;AAE7C,iBAAU,oBAAoB,EAC5B,SAAS,EACP,WAAW,uBACZ,EACF,CAAC;AAEF,KAAI,QAAQ,YAAY,YACtB,iBAAU,oBAAoB,EAC5B,aAAa,QAAQ,WAAW,aACjC,CAAC;AAGJ,iBAAU,QACR,gCACA,gCAAgC,QAAQ,CACzC;AAGD,CADe,aAAa,QACrB,MAAM,wCAAwC;AAErD,QAAO,+BAA+B,QAAQ"}
@@ -0,0 +1,14 @@
1
+ require("reflect-metadata");
2
+ const require_telemetry_client = require('../../telemetry-client.cjs');
3
+ const require_index = require('../node-http/index.cjs');
4
+
5
+ //#region src/lib/integrations/node-express/index.ts
6
+ function copilotRuntimeNodeExpressEndpoint(options) {
7
+ require_telemetry_client.default.setGlobalProperties({ runtime: { framework: "node-express" } });
8
+ require_telemetry_client.default.capture("oss.runtime.instance_created", require_telemetry_client.getRuntimeInstanceTelemetryInfo(options));
9
+ return require_index.copilotRuntimeNodeHttpEndpoint(options);
10
+ }
11
+
12
+ //#endregion
13
+ exports.copilotRuntimeNodeExpressEndpoint = copilotRuntimeNodeExpressEndpoint;
14
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["getRuntimeInstanceTelemetryInfo","copilotRuntimeNodeHttpEndpoint"],"sources":["../../../../src/lib/integrations/node-express/index.ts"],"sourcesContent":["import { CreateCopilotRuntimeServerOptions } from \"../shared\";\nimport { copilotRuntimeNodeHttpEndpoint } from \"../node-http\";\nimport telemetry, {\n getRuntimeInstanceTelemetryInfo,\n} from \"../../telemetry-client\";\n\nexport function copilotRuntimeNodeExpressEndpoint(\n options: CreateCopilotRuntimeServerOptions,\n) {\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"node-express\",\n },\n });\n\n telemetry.capture(\n \"oss.runtime.instance_created\",\n getRuntimeInstanceTelemetryInfo(options),\n );\n return copilotRuntimeNodeHttpEndpoint(options);\n}\n"],"mappings":";;;;;AAMA,SAAgB,kCACd,SACA;AACA,kCAAU,oBAAoB,EAC5B,SAAS,EACP,WAAW,gBACZ,EACF,CAAC;AAEF,kCAAU,QACR,gCACAA,yDAAgC,QAAQ,CACzC;AACD,QAAOC,6CAA+B,QAAQ"}
@@ -0,0 +1,9 @@
1
+
2
+ import { CreateCopilotRuntimeServerOptions } from "../shared.cjs";
3
+ import * as http from "http";
4
+
5
+ //#region src/lib/integrations/node-express/index.d.ts
6
+ declare function copilotRuntimeNodeExpressEndpoint(options: CreateCopilotRuntimeServerOptions): (reqOrRequest: http.IncomingMessage | Request, res?: http.ServerResponse) => Promise<void> | Promise<Response> | Response;
7
+ //#endregion
8
+ export { copilotRuntimeNodeExpressEndpoint };
9
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../../../src/lib/integrations/node-express/index.ts"],"mappings":";;;;;iBAMgB,iCAAA,CACd,OAAA,EAAS,iCAAA,IAAiC,YAAA,EAAA,IAAA,CAAA,eAAA,GAAA,OAAA,EAAA,GAAA,GAAA,IAAA,CAAA,cAAA,KAAA,OAAA,SAAA,OAAA,CAAA,QAAA,IAAA,QAAA"}
@@ -0,0 +1,9 @@
1
+ import "reflect-metadata";
2
+ import { CreateCopilotRuntimeServerOptions } from "../shared.mjs";
3
+ import * as http from "http";
4
+
5
+ //#region src/lib/integrations/node-express/index.d.ts
6
+ declare function copilotRuntimeNodeExpressEndpoint(options: CreateCopilotRuntimeServerOptions): (reqOrRequest: http.IncomingMessage | Request, res?: http.ServerResponse) => Promise<void> | Promise<Response> | Response;
7
+ //#endregion
8
+ export { copilotRuntimeNodeExpressEndpoint };
9
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/lib/integrations/node-express/index.ts"],"mappings":";;;;;iBAMgB,iCAAA,CACd,OAAA,EAAS,iCAAA,IAAiC,YAAA,EAAA,IAAA,CAAA,eAAA,GAAA,OAAA,EAAA,GAAA,GAAA,IAAA,CAAA,cAAA,KAAA,OAAA,SAAA,OAAA,CAAA,QAAA,IAAA,QAAA"}
@@ -0,0 +1,14 @@
1
+ import "reflect-metadata";
2
+ import telemetryClient, { getRuntimeInstanceTelemetryInfo } from "../../telemetry-client.mjs";
3
+ import { copilotRuntimeNodeHttpEndpoint } from "../node-http/index.mjs";
4
+
5
+ //#region src/lib/integrations/node-express/index.ts
6
+ function copilotRuntimeNodeExpressEndpoint(options) {
7
+ telemetryClient.setGlobalProperties({ runtime: { framework: "node-express" } });
8
+ telemetryClient.capture("oss.runtime.instance_created", getRuntimeInstanceTelemetryInfo(options));
9
+ return copilotRuntimeNodeHttpEndpoint(options);
10
+ }
11
+
12
+ //#endregion
13
+ export { copilotRuntimeNodeExpressEndpoint };
14
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/lib/integrations/node-express/index.ts"],"sourcesContent":["import { CreateCopilotRuntimeServerOptions } from \"../shared\";\nimport { copilotRuntimeNodeHttpEndpoint } from \"../node-http\";\nimport telemetry, {\n getRuntimeInstanceTelemetryInfo,\n} from \"../../telemetry-client\";\n\nexport function copilotRuntimeNodeExpressEndpoint(\n options: CreateCopilotRuntimeServerOptions,\n) {\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"node-express\",\n },\n });\n\n telemetry.capture(\n \"oss.runtime.instance_created\",\n getRuntimeInstanceTelemetryInfo(options),\n );\n return copilotRuntimeNodeHttpEndpoint(options);\n}\n"],"mappings":";;;;;AAMA,SAAgB,kCACd,SACA;AACA,iBAAU,oBAAoB,EAC5B,SAAS,EACP,WAAW,gBACZ,EACF,CAAC;AAEF,iBAAU,QACR,gCACA,gCAAgC,QAAQ,CACzC;AACD,QAAO,+BAA+B,QAAQ"}
@@ -0,0 +1,85 @@
1
+ require("reflect-metadata");
2
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
3
+ const require_telemetry_client = require('../../telemetry-client.cjs');
4
+ const require_shared = require('../shared.cjs');
5
+ const require_request_handler = require('./request-handler.cjs');
6
+ let _copilotkitnext_runtime = require("@copilotkitnext/runtime");
7
+
8
+ //#region src/lib/integrations/node-http/index.ts
9
+ function copilotRuntimeNodeHttpEndpoint(options) {
10
+ const commonConfig = require_shared.getCommonConfig(options);
11
+ require_telemetry_client.default.setGlobalProperties({ runtime: { framework: "node-http" } });
12
+ if (options.properties?._copilotkit) require_telemetry_client.default.setGlobalProperties({ _copilotkit: options.properties._copilotkit });
13
+ require_telemetry_client.default.capture("oss.runtime.instance_created", require_telemetry_client.getRuntimeInstanceTelemetryInfo(options));
14
+ const logger = commonConfig.logging;
15
+ logger.debug("Creating Node HTTP endpoint");
16
+ const serviceAdapter = options.serviceAdapter;
17
+ if (serviceAdapter) options.runtime.handleServiceAdapter(serviceAdapter);
18
+ const honoApp = (0, _copilotkitnext_runtime.createCopilotEndpointSingleRoute)({
19
+ runtime: options.runtime.instance,
20
+ basePath: options.baseUrl ?? options.endpoint,
21
+ ...options.cors && { cors: options.cors }
22
+ });
23
+ const handle = async function handler(req, res) {
24
+ const url = require_request_handler.getFullUrl(req);
25
+ const hasBody = req.method !== "GET" && req.method !== "HEAD";
26
+ const baseHeaders = require_request_handler.toHeaders(req.headers);
27
+ const parsedBody = req.body;
28
+ const streamConsumed = require_request_handler.isStreamConsumed(req) || parsedBody !== void 0;
29
+ const canStream = hasBody && !streamConsumed;
30
+ let requestBody = void 0;
31
+ let useDuplex = false;
32
+ if (hasBody && canStream) {
33
+ requestBody = require_request_handler.nodeStreamToReadableStream(req);
34
+ useDuplex = true;
35
+ }
36
+ if (hasBody && streamConsumed) if (parsedBody !== void 0) {
37
+ const synthesized = require_request_handler.synthesizeBodyFromParsedBody(parsedBody, baseHeaders);
38
+ requestBody = synthesized.body ?? void 0;
39
+ baseHeaders.delete("content-length");
40
+ if (synthesized.contentType) baseHeaders.set("content-type", synthesized.contentType);
41
+ logger.debug("Request stream already consumed; using parsed req.body to rebuild request.");
42
+ } else {
43
+ logger.warn("Request stream consumed with no available body; sending empty payload.");
44
+ requestBody = void 0;
45
+ }
46
+ const buildRequest = (body, headers, duplex) => new Request(url, {
47
+ method: req.method,
48
+ headers,
49
+ body,
50
+ duplex: duplex ? "half" : void 0
51
+ });
52
+ let response;
53
+ try {
54
+ response = await honoApp.fetch(buildRequest(requestBody, baseHeaders, useDuplex));
55
+ } catch (error) {
56
+ if (require_request_handler.isDisturbedOrLockedError(error) && hasBody) {
57
+ logger.warn("Encountered disturbed/locked request body; rebuilding request using parsed body or empty payload.");
58
+ const fallbackHeaders = new Headers(baseHeaders);
59
+ let fallbackBody;
60
+ if (parsedBody !== void 0) {
61
+ const synthesized = require_request_handler.synthesizeBodyFromParsedBody(parsedBody, fallbackHeaders);
62
+ fallbackBody = synthesized.body ?? void 0;
63
+ fallbackHeaders.delete("content-length");
64
+ if (synthesized.contentType) fallbackHeaders.set("content-type", synthesized.contentType);
65
+ } else fallbackBody = void 0;
66
+ response = await honoApp.fetch(buildRequest(fallbackBody, fallbackHeaders, false));
67
+ } else throw error;
68
+ }
69
+ res.statusCode = response.status;
70
+ response.headers.forEach((value, key) => {
71
+ res.setHeader(key, value);
72
+ });
73
+ if (response.body) require_request_handler.readableStreamToNodeStream(response.body).pipe(res);
74
+ else res.end();
75
+ };
76
+ return function(reqOrRequest, res) {
77
+ if (reqOrRequest instanceof Request) return honoApp.fetch(reqOrRequest);
78
+ if (!res) throw new TypeError("ServerResponse is required for Node HTTP requests");
79
+ return handle(reqOrRequest, res);
80
+ };
81
+ }
82
+
83
+ //#endregion
84
+ exports.copilotRuntimeNodeHttpEndpoint = copilotRuntimeNodeHttpEndpoint;
85
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["getCommonConfig","getRuntimeInstanceTelemetryInfo","getFullUrl","toHeaders","isStreamConsumed","nodeStreamToReadableStream","synthesizeBodyFromParsedBody","isDisturbedOrLockedError"],"sources":["../../../../src/lib/integrations/node-http/index.ts"],"sourcesContent":["import { CreateCopilotRuntimeServerOptions, getCommonConfig } from \"../shared\";\nimport telemetry, {\n getRuntimeInstanceTelemetryInfo,\n} from \"../../telemetry-client\";\nimport { createCopilotEndpointSingleRoute } from \"@copilotkitnext/runtime\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport {\n getFullUrl,\n IncomingWithBody,\n isDisturbedOrLockedError,\n isStreamConsumed,\n nodeStreamToReadableStream,\n readableStreamToNodeStream,\n synthesizeBodyFromParsedBody,\n toHeaders,\n} from \"./request-handler\";\n\nexport function copilotRuntimeNodeHttpEndpoint(\n options: CreateCopilotRuntimeServerOptions,\n) {\n const commonConfig = getCommonConfig(options);\n\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"node-http\",\n },\n });\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: options.properties._copilotkit,\n });\n }\n\n telemetry.capture(\n \"oss.runtime.instance_created\",\n getRuntimeInstanceTelemetryInfo(options),\n );\n\n const logger = commonConfig.logging;\n logger.debug(\"Creating Node HTTP endpoint\");\n\n const serviceAdapter = options.serviceAdapter;\n if (serviceAdapter) {\n options.runtime.handleServiceAdapter(serviceAdapter);\n }\n\n // Note: cors option requires @copilotkitnext/runtime with credentials support\n const honoApp = createCopilotEndpointSingleRoute({\n runtime: options.runtime.instance,\n basePath: options.baseUrl ?? options.endpoint,\n ...(options.cors && { cors: options.cors }),\n } as any);\n\n const handle = async function handler(\n req: IncomingWithBody,\n res: ServerResponse,\n ) {\n const url = getFullUrl(req);\n const hasBody = req.method !== \"GET\" && req.method !== \"HEAD\";\n\n const baseHeaders = toHeaders(req.headers);\n const parsedBody = req.body;\n\n const streamConsumed = isStreamConsumed(req) || parsedBody !== undefined;\n const canStream = hasBody && !streamConsumed;\n\n let requestBody: BodyInit | null | undefined = undefined;\n let useDuplex = false;\n\n if (hasBody && canStream) {\n requestBody = nodeStreamToReadableStream(req);\n useDuplex = true;\n }\n\n if (hasBody && streamConsumed) {\n if (parsedBody !== undefined) {\n const synthesized = synthesizeBodyFromParsedBody(\n parsedBody,\n baseHeaders,\n );\n requestBody = synthesized.body ?? undefined;\n baseHeaders.delete(\"content-length\");\n\n if (synthesized.contentType) {\n baseHeaders.set(\"content-type\", synthesized.contentType);\n }\n\n logger.debug(\n \"Request stream already consumed; using parsed req.body to rebuild request.\",\n );\n } else {\n logger.warn(\n \"Request stream consumed with no available body; sending empty payload.\",\n );\n requestBody = undefined;\n }\n }\n\n const buildRequest = (\n body: BodyInit | null | undefined,\n headers: Headers,\n duplex: boolean,\n ) =>\n new Request(url, {\n method: req.method,\n headers,\n body,\n duplex: duplex ? \"half\" : undefined,\n } as RequestInit);\n\n let response: Response;\n try {\n response = await honoApp.fetch(\n buildRequest(requestBody, baseHeaders, useDuplex),\n );\n } catch (error) {\n if (isDisturbedOrLockedError(error) && hasBody) {\n logger.warn(\n \"Encountered disturbed/locked request body; rebuilding request using parsed body or empty payload.\",\n );\n\n const fallbackHeaders = new Headers(baseHeaders);\n let fallbackBody: BodyInit | null | undefined;\n\n if (parsedBody !== undefined) {\n const synthesized = synthesizeBodyFromParsedBody(\n parsedBody,\n fallbackHeaders,\n );\n fallbackBody = synthesized.body ?? undefined;\n fallbackHeaders.delete(\"content-length\");\n\n if (synthesized.contentType) {\n fallbackHeaders.set(\"content-type\", synthesized.contentType);\n }\n } else {\n fallbackBody = undefined;\n }\n\n response = await honoApp.fetch(\n buildRequest(fallbackBody, fallbackHeaders, false),\n );\n } else {\n throw error;\n }\n }\n\n res.statusCode = response.status;\n response.headers.forEach((value, key) => {\n res.setHeader(key, value);\n });\n\n if (response.body) {\n readableStreamToNodeStream(response.body).pipe(res);\n } else {\n res.end();\n }\n };\n\n return function (\n reqOrRequest: IncomingMessage | Request,\n res?: ServerResponse,\n ): Promise<void> | Promise<Response> | Response {\n if (reqOrRequest instanceof Request) {\n return honoApp.fetch(reqOrRequest as Request);\n }\n if (!res) {\n throw new TypeError(\"ServerResponse is required for Node HTTP requests\");\n }\n return handle(reqOrRequest as IncomingMessage, res);\n };\n}\n"],"mappings":";;;;;;;;AAiBA,SAAgB,+BACd,SACA;CACA,MAAM,eAAeA,+BAAgB,QAAQ;AAE7C,kCAAU,oBAAoB,EAC5B,SAAS,EACP,WAAW,aACZ,EACF,CAAC;AAEF,KAAI,QAAQ,YAAY,YACtB,kCAAU,oBAAoB,EAC5B,aAAa,QAAQ,WAAW,aACjC,CAAC;AAGJ,kCAAU,QACR,gCACAC,yDAAgC,QAAQ,CACzC;CAED,MAAM,SAAS,aAAa;AAC5B,QAAO,MAAM,8BAA8B;CAE3C,MAAM,iBAAiB,QAAQ;AAC/B,KAAI,eACF,SAAQ,QAAQ,qBAAqB,eAAe;CAItD,MAAM,wEAA2C;EAC/C,SAAS,QAAQ,QAAQ;EACzB,UAAU,QAAQ,WAAW,QAAQ;EACrC,GAAI,QAAQ,QAAQ,EAAE,MAAM,QAAQ,MAAM;EAC3C,CAAQ;CAET,MAAM,SAAS,eAAe,QAC5B,KACA,KACA;EACA,MAAM,MAAMC,mCAAW,IAAI;EAC3B,MAAM,UAAU,IAAI,WAAW,SAAS,IAAI,WAAW;EAEvD,MAAM,cAAcC,kCAAU,IAAI,QAAQ;EAC1C,MAAM,aAAa,IAAI;EAEvB,MAAM,iBAAiBC,yCAAiB,IAAI,IAAI,eAAe;EAC/D,MAAM,YAAY,WAAW,CAAC;EAE9B,IAAI,cAA2C;EAC/C,IAAI,YAAY;AAEhB,MAAI,WAAW,WAAW;AACxB,iBAAcC,mDAA2B,IAAI;AAC7C,eAAY;;AAGd,MAAI,WAAW,eACb,KAAI,eAAe,QAAW;GAC5B,MAAM,cAAcC,qDAClB,YACA,YACD;AACD,iBAAc,YAAY,QAAQ;AAClC,eAAY,OAAO,iBAAiB;AAEpC,OAAI,YAAY,YACd,aAAY,IAAI,gBAAgB,YAAY,YAAY;AAG1D,UAAO,MACL,6EACD;SACI;AACL,UAAO,KACL,yEACD;AACD,iBAAc;;EAIlB,MAAM,gBACJ,MACA,SACA,WAEA,IAAI,QAAQ,KAAK;GACf,QAAQ,IAAI;GACZ;GACA;GACA,QAAQ,SAAS,SAAS;GAC3B,CAAgB;EAEnB,IAAI;AACJ,MAAI;AACF,cAAW,MAAM,QAAQ,MACvB,aAAa,aAAa,aAAa,UAAU,CAClD;WACM,OAAO;AACd,OAAIC,iDAAyB,MAAM,IAAI,SAAS;AAC9C,WAAO,KACL,oGACD;IAED,MAAM,kBAAkB,IAAI,QAAQ,YAAY;IAChD,IAAI;AAEJ,QAAI,eAAe,QAAW;KAC5B,MAAM,cAAcD,qDAClB,YACA,gBACD;AACD,oBAAe,YAAY,QAAQ;AACnC,qBAAgB,OAAO,iBAAiB;AAExC,SAAI,YAAY,YACd,iBAAgB,IAAI,gBAAgB,YAAY,YAAY;UAG9D,gBAAe;AAGjB,eAAW,MAAM,QAAQ,MACvB,aAAa,cAAc,iBAAiB,MAAM,CACnD;SAED,OAAM;;AAIV,MAAI,aAAa,SAAS;AAC1B,WAAS,QAAQ,SAAS,OAAO,QAAQ;AACvC,OAAI,UAAU,KAAK,MAAM;IACzB;AAEF,MAAI,SAAS,KACX,oDAA2B,SAAS,KAAK,CAAC,KAAK,IAAI;MAEnD,KAAI,KAAK;;AAIb,QAAO,SACL,cACA,KAC8C;AAC9C,MAAI,wBAAwB,QAC1B,QAAO,QAAQ,MAAM,aAAwB;AAE/C,MAAI,CAAC,IACH,OAAM,IAAI,UAAU,oDAAoD;AAE1E,SAAO,OAAO,cAAiC,IAAI"}
@@ -0,0 +1,9 @@
1
+
2
+ import { CreateCopilotRuntimeServerOptions } from "../shared.cjs";
3
+ import { IncomingMessage, ServerResponse } from "node:http";
4
+
5
+ //#region src/lib/integrations/node-http/index.d.ts
6
+ declare function copilotRuntimeNodeHttpEndpoint(options: CreateCopilotRuntimeServerOptions): (reqOrRequest: IncomingMessage | Request, res?: ServerResponse) => Promise<void> | Promise<Response> | Response;
7
+ //#endregion
8
+ export { copilotRuntimeNodeHttpEndpoint };
9
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../../../src/lib/integrations/node-http/index.ts"],"mappings":";;;;;iBAiBgB,8BAAA,CACd,OAAA,EAAS,iCAAA,IA+IP,YAAA,EAAc,eAAA,GAAkB,OAAA,EAChC,GAAA,GAAM,cAAA,KACL,OAAA,SAAgB,OAAA,CAAQ,QAAA,IAAY,QAAA"}
@@ -0,0 +1,9 @@
1
+ import "reflect-metadata";
2
+ import { CreateCopilotRuntimeServerOptions } from "../shared.mjs";
3
+ import { IncomingMessage, ServerResponse } from "node:http";
4
+
5
+ //#region src/lib/integrations/node-http/index.d.ts
6
+ declare function copilotRuntimeNodeHttpEndpoint(options: CreateCopilotRuntimeServerOptions): (reqOrRequest: IncomingMessage | Request, res?: ServerResponse) => Promise<void> | Promise<Response> | Response;
7
+ //#endregion
8
+ export { copilotRuntimeNodeHttpEndpoint };
9
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/lib/integrations/node-http/index.ts"],"mappings":";;;;;iBAiBgB,8BAAA,CACd,OAAA,EAAS,iCAAA,IA+IP,YAAA,EAAc,eAAA,GAAkB,OAAA,EAChC,GAAA,GAAM,cAAA,KACL,OAAA,SAAgB,OAAA,CAAQ,QAAA,IAAY,QAAA"}
@@ -0,0 +1,84 @@
1
+ import "reflect-metadata";
2
+ import telemetryClient, { getRuntimeInstanceTelemetryInfo } from "../../telemetry-client.mjs";
3
+ import { getCommonConfig } from "../shared.mjs";
4
+ import { getFullUrl, isDisturbedOrLockedError, isStreamConsumed, nodeStreamToReadableStream, readableStreamToNodeStream, synthesizeBodyFromParsedBody, toHeaders } from "./request-handler.mjs";
5
+ import { createCopilotEndpointSingleRoute } from "@copilotkitnext/runtime";
6
+
7
+ //#region src/lib/integrations/node-http/index.ts
8
+ function copilotRuntimeNodeHttpEndpoint(options) {
9
+ const commonConfig = getCommonConfig(options);
10
+ telemetryClient.setGlobalProperties({ runtime: { framework: "node-http" } });
11
+ if (options.properties?._copilotkit) telemetryClient.setGlobalProperties({ _copilotkit: options.properties._copilotkit });
12
+ telemetryClient.capture("oss.runtime.instance_created", getRuntimeInstanceTelemetryInfo(options));
13
+ const logger = commonConfig.logging;
14
+ logger.debug("Creating Node HTTP endpoint");
15
+ const serviceAdapter = options.serviceAdapter;
16
+ if (serviceAdapter) options.runtime.handleServiceAdapter(serviceAdapter);
17
+ const honoApp = createCopilotEndpointSingleRoute({
18
+ runtime: options.runtime.instance,
19
+ basePath: options.baseUrl ?? options.endpoint,
20
+ ...options.cors && { cors: options.cors }
21
+ });
22
+ const handle = async function handler(req, res) {
23
+ const url = getFullUrl(req);
24
+ const hasBody = req.method !== "GET" && req.method !== "HEAD";
25
+ const baseHeaders = toHeaders(req.headers);
26
+ const parsedBody = req.body;
27
+ const streamConsumed = isStreamConsumed(req) || parsedBody !== void 0;
28
+ const canStream = hasBody && !streamConsumed;
29
+ let requestBody = void 0;
30
+ let useDuplex = false;
31
+ if (hasBody && canStream) {
32
+ requestBody = nodeStreamToReadableStream(req);
33
+ useDuplex = true;
34
+ }
35
+ if (hasBody && streamConsumed) if (parsedBody !== void 0) {
36
+ const synthesized = synthesizeBodyFromParsedBody(parsedBody, baseHeaders);
37
+ requestBody = synthesized.body ?? void 0;
38
+ baseHeaders.delete("content-length");
39
+ if (synthesized.contentType) baseHeaders.set("content-type", synthesized.contentType);
40
+ logger.debug("Request stream already consumed; using parsed req.body to rebuild request.");
41
+ } else {
42
+ logger.warn("Request stream consumed with no available body; sending empty payload.");
43
+ requestBody = void 0;
44
+ }
45
+ const buildRequest = (body, headers, duplex) => new Request(url, {
46
+ method: req.method,
47
+ headers,
48
+ body,
49
+ duplex: duplex ? "half" : void 0
50
+ });
51
+ let response;
52
+ try {
53
+ response = await honoApp.fetch(buildRequest(requestBody, baseHeaders, useDuplex));
54
+ } catch (error) {
55
+ if (isDisturbedOrLockedError(error) && hasBody) {
56
+ logger.warn("Encountered disturbed/locked request body; rebuilding request using parsed body or empty payload.");
57
+ const fallbackHeaders = new Headers(baseHeaders);
58
+ let fallbackBody;
59
+ if (parsedBody !== void 0) {
60
+ const synthesized = synthesizeBodyFromParsedBody(parsedBody, fallbackHeaders);
61
+ fallbackBody = synthesized.body ?? void 0;
62
+ fallbackHeaders.delete("content-length");
63
+ if (synthesized.contentType) fallbackHeaders.set("content-type", synthesized.contentType);
64
+ } else fallbackBody = void 0;
65
+ response = await honoApp.fetch(buildRequest(fallbackBody, fallbackHeaders, false));
66
+ } else throw error;
67
+ }
68
+ res.statusCode = response.status;
69
+ response.headers.forEach((value, key) => {
70
+ res.setHeader(key, value);
71
+ });
72
+ if (response.body) readableStreamToNodeStream(response.body).pipe(res);
73
+ else res.end();
74
+ };
75
+ return function(reqOrRequest, res) {
76
+ if (reqOrRequest instanceof Request) return honoApp.fetch(reqOrRequest);
77
+ if (!res) throw new TypeError("ServerResponse is required for Node HTTP requests");
78
+ return handle(reqOrRequest, res);
79
+ };
80
+ }
81
+
82
+ //#endregion
83
+ export { copilotRuntimeNodeHttpEndpoint };
84
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/lib/integrations/node-http/index.ts"],"sourcesContent":["import { CreateCopilotRuntimeServerOptions, getCommonConfig } from \"../shared\";\nimport telemetry, {\n getRuntimeInstanceTelemetryInfo,\n} from \"../../telemetry-client\";\nimport { createCopilotEndpointSingleRoute } from \"@copilotkitnext/runtime\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport {\n getFullUrl,\n IncomingWithBody,\n isDisturbedOrLockedError,\n isStreamConsumed,\n nodeStreamToReadableStream,\n readableStreamToNodeStream,\n synthesizeBodyFromParsedBody,\n toHeaders,\n} from \"./request-handler\";\n\nexport function copilotRuntimeNodeHttpEndpoint(\n options: CreateCopilotRuntimeServerOptions,\n) {\n const commonConfig = getCommonConfig(options);\n\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"node-http\",\n },\n });\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: options.properties._copilotkit,\n });\n }\n\n telemetry.capture(\n \"oss.runtime.instance_created\",\n getRuntimeInstanceTelemetryInfo(options),\n );\n\n const logger = commonConfig.logging;\n logger.debug(\"Creating Node HTTP endpoint\");\n\n const serviceAdapter = options.serviceAdapter;\n if (serviceAdapter) {\n options.runtime.handleServiceAdapter(serviceAdapter);\n }\n\n // Note: cors option requires @copilotkitnext/runtime with credentials support\n const honoApp = createCopilotEndpointSingleRoute({\n runtime: options.runtime.instance,\n basePath: options.baseUrl ?? options.endpoint,\n ...(options.cors && { cors: options.cors }),\n } as any);\n\n const handle = async function handler(\n req: IncomingWithBody,\n res: ServerResponse,\n ) {\n const url = getFullUrl(req);\n const hasBody = req.method !== \"GET\" && req.method !== \"HEAD\";\n\n const baseHeaders = toHeaders(req.headers);\n const parsedBody = req.body;\n\n const streamConsumed = isStreamConsumed(req) || parsedBody !== undefined;\n const canStream = hasBody && !streamConsumed;\n\n let requestBody: BodyInit | null | undefined = undefined;\n let useDuplex = false;\n\n if (hasBody && canStream) {\n requestBody = nodeStreamToReadableStream(req);\n useDuplex = true;\n }\n\n if (hasBody && streamConsumed) {\n if (parsedBody !== undefined) {\n const synthesized = synthesizeBodyFromParsedBody(\n parsedBody,\n baseHeaders,\n );\n requestBody = synthesized.body ?? undefined;\n baseHeaders.delete(\"content-length\");\n\n if (synthesized.contentType) {\n baseHeaders.set(\"content-type\", synthesized.contentType);\n }\n\n logger.debug(\n \"Request stream already consumed; using parsed req.body to rebuild request.\",\n );\n } else {\n logger.warn(\n \"Request stream consumed with no available body; sending empty payload.\",\n );\n requestBody = undefined;\n }\n }\n\n const buildRequest = (\n body: BodyInit | null | undefined,\n headers: Headers,\n duplex: boolean,\n ) =>\n new Request(url, {\n method: req.method,\n headers,\n body,\n duplex: duplex ? \"half\" : undefined,\n } as RequestInit);\n\n let response: Response;\n try {\n response = await honoApp.fetch(\n buildRequest(requestBody, baseHeaders, useDuplex),\n );\n } catch (error) {\n if (isDisturbedOrLockedError(error) && hasBody) {\n logger.warn(\n \"Encountered disturbed/locked request body; rebuilding request using parsed body or empty payload.\",\n );\n\n const fallbackHeaders = new Headers(baseHeaders);\n let fallbackBody: BodyInit | null | undefined;\n\n if (parsedBody !== undefined) {\n const synthesized = synthesizeBodyFromParsedBody(\n parsedBody,\n fallbackHeaders,\n );\n fallbackBody = synthesized.body ?? undefined;\n fallbackHeaders.delete(\"content-length\");\n\n if (synthesized.contentType) {\n fallbackHeaders.set(\"content-type\", synthesized.contentType);\n }\n } else {\n fallbackBody = undefined;\n }\n\n response = await honoApp.fetch(\n buildRequest(fallbackBody, fallbackHeaders, false),\n );\n } else {\n throw error;\n }\n }\n\n res.statusCode = response.status;\n response.headers.forEach((value, key) => {\n res.setHeader(key, value);\n });\n\n if (response.body) {\n readableStreamToNodeStream(response.body).pipe(res);\n } else {\n res.end();\n }\n };\n\n return function (\n reqOrRequest: IncomingMessage | Request,\n res?: ServerResponse,\n ): Promise<void> | Promise<Response> | Response {\n if (reqOrRequest instanceof Request) {\n return honoApp.fetch(reqOrRequest as Request);\n }\n if (!res) {\n throw new TypeError(\"ServerResponse is required for Node HTTP requests\");\n }\n return handle(reqOrRequest as IncomingMessage, res);\n };\n}\n"],"mappings":";;;;;;;AAiBA,SAAgB,+BACd,SACA;CACA,MAAM,eAAe,gBAAgB,QAAQ;AAE7C,iBAAU,oBAAoB,EAC5B,SAAS,EACP,WAAW,aACZ,EACF,CAAC;AAEF,KAAI,QAAQ,YAAY,YACtB,iBAAU,oBAAoB,EAC5B,aAAa,QAAQ,WAAW,aACjC,CAAC;AAGJ,iBAAU,QACR,gCACA,gCAAgC,QAAQ,CACzC;CAED,MAAM,SAAS,aAAa;AAC5B,QAAO,MAAM,8BAA8B;CAE3C,MAAM,iBAAiB,QAAQ;AAC/B,KAAI,eACF,SAAQ,QAAQ,qBAAqB,eAAe;CAItD,MAAM,UAAU,iCAAiC;EAC/C,SAAS,QAAQ,QAAQ;EACzB,UAAU,QAAQ,WAAW,QAAQ;EACrC,GAAI,QAAQ,QAAQ,EAAE,MAAM,QAAQ,MAAM;EAC3C,CAAQ;CAET,MAAM,SAAS,eAAe,QAC5B,KACA,KACA;EACA,MAAM,MAAM,WAAW,IAAI;EAC3B,MAAM,UAAU,IAAI,WAAW,SAAS,IAAI,WAAW;EAEvD,MAAM,cAAc,UAAU,IAAI,QAAQ;EAC1C,MAAM,aAAa,IAAI;EAEvB,MAAM,iBAAiB,iBAAiB,IAAI,IAAI,eAAe;EAC/D,MAAM,YAAY,WAAW,CAAC;EAE9B,IAAI,cAA2C;EAC/C,IAAI,YAAY;AAEhB,MAAI,WAAW,WAAW;AACxB,iBAAc,2BAA2B,IAAI;AAC7C,eAAY;;AAGd,MAAI,WAAW,eACb,KAAI,eAAe,QAAW;GAC5B,MAAM,cAAc,6BAClB,YACA,YACD;AACD,iBAAc,YAAY,QAAQ;AAClC,eAAY,OAAO,iBAAiB;AAEpC,OAAI,YAAY,YACd,aAAY,IAAI,gBAAgB,YAAY,YAAY;AAG1D,UAAO,MACL,6EACD;SACI;AACL,UAAO,KACL,yEACD;AACD,iBAAc;;EAIlB,MAAM,gBACJ,MACA,SACA,WAEA,IAAI,QAAQ,KAAK;GACf,QAAQ,IAAI;GACZ;GACA;GACA,QAAQ,SAAS,SAAS;GAC3B,CAAgB;EAEnB,IAAI;AACJ,MAAI;AACF,cAAW,MAAM,QAAQ,MACvB,aAAa,aAAa,aAAa,UAAU,CAClD;WACM,OAAO;AACd,OAAI,yBAAyB,MAAM,IAAI,SAAS;AAC9C,WAAO,KACL,oGACD;IAED,MAAM,kBAAkB,IAAI,QAAQ,YAAY;IAChD,IAAI;AAEJ,QAAI,eAAe,QAAW;KAC5B,MAAM,cAAc,6BAClB,YACA,gBACD;AACD,oBAAe,YAAY,QAAQ;AACnC,qBAAgB,OAAO,iBAAiB;AAExC,SAAI,YAAY,YACd,iBAAgB,IAAI,gBAAgB,YAAY,YAAY;UAG9D,gBAAe;AAGjB,eAAW,MAAM,QAAQ,MACvB,aAAa,cAAc,iBAAiB,MAAM,CACnD;SAED,OAAM;;AAIV,MAAI,aAAa,SAAS;AAC1B,WAAS,QAAQ,SAAS,OAAO,QAAQ;AACvC,OAAI,UAAU,KAAK,MAAM;IACzB;AAEF,MAAI,SAAS,KACX,4BAA2B,SAAS,KAAK,CAAC,KAAK,IAAI;MAEnD,KAAI,KAAK;;AAIb,QAAO,SACL,cACA,KAC8C;AAC9C,MAAI,wBAAwB,QAC1B,QAAO,QAAQ,MAAM,aAAwB;AAE/C,MAAI,CAAC,IACH,OAAM,IAAI,UAAU,oDAAoD;AAE1E,SAAO,OAAO,cAAiC,IAAI"}
@@ -0,0 +1,81 @@
1
+ require("reflect-metadata");
2
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
3
+ let node_stream = require("node:stream");
4
+
5
+ //#region src/lib/integrations/node-http/request-handler.ts
6
+ function readableStreamToNodeStream(webStream) {
7
+ const reader = webStream.getReader();
8
+ return new node_stream.Readable({ async read() {
9
+ try {
10
+ const { done, value } = await reader.read();
11
+ if (done) this.push(null);
12
+ else this.push(Buffer.from(value));
13
+ } catch (err) {
14
+ this.destroy(err);
15
+ }
16
+ } });
17
+ }
18
+ function nodeStreamToReadableStream(nodeStream) {
19
+ return new ReadableStream({
20
+ start(controller) {
21
+ nodeStream.on("data", (chunk) => {
22
+ controller.enqueue(chunk instanceof Buffer ? new Uint8Array(chunk) : chunk);
23
+ });
24
+ nodeStream.on("end", () => {
25
+ controller.close();
26
+ });
27
+ nodeStream.on("error", (err) => {
28
+ controller.error(err);
29
+ });
30
+ },
31
+ cancel() {
32
+ nodeStream.destroy();
33
+ }
34
+ });
35
+ }
36
+ function getFullUrl(req) {
37
+ const path = req.url || "/";
38
+ const host = req.headers["x-forwarded-host"] || req.headers.host || "localhost";
39
+ return `${req.headers["x-forwarded-proto"] || (req.socket.encrypted ? "https" : "http")}://${host}${path}`;
40
+ }
41
+ function toHeaders(rawHeaders) {
42
+ const headers = new Headers();
43
+ for (const [key, value] of Object.entries(rawHeaders)) {
44
+ if (value === void 0) continue;
45
+ if (Array.isArray(value)) {
46
+ value.forEach((entry) => headers.append(key, entry));
47
+ continue;
48
+ }
49
+ headers.append(key, value);
50
+ }
51
+ return headers;
52
+ }
53
+ function isStreamConsumed(req) {
54
+ const readableState = req._readableState;
55
+ return Boolean(req.readableEnded || req.complete || readableState?.ended || readableState?.endEmitted);
56
+ }
57
+ function synthesizeBodyFromParsedBody(parsedBody, headers) {
58
+ if (parsedBody === null || parsedBody === void 0) return { body: null };
59
+ if (parsedBody instanceof Buffer || parsedBody instanceof Uint8Array) return { body: parsedBody };
60
+ if (typeof parsedBody === "string") return {
61
+ body: parsedBody,
62
+ contentType: headers.get("content-type") ?? "text/plain"
63
+ };
64
+ return {
65
+ body: JSON.stringify(parsedBody),
66
+ contentType: "application/json"
67
+ };
68
+ }
69
+ function isDisturbedOrLockedError(error) {
70
+ return error instanceof TypeError && typeof error.message === "string" && (error.message.includes("disturbed") || error.message.includes("locked"));
71
+ }
72
+
73
+ //#endregion
74
+ exports.getFullUrl = getFullUrl;
75
+ exports.isDisturbedOrLockedError = isDisturbedOrLockedError;
76
+ exports.isStreamConsumed = isStreamConsumed;
77
+ exports.nodeStreamToReadableStream = nodeStreamToReadableStream;
78
+ exports.readableStreamToNodeStream = readableStreamToNodeStream;
79
+ exports.synthesizeBodyFromParsedBody = synthesizeBodyFromParsedBody;
80
+ exports.toHeaders = toHeaders;
81
+ //# sourceMappingURL=request-handler.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-handler.cjs","names":["Readable"],"sources":["../../../../src/lib/integrations/node-http/request-handler.ts"],"sourcesContent":["import type { IncomingMessage } from \"http\";\nimport { Readable } from \"node:stream\";\n\nexport type IncomingWithBody = IncomingMessage & {\n body?: unknown;\n complete?: boolean;\n};\n\nexport function readableStreamToNodeStream(\n webStream: ReadableStream,\n): Readable {\n const reader = webStream.getReader();\n\n return new Readable({\n async read() {\n try {\n const { done, value } = await reader.read();\n if (done) {\n this.push(null);\n } else {\n this.push(Buffer.from(value));\n }\n } catch (err) {\n this.destroy(err as Error);\n }\n },\n });\n}\n\nexport function nodeStreamToReadableStream(\n nodeStream: Readable,\n): ReadableStream<Uint8Array> {\n return new ReadableStream({\n start(controller) {\n nodeStream.on(\"data\", (chunk) => {\n controller.enqueue(\n chunk instanceof Buffer ? new Uint8Array(chunk) : chunk,\n );\n });\n nodeStream.on(\"end\", () => {\n controller.close();\n });\n nodeStream.on(\"error\", (err) => {\n controller.error(err);\n });\n },\n cancel() {\n nodeStream.destroy();\n },\n });\n}\n\nexport function getFullUrl(req: IncomingMessage): string {\n // Use req.url (path relative to mount point) for Hono routing to work correctly.\n // Express sets req.url to the path after the mount point (e.g., \"/\" when mounted at \"/copilotkit\").\n // Pure Node HTTP sets req.url to the full path.\n const path = req.url || \"/\";\n const host =\n (req.headers[\"x-forwarded-host\"] as string) ||\n (req.headers.host as string) ||\n \"localhost\";\n const proto =\n (req.headers[\"x-forwarded-proto\"] as string) ||\n ((req.socket as any).encrypted ? \"https\" : \"http\");\n\n return `${proto}://${host}${path}`;\n}\n\nexport function toHeaders(rawHeaders: IncomingMessage[\"headers\"]): Headers {\n const headers = new Headers();\n\n for (const [key, value] of Object.entries(rawHeaders)) {\n if (value === undefined) continue;\n\n if (Array.isArray(value)) {\n value.forEach((entry) => headers.append(key, entry));\n continue;\n }\n\n headers.append(key, value);\n }\n\n return headers;\n}\n\nexport function isStreamConsumed(req: IncomingWithBody): boolean {\n const readableState = (req as any)._readableState;\n\n return Boolean(\n req.readableEnded ||\n req.complete ||\n readableState?.ended ||\n readableState?.endEmitted,\n );\n}\n\nexport function synthesizeBodyFromParsedBody(\n parsedBody: unknown,\n headers: Headers,\n): { body: BodyInit | null; contentType?: string } {\n if (parsedBody === null || parsedBody === undefined) {\n return { body: null };\n }\n\n if (parsedBody instanceof Buffer || parsedBody instanceof Uint8Array) {\n return { body: parsedBody };\n }\n\n if (typeof parsedBody === \"string\") {\n return {\n body: parsedBody,\n contentType: headers.get(\"content-type\") ?? \"text/plain\",\n };\n }\n\n return {\n body: JSON.stringify(parsedBody),\n contentType: \"application/json\",\n };\n}\n\nexport function isDisturbedOrLockedError(error: unknown): boolean {\n return (\n error instanceof TypeError &&\n typeof error.message === \"string\" &&\n (error.message.includes(\"disturbed\") || error.message.includes(\"locked\"))\n );\n}\n"],"mappings":";;;;;AAQA,SAAgB,2BACd,WACU;CACV,MAAM,SAAS,UAAU,WAAW;AAEpC,QAAO,IAAIA,qBAAS,EAClB,MAAM,OAAO;AACX,MAAI;GACF,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAC3C,OAAI,KACF,MAAK,KAAK,KAAK;OAEf,MAAK,KAAK,OAAO,KAAK,MAAM,CAAC;WAExB,KAAK;AACZ,QAAK,QAAQ,IAAa;;IAG/B,CAAC;;AAGJ,SAAgB,2BACd,YAC4B;AAC5B,QAAO,IAAI,eAAe;EACxB,MAAM,YAAY;AAChB,cAAW,GAAG,SAAS,UAAU;AAC/B,eAAW,QACT,iBAAiB,SAAS,IAAI,WAAW,MAAM,GAAG,MACnD;KACD;AACF,cAAW,GAAG,aAAa;AACzB,eAAW,OAAO;KAClB;AACF,cAAW,GAAG,UAAU,QAAQ;AAC9B,eAAW,MAAM,IAAI;KACrB;;EAEJ,SAAS;AACP,cAAW,SAAS;;EAEvB,CAAC;;AAGJ,SAAgB,WAAW,KAA8B;CAIvD,MAAM,OAAO,IAAI,OAAO;CACxB,MAAM,OACH,IAAI,QAAQ,uBACZ,IAAI,QAAQ,QACb;AAKF,QAAO,GAHJ,IAAI,QAAQ,yBACX,IAAI,OAAe,YAAY,UAAU,QAE7B,KAAK,OAAO;;AAG9B,SAAgB,UAAU,YAAiD;CACzE,MAAM,UAAU,IAAI,SAAS;AAE7B,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,WAAW,EAAE;AACrD,MAAI,UAAU,OAAW;AAEzB,MAAI,MAAM,QAAQ,MAAM,EAAE;AACxB,SAAM,SAAS,UAAU,QAAQ,OAAO,KAAK,MAAM,CAAC;AACpD;;AAGF,UAAQ,OAAO,KAAK,MAAM;;AAG5B,QAAO;;AAGT,SAAgB,iBAAiB,KAAgC;CAC/D,MAAM,gBAAiB,IAAY;AAEnC,QAAO,QACL,IAAI,iBACJ,IAAI,YACJ,eAAe,SACf,eAAe,WAChB;;AAGH,SAAgB,6BACd,YACA,SACiD;AACjD,KAAI,eAAe,QAAQ,eAAe,OACxC,QAAO,EAAE,MAAM,MAAM;AAGvB,KAAI,sBAAsB,UAAU,sBAAsB,WACxD,QAAO,EAAE,MAAM,YAAY;AAG7B,KAAI,OAAO,eAAe,SACxB,QAAO;EACL,MAAM;EACN,aAAa,QAAQ,IAAI,eAAe,IAAI;EAC7C;AAGH,QAAO;EACL,MAAM,KAAK,UAAU,WAAW;EAChC,aAAa;EACd;;AAGH,SAAgB,yBAAyB,OAAyB;AAChE,QACE,iBAAiB,aACjB,OAAO,MAAM,YAAY,aACxB,MAAM,QAAQ,SAAS,YAAY,IAAI,MAAM,QAAQ,SAAS,SAAS"}
@@ -0,0 +1,74 @@
1
+ import "reflect-metadata";
2
+ import { Readable } from "node:stream";
3
+
4
+ //#region src/lib/integrations/node-http/request-handler.ts
5
+ function readableStreamToNodeStream(webStream) {
6
+ const reader = webStream.getReader();
7
+ return new Readable({ async read() {
8
+ try {
9
+ const { done, value } = await reader.read();
10
+ if (done) this.push(null);
11
+ else this.push(Buffer.from(value));
12
+ } catch (err) {
13
+ this.destroy(err);
14
+ }
15
+ } });
16
+ }
17
+ function nodeStreamToReadableStream(nodeStream) {
18
+ return new ReadableStream({
19
+ start(controller) {
20
+ nodeStream.on("data", (chunk) => {
21
+ controller.enqueue(chunk instanceof Buffer ? new Uint8Array(chunk) : chunk);
22
+ });
23
+ nodeStream.on("end", () => {
24
+ controller.close();
25
+ });
26
+ nodeStream.on("error", (err) => {
27
+ controller.error(err);
28
+ });
29
+ },
30
+ cancel() {
31
+ nodeStream.destroy();
32
+ }
33
+ });
34
+ }
35
+ function getFullUrl(req) {
36
+ const path = req.url || "/";
37
+ const host = req.headers["x-forwarded-host"] || req.headers.host || "localhost";
38
+ return `${req.headers["x-forwarded-proto"] || (req.socket.encrypted ? "https" : "http")}://${host}${path}`;
39
+ }
40
+ function toHeaders(rawHeaders) {
41
+ const headers = new Headers();
42
+ for (const [key, value] of Object.entries(rawHeaders)) {
43
+ if (value === void 0) continue;
44
+ if (Array.isArray(value)) {
45
+ value.forEach((entry) => headers.append(key, entry));
46
+ continue;
47
+ }
48
+ headers.append(key, value);
49
+ }
50
+ return headers;
51
+ }
52
+ function isStreamConsumed(req) {
53
+ const readableState = req._readableState;
54
+ return Boolean(req.readableEnded || req.complete || readableState?.ended || readableState?.endEmitted);
55
+ }
56
+ function synthesizeBodyFromParsedBody(parsedBody, headers) {
57
+ if (parsedBody === null || parsedBody === void 0) return { body: null };
58
+ if (parsedBody instanceof Buffer || parsedBody instanceof Uint8Array) return { body: parsedBody };
59
+ if (typeof parsedBody === "string") return {
60
+ body: parsedBody,
61
+ contentType: headers.get("content-type") ?? "text/plain"
62
+ };
63
+ return {
64
+ body: JSON.stringify(parsedBody),
65
+ contentType: "application/json"
66
+ };
67
+ }
68
+ function isDisturbedOrLockedError(error) {
69
+ return error instanceof TypeError && typeof error.message === "string" && (error.message.includes("disturbed") || error.message.includes("locked"));
70
+ }
71
+
72
+ //#endregion
73
+ export { getFullUrl, isDisturbedOrLockedError, isStreamConsumed, nodeStreamToReadableStream, readableStreamToNodeStream, synthesizeBodyFromParsedBody, toHeaders };
74
+ //# sourceMappingURL=request-handler.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-handler.mjs","names":[],"sources":["../../../../src/lib/integrations/node-http/request-handler.ts"],"sourcesContent":["import type { IncomingMessage } from \"http\";\nimport { Readable } from \"node:stream\";\n\nexport type IncomingWithBody = IncomingMessage & {\n body?: unknown;\n complete?: boolean;\n};\n\nexport function readableStreamToNodeStream(\n webStream: ReadableStream,\n): Readable {\n const reader = webStream.getReader();\n\n return new Readable({\n async read() {\n try {\n const { done, value } = await reader.read();\n if (done) {\n this.push(null);\n } else {\n this.push(Buffer.from(value));\n }\n } catch (err) {\n this.destroy(err as Error);\n }\n },\n });\n}\n\nexport function nodeStreamToReadableStream(\n nodeStream: Readable,\n): ReadableStream<Uint8Array> {\n return new ReadableStream({\n start(controller) {\n nodeStream.on(\"data\", (chunk) => {\n controller.enqueue(\n chunk instanceof Buffer ? new Uint8Array(chunk) : chunk,\n );\n });\n nodeStream.on(\"end\", () => {\n controller.close();\n });\n nodeStream.on(\"error\", (err) => {\n controller.error(err);\n });\n },\n cancel() {\n nodeStream.destroy();\n },\n });\n}\n\nexport function getFullUrl(req: IncomingMessage): string {\n // Use req.url (path relative to mount point) for Hono routing to work correctly.\n // Express sets req.url to the path after the mount point (e.g., \"/\" when mounted at \"/copilotkit\").\n // Pure Node HTTP sets req.url to the full path.\n const path = req.url || \"/\";\n const host =\n (req.headers[\"x-forwarded-host\"] as string) ||\n (req.headers.host as string) ||\n \"localhost\";\n const proto =\n (req.headers[\"x-forwarded-proto\"] as string) ||\n ((req.socket as any).encrypted ? \"https\" : \"http\");\n\n return `${proto}://${host}${path}`;\n}\n\nexport function toHeaders(rawHeaders: IncomingMessage[\"headers\"]): Headers {\n const headers = new Headers();\n\n for (const [key, value] of Object.entries(rawHeaders)) {\n if (value === undefined) continue;\n\n if (Array.isArray(value)) {\n value.forEach((entry) => headers.append(key, entry));\n continue;\n }\n\n headers.append(key, value);\n }\n\n return headers;\n}\n\nexport function isStreamConsumed(req: IncomingWithBody): boolean {\n const readableState = (req as any)._readableState;\n\n return Boolean(\n req.readableEnded ||\n req.complete ||\n readableState?.ended ||\n readableState?.endEmitted,\n );\n}\n\nexport function synthesizeBodyFromParsedBody(\n parsedBody: unknown,\n headers: Headers,\n): { body: BodyInit | null; contentType?: string } {\n if (parsedBody === null || parsedBody === undefined) {\n return { body: null };\n }\n\n if (parsedBody instanceof Buffer || parsedBody instanceof Uint8Array) {\n return { body: parsedBody };\n }\n\n if (typeof parsedBody === \"string\") {\n return {\n body: parsedBody,\n contentType: headers.get(\"content-type\") ?? \"text/plain\",\n };\n }\n\n return {\n body: JSON.stringify(parsedBody),\n contentType: \"application/json\",\n };\n}\n\nexport function isDisturbedOrLockedError(error: unknown): boolean {\n return (\n error instanceof TypeError &&\n typeof error.message === \"string\" &&\n (error.message.includes(\"disturbed\") || error.message.includes(\"locked\"))\n );\n}\n"],"mappings":";;;;AAQA,SAAgB,2BACd,WACU;CACV,MAAM,SAAS,UAAU,WAAW;AAEpC,QAAO,IAAI,SAAS,EAClB,MAAM,OAAO;AACX,MAAI;GACF,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAC3C,OAAI,KACF,MAAK,KAAK,KAAK;OAEf,MAAK,KAAK,OAAO,KAAK,MAAM,CAAC;WAExB,KAAK;AACZ,QAAK,QAAQ,IAAa;;IAG/B,CAAC;;AAGJ,SAAgB,2BACd,YAC4B;AAC5B,QAAO,IAAI,eAAe;EACxB,MAAM,YAAY;AAChB,cAAW,GAAG,SAAS,UAAU;AAC/B,eAAW,QACT,iBAAiB,SAAS,IAAI,WAAW,MAAM,GAAG,MACnD;KACD;AACF,cAAW,GAAG,aAAa;AACzB,eAAW,OAAO;KAClB;AACF,cAAW,GAAG,UAAU,QAAQ;AAC9B,eAAW,MAAM,IAAI;KACrB;;EAEJ,SAAS;AACP,cAAW,SAAS;;EAEvB,CAAC;;AAGJ,SAAgB,WAAW,KAA8B;CAIvD,MAAM,OAAO,IAAI,OAAO;CACxB,MAAM,OACH,IAAI,QAAQ,uBACZ,IAAI,QAAQ,QACb;AAKF,QAAO,GAHJ,IAAI,QAAQ,yBACX,IAAI,OAAe,YAAY,UAAU,QAE7B,KAAK,OAAO;;AAG9B,SAAgB,UAAU,YAAiD;CACzE,MAAM,UAAU,IAAI,SAAS;AAE7B,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,WAAW,EAAE;AACrD,MAAI,UAAU,OAAW;AAEzB,MAAI,MAAM,QAAQ,MAAM,EAAE;AACxB,SAAM,SAAS,UAAU,QAAQ,OAAO,KAAK,MAAM,CAAC;AACpD;;AAGF,UAAQ,OAAO,KAAK,MAAM;;AAG5B,QAAO;;AAGT,SAAgB,iBAAiB,KAAgC;CAC/D,MAAM,gBAAiB,IAAY;AAEnC,QAAO,QACL,IAAI,iBACJ,IAAI,YACJ,eAAe,SACf,eAAe,WAChB;;AAGH,SAAgB,6BACd,YACA,SACiD;AACjD,KAAI,eAAe,QAAQ,eAAe,OACxC,QAAO,EAAE,MAAM,MAAM;AAGvB,KAAI,sBAAsB,UAAU,sBAAsB,WACxD,QAAO,EAAE,MAAM,YAAY;AAG7B,KAAI,OAAO,eAAe,SACxB,QAAO;EACL,MAAM;EACN,aAAa,QAAQ,IAAI,eAAe,IAAI;EAC7C;AAGH,QAAO;EACL,MAAM,KAAK,UAAU,WAAW;EAChC,aAAa;EACd;;AAGH,SAAgB,yBAAyB,OAAyB;AAChE,QACE,iBAAiB,aACjB,OAAO,MAAM,YAAY,aACxB,MAAM,QAAQ,SAAS,YAAY,IAAI,MAAM,QAAQ,SAAS,SAAS"}