@copilotkit/runtime 1.57.3 → 1.58.0-canary.thread-id-propagation

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 (346) hide show
  1. package/dist/lib/observability.d.cts +1 -1
  2. package/dist/lib/observability.d.cts.map +1 -1
  3. package/dist/lib/observability.d.mts +1 -1
  4. package/dist/lib/observability.d.mts.map +1 -1
  5. package/dist/lib/runtime/copilot-runtime.cjs +2 -0
  6. package/dist/lib/runtime/copilot-runtime.cjs.map +1 -1
  7. package/dist/lib/runtime/copilot-runtime.d.cts.map +1 -1
  8. package/dist/lib/runtime/copilot-runtime.d.mts.map +1 -1
  9. package/dist/lib/runtime/copilot-runtime.mjs +2 -0
  10. package/dist/lib/runtime/copilot-runtime.mjs.map +1 -1
  11. package/dist/package.cjs +5 -8
  12. package/dist/package.mjs +5 -8
  13. package/dist/v2/runtime/core/runtime.cjs +4 -1
  14. package/dist/v2/runtime/core/runtime.cjs.map +1 -1
  15. package/dist/v2/runtime/core/runtime.d.cts.map +1 -1
  16. package/dist/v2/runtime/core/runtime.d.mts.map +1 -1
  17. package/dist/v2/runtime/core/runtime.mjs +4 -1
  18. package/dist/v2/runtime/core/runtime.mjs.map +1 -1
  19. package/dist/v2/runtime/handlers/get-runtime-info.cjs +1 -1
  20. package/dist/v2/runtime/handlers/get-runtime-info.mjs +1 -1
  21. package/dist/v2/runtime/handlers/handle-connect.cjs +1 -1
  22. package/dist/v2/runtime/handlers/handle-connect.mjs +1 -1
  23. package/dist/v2/runtime/handlers/handle-run.cjs +1 -1
  24. package/dist/v2/runtime/handlers/handle-run.mjs +1 -1
  25. package/dist/v2/runtime/handlers/shared/agent-utils.cjs +1 -1
  26. package/dist/v2/runtime/handlers/shared/agent-utils.cjs.map +1 -1
  27. package/dist/v2/runtime/handlers/shared/agent-utils.mjs +1 -1
  28. package/dist/v2/runtime/handlers/shared/agent-utils.mjs.map +1 -1
  29. package/dist/v2/runtime/telemetry/telemetry-client.cjs +22 -6
  30. package/dist/v2/runtime/telemetry/telemetry-client.cjs.map +1 -1
  31. package/dist/v2/runtime/telemetry/telemetry-client.mjs +27 -11
  32. package/dist/v2/runtime/telemetry/telemetry-client.mjs.map +1 -1
  33. package/package.json +9 -19
  34. package/skills/runtime/SKILL.md +98 -0
  35. package/skills/runtime/references/agent-runners-custom.md +161 -0
  36. package/skills/runtime/references/agent-runners-in-memory.md +64 -0
  37. package/skills/runtime/references/agent-runners-sqlite.md +90 -0
  38. package/skills/runtime/references/agent-runners.md +304 -0
  39. package/skills/runtime/references/built-in-agent-factory-modes.md +232 -0
  40. package/skills/runtime/references/built-in-agent-helper-utilities.md +123 -0
  41. package/skills/runtime/references/built-in-agent-model-identifiers.md +59 -0
  42. package/skills/runtime/references/built-in-agent.md +523 -0
  43. package/skills/runtime/references/intelligence-mode.md +336 -0
  44. package/skills/runtime/references/middleware.md +376 -0
  45. package/skills/runtime/references/server-side-tools.md +414 -0
  46. package/skills/runtime/references/setup-endpoint.md +503 -0
  47. package/skills/runtime/references/transcription.md +287 -0
  48. package/skills/runtime/references/wiring-a2a.md +40 -0
  49. package/skills/runtime/references/wiring-adk.md +45 -0
  50. package/skills/runtime/references/wiring-ag2.md +41 -0
  51. package/skills/runtime/references/wiring-agno.md +39 -0
  52. package/skills/runtime/references/wiring-aws-strands.md +59 -0
  53. package/skills/runtime/references/wiring-crewai-crews.md +51 -0
  54. package/skills/runtime/references/wiring-crewai-flows.md +45 -0
  55. package/skills/runtime/references/wiring-external-agents.md +348 -0
  56. package/skills/runtime/references/wiring-langgraph.md +50 -0
  57. package/skills/runtime/references/wiring-llamaindex.md +39 -0
  58. package/skills/runtime/references/wiring-mastra.md +70 -0
  59. package/skills/runtime/references/wiring-mcp-apps-middleware.md +68 -0
  60. package/skills/runtime/references/wiring-ms-agent-framework.md +41 -0
  61. package/skills/runtime/references/wiring-pydantic-ai.md +45 -0
  62. package/CHANGELOG.md +0 -3624
  63. package/__snapshots__/schema/schema.graphql +0 -371
  64. package/dist/v2/runtime/telemetry/scarf-client.cjs +0 -32
  65. package/dist/v2/runtime/telemetry/scarf-client.cjs.map +0 -1
  66. package/dist/v2/runtime/telemetry/scarf-client.mjs +0 -32
  67. package/dist/v2/runtime/telemetry/scarf-client.mjs.map +0 -1
  68. package/scripts/generate-gql-schema.ts +0 -16
  69. package/src/agent/__tests__/agent-test-helpers.ts +0 -476
  70. package/src/agent/__tests__/agent.test.ts +0 -593
  71. package/src/agent/__tests__/ai-sdk-v6-compat.test.ts +0 -116
  72. package/src/agent/__tests__/basic-agent.test.ts +0 -1698
  73. package/src/agent/__tests__/capabilities.test.ts +0 -81
  74. package/src/agent/__tests__/config-tools-execution.test.ts +0 -516
  75. package/src/agent/__tests__/converter-aisdk.test.ts +0 -692
  76. package/src/agent/__tests__/converter-custom.test.ts +0 -319
  77. package/src/agent/__tests__/converter-tanstack-input.test.ts +0 -211
  78. package/src/agent/__tests__/converter-tanstack.test.ts +0 -594
  79. package/src/agent/__tests__/mcp-clients.test.ts +0 -246
  80. package/src/agent/__tests__/mcp-servers-integration.test.ts +0 -373
  81. package/src/agent/__tests__/multimodal-tanstack.test.ts +0 -284
  82. package/src/agent/__tests__/multimodal.test.ts +0 -176
  83. package/src/agent/__tests__/property-overrides.test.ts +0 -598
  84. package/src/agent/__tests__/provider-id-collision.test.ts +0 -195
  85. package/src/agent/__tests__/standard-schema-tools.test.ts +0 -313
  86. package/src/agent/__tests__/standard-schema-types.test.ts +0 -158
  87. package/src/agent/__tests__/state-tools.test.ts +0 -436
  88. package/src/agent/__tests__/test-helpers.ts +0 -197
  89. package/src/agent/__tests__/utils.test.ts +0 -536
  90. package/src/agent/__tests__/zod-regression.test.ts +0 -350
  91. package/src/agent/converters/aisdk.ts +0 -326
  92. package/src/agent/converters/index.ts +0 -7
  93. package/src/agent/converters/tanstack.ts +0 -451
  94. package/src/agent/index.ts +0 -1743
  95. package/src/agents/langgraph/__tests__/event-source.test.ts +0 -256
  96. package/src/agents/langgraph/event-source.ts +0 -365
  97. package/src/agents/langgraph/events.ts +0 -394
  98. package/src/graphql/inputs/action.input.ts +0 -16
  99. package/src/graphql/inputs/agent-session.input.ts +0 -13
  100. package/src/graphql/inputs/agent-state.input.ts +0 -13
  101. package/src/graphql/inputs/cloud-guardrails.input.ts +0 -16
  102. package/src/graphql/inputs/cloud.input.ts +0 -8
  103. package/src/graphql/inputs/context-property.input.ts +0 -10
  104. package/src/graphql/inputs/copilot-context.input.ts +0 -10
  105. package/src/graphql/inputs/custom-property.input.ts +0 -15
  106. package/src/graphql/inputs/extensions.input.ts +0 -21
  107. package/src/graphql/inputs/forwarded-parameters.input.ts +0 -22
  108. package/src/graphql/inputs/frontend.input.ts +0 -14
  109. package/src/graphql/inputs/generate-copilot-response.input.ts +0 -59
  110. package/src/graphql/inputs/load-agent-state.input.ts +0 -10
  111. package/src/graphql/inputs/message.input.ts +0 -110
  112. package/src/graphql/inputs/meta-event.input.ts +0 -18
  113. package/src/graphql/message-conversion/agui-to-gql.test.ts +0 -1384
  114. package/src/graphql/message-conversion/agui-to-gql.ts +0 -384
  115. package/src/graphql/message-conversion/gql-to-agui.test.ts +0 -1653
  116. package/src/graphql/message-conversion/gql-to-agui.ts +0 -297
  117. package/src/graphql/message-conversion/index.ts +0 -2
  118. package/src/graphql/message-conversion/roundtrip-conversion.test.ts +0 -561
  119. package/src/graphql/resolvers/__tests__/resolve-message-id.test.ts +0 -25
  120. package/src/graphql/resolvers/copilot.resolver.ts +0 -785
  121. package/src/graphql/resolvers/resolve-message-id.ts +0 -14
  122. package/src/graphql/resolvers/state.resolver.ts +0 -30
  123. package/src/graphql/types/agents-response.type.ts +0 -19
  124. package/src/graphql/types/base/index.ts +0 -10
  125. package/src/graphql/types/converted/index.ts +0 -183
  126. package/src/graphql/types/copilot-response.type.ts +0 -141
  127. package/src/graphql/types/enums.ts +0 -38
  128. package/src/graphql/types/extensions-response.type.ts +0 -23
  129. package/src/graphql/types/guardrails-result.type.ts +0 -20
  130. package/src/graphql/types/load-agent-state-response.type.ts +0 -17
  131. package/src/graphql/types/message-status.type.ts +0 -48
  132. package/src/graphql/types/meta-events.type.ts +0 -78
  133. package/src/graphql/types/response-status.type.ts +0 -77
  134. package/src/index.ts +0 -3
  135. package/src/langgraph.ts +0 -1
  136. package/src/lib/__tests__/telemetry-disclosure.test.ts +0 -55
  137. package/src/lib/cloud/index.ts +0 -4
  138. package/src/lib/error-messages.ts +0 -211
  139. package/src/lib/index.ts +0 -52
  140. package/src/lib/integrations/index.ts +0 -6
  141. package/src/lib/integrations/nest/index.ts +0 -21
  142. package/src/lib/integrations/nextjs/app-router.ts +0 -47
  143. package/src/lib/integrations/nextjs/pages-router.ts +0 -45
  144. package/src/lib/integrations/node-express/index.ts +0 -21
  145. package/src/lib/integrations/node-http/__tests__/request-duck-type.test.ts +0 -66
  146. package/src/lib/integrations/node-http/index.ts +0 -187
  147. package/src/lib/integrations/node-http/request-handler.ts +0 -128
  148. package/src/lib/integrations/shared.ts +0 -112
  149. package/src/lib/logger.ts +0 -31
  150. package/src/lib/observability.ts +0 -167
  151. package/src/lib/runtime/__tests__/copilot-runtime-error.test.ts +0 -183
  152. package/src/lib/runtime/__tests__/handle-service-adapter.test.ts +0 -108
  153. package/src/lib/runtime/__tests__/mcp-tools-utils.test.ts +0 -499
  154. package/src/lib/runtime/__tests__/on-after-request.test.ts +0 -122
  155. package/src/lib/runtime/__tests__/retry-utils.test.ts +0 -137
  156. package/src/lib/runtime/__tests__/v1-agent-factory.test.ts +0 -109
  157. package/src/lib/runtime/agent-integrations/langgraph/__tests__/dispatch-event-filtering.test.ts +0 -345
  158. package/src/lib/runtime/agent-integrations/langgraph/__tests__/run-message-filtering.test.ts +0 -156
  159. package/src/lib/runtime/agent-integrations/langgraph/agent.ts +0 -263
  160. package/src/lib/runtime/agent-integrations/langgraph/consts.ts +0 -37
  161. package/src/lib/runtime/agent-integrations/langgraph/index.ts +0 -2
  162. package/src/lib/runtime/copilot-runtime.ts +0 -863
  163. package/src/lib/runtime/mcp-tools-utils.ts +0 -313
  164. package/src/lib/runtime/retry-utils.ts +0 -141
  165. package/src/lib/runtime/telemetry-agent-runner.ts +0 -151
  166. package/src/lib/runtime/types.ts +0 -48
  167. package/src/lib/runtime/utils.ts +0 -93
  168. package/src/lib/streaming.ts +0 -220
  169. package/src/lib/telemetry-client.ts +0 -66
  170. package/src/lib/telemetry-disclosure.ts +0 -53
  171. package/src/service-adapters/anthropic/anthropic-adapter.ts +0 -532
  172. package/src/service-adapters/anthropic/utils.ts +0 -219
  173. package/src/service-adapters/bedrock/bedrock-adapter.ts +0 -73
  174. package/src/service-adapters/conversion.test.ts +0 -56
  175. package/src/service-adapters/conversion.ts +0 -69
  176. package/src/service-adapters/empty/empty-adapter.ts +0 -38
  177. package/src/service-adapters/events.ts +0 -337
  178. package/src/service-adapters/experimental/ollama/ollama-adapter.ts +0 -84
  179. package/src/service-adapters/google/google-genai-adapter.test.ts +0 -151
  180. package/src/service-adapters/google/google-genai-adapter.ts +0 -95
  181. package/src/service-adapters/groq/groq-adapter.ts +0 -229
  182. package/src/service-adapters/index.ts +0 -18
  183. package/src/service-adapters/langchain/langchain-adapter.ts +0 -113
  184. package/src/service-adapters/langchain/langserve.ts +0 -88
  185. package/src/service-adapters/langchain/types.ts +0 -20
  186. package/src/service-adapters/langchain/utils.ts +0 -330
  187. package/src/service-adapters/openai/__tests__/openai-v5-compat.test.ts +0 -177
  188. package/src/service-adapters/openai/openai-adapter.ts +0 -324
  189. package/src/service-adapters/openai/openai-assistant-adapter.ts +0 -385
  190. package/src/service-adapters/openai/utils.ts +0 -305
  191. package/src/service-adapters/service-adapter.ts +0 -50
  192. package/src/service-adapters/shared/error-utils.ts +0 -64
  193. package/src/service-adapters/shared/index.ts +0 -2
  194. package/src/service-adapters/shared/sdk-client-utils.ts +0 -19
  195. package/src/service-adapters/unify/unify-adapter.ts +0 -165
  196. package/src/utils/failed-response-status-reasons.ts +0 -70
  197. package/src/utils/index.ts +0 -1
  198. package/src/v2/express.ts +0 -1
  199. package/src/v2/hono.ts +0 -1
  200. package/src/v2/index.ts +0 -5
  201. package/src/v2/node.ts +0 -1
  202. package/src/v2/runtime/__tests__/agents-factory.test.ts +0 -136
  203. package/src/v2/runtime/__tests__/backward-compat.test.ts +0 -261
  204. package/src/v2/runtime/__tests__/code-review-fixes.test.ts +0 -500
  205. package/src/v2/runtime/__tests__/cors-credentials.test.ts +0 -320
  206. package/src/v2/runtime/__tests__/debug-sse-response.test.ts +0 -302
  207. package/src/v2/runtime/__tests__/express-adapter.test.ts +0 -188
  208. package/src/v2/runtime/__tests__/express-body-order.test.ts +0 -76
  209. package/src/v2/runtime/__tests__/express-fetch-bridge.test.ts +0 -344
  210. package/src/v2/runtime/__tests__/express-single-sse.test.ts +0 -122
  211. package/src/v2/runtime/__tests__/express-single-telemetry.integration.test.ts +0 -65
  212. package/src/v2/runtime/__tests__/express-telemetry.integration.test.ts +0 -101
  213. package/src/v2/runtime/__tests__/fetch-cors.test.ts +0 -205
  214. package/src/v2/runtime/__tests__/fetch-handler-validation.test.ts +0 -440
  215. package/src/v2/runtime/__tests__/fetch-handler.test.ts +0 -456
  216. package/src/v2/runtime/__tests__/fetch-router.test.ts +0 -276
  217. package/src/v2/runtime/__tests__/get-runtime-info.test.ts +0 -335
  218. package/src/v2/runtime/__tests__/handle-connect.test.ts +0 -585
  219. package/src/v2/runtime/__tests__/handle-run.test.ts +0 -1388
  220. package/src/v2/runtime/__tests__/handle-threads.test.ts +0 -930
  221. package/src/v2/runtime/__tests__/handle-transcribe.test.ts +0 -301
  222. package/src/v2/runtime/__tests__/header-utils.test.ts +0 -88
  223. package/src/v2/runtime/__tests__/hono-adapter.test.ts +0 -150
  224. package/src/v2/runtime/__tests__/hono-single-telemetry.integration.test.ts +0 -46
  225. package/src/v2/runtime/__tests__/hono-telemetry.integration.test.ts +0 -99
  226. package/src/v2/runtime/__tests__/hooks-edge-cases.test.ts +0 -457
  227. package/src/v2/runtime/__tests__/hooks.test.ts +0 -557
  228. package/src/v2/runtime/__tests__/in-process-agent-runner-messages.test.ts +0 -230
  229. package/src/v2/runtime/__tests__/in-process-agent-runner.test.ts +0 -1030
  230. package/src/v2/runtime/__tests__/integration/bun/bun-servers.integration.test.ts +0 -27
  231. package/src/v2/runtime/__tests__/integration/bun/elysia-multi.ts +0 -32
  232. package/src/v2/runtime/__tests__/integration/bun/elysia-single.ts +0 -33
  233. package/src/v2/runtime/__tests__/integration/bun/hono-bun-multi.ts +0 -25
  234. package/src/v2/runtime/__tests__/integration/bun/hono-bun-single.ts +0 -32
  235. package/src/v2/runtime/__tests__/integration/helpers/create-test-runtime.ts +0 -15
  236. package/src/v2/runtime/__tests__/integration/helpers/sse-reader.ts +0 -45
  237. package/src/v2/runtime/__tests__/integration/helpers/test-agent.ts +0 -58
  238. package/src/v2/runtime/__tests__/integration/node-servers.integration.test.ts +0 -58
  239. package/src/v2/runtime/__tests__/integration/servers/express-multi.ts +0 -35
  240. package/src/v2/runtime/__tests__/integration/servers/express-single.ts +0 -36
  241. package/src/v2/runtime/__tests__/integration/servers/fetch-direct.ts +0 -39
  242. package/src/v2/runtime/__tests__/integration/servers/hono-multi.ts +0 -30
  243. package/src/v2/runtime/__tests__/integration/servers/hono-single.ts +0 -37
  244. package/src/v2/runtime/__tests__/integration/servers/node-multi.ts +0 -45
  245. package/src/v2/runtime/__tests__/integration/servers/node-single.ts +0 -46
  246. package/src/v2/runtime/__tests__/integration/servers/types.ts +0 -18
  247. package/src/v2/runtime/__tests__/integration/suites/debug-events.suite.ts +0 -253
  248. package/src/v2/runtime/__tests__/integration/suites/multi-endpoint.suite.ts +0 -358
  249. package/src/v2/runtime/__tests__/integration/suites/single-endpoint.suite.ts +0 -363
  250. package/src/v2/runtime/__tests__/intelligence-run-telemetry.test.ts +0 -194
  251. package/src/v2/runtime/__tests__/mcp-apps-middleware-integration.test.ts +0 -275
  252. package/src/v2/runtime/__tests__/middleware-express.test.ts +0 -208
  253. package/src/v2/runtime/__tests__/middleware-single-express.test.ts +0 -213
  254. package/src/v2/runtime/__tests__/middleware-single.test.ts +0 -225
  255. package/src/v2/runtime/__tests__/middleware-sse-parser.test.ts +0 -237
  256. package/src/v2/runtime/__tests__/middleware.test.ts +0 -250
  257. package/src/v2/runtime/__tests__/node-fetch-handler.test.ts +0 -157
  258. package/src/v2/runtime/__tests__/open-generative-ui-middleware.e2e.test.ts +0 -728
  259. package/src/v2/runtime/__tests__/router-edge-cases.test.ts +0 -217
  260. package/src/v2/runtime/__tests__/routing-express.test.ts +0 -174
  261. package/src/v2/runtime/__tests__/routing-single-express.test.ts +0 -168
  262. package/src/v2/runtime/__tests__/routing-single.test.ts +0 -193
  263. package/src/v2/runtime/__tests__/routing.test.ts +0 -257
  264. package/src/v2/runtime/__tests__/runtime.test.ts +0 -234
  265. package/src/v2/runtime/__tests__/sse-response-telemetry.test.ts +0 -108
  266. package/src/v2/runtime/__tests__/telemetry.test.ts +0 -167
  267. package/src/v2/runtime/__tests__/thread-names.test.ts +0 -188
  268. package/src/v2/runtime/core/__tests__/debug-event-bus.test.ts +0 -156
  269. package/src/v2/runtime/core/debug-event-bus.ts +0 -45
  270. package/src/v2/runtime/core/fetch-cors.ts +0 -136
  271. package/src/v2/runtime/core/fetch-handler.ts +0 -492
  272. package/src/v2/runtime/core/fetch-router.ts +0 -203
  273. package/src/v2/runtime/core/hooks.ts +0 -160
  274. package/src/v2/runtime/core/middleware-sse-parser.ts +0 -210
  275. package/src/v2/runtime/core/middleware.ts +0 -115
  276. package/src/v2/runtime/core/runtime.ts +0 -432
  277. package/src/v2/runtime/endpoints/express-fetch-bridge.ts +0 -137
  278. package/src/v2/runtime/endpoints/express-single.ts +0 -54
  279. package/src/v2/runtime/endpoints/express.ts +0 -179
  280. package/src/v2/runtime/endpoints/hono-single.ts +0 -60
  281. package/src/v2/runtime/endpoints/hono.ts +0 -89
  282. package/src/v2/runtime/endpoints/index.ts +0 -4
  283. package/src/v2/runtime/endpoints/node-fetch-handler.ts +0 -48
  284. package/src/v2/runtime/endpoints/node.ts +0 -28
  285. package/src/v2/runtime/endpoints/single-route-helpers.ts +0 -125
  286. package/src/v2/runtime/express.ts +0 -2
  287. package/src/v2/runtime/handlers/__tests__/handle-debug-events.test.ts +0 -176
  288. package/src/v2/runtime/handlers/get-runtime-info.ts +0 -101
  289. package/src/v2/runtime/handlers/handle-connect.ts +0 -80
  290. package/src/v2/runtime/handlers/handle-debug-events.ts +0 -52
  291. package/src/v2/runtime/handlers/handle-run.ts +0 -111
  292. package/src/v2/runtime/handlers/handle-stop.ts +0 -77
  293. package/src/v2/runtime/handlers/handle-threads.ts +0 -11
  294. package/src/v2/runtime/handlers/handle-transcribe.ts +0 -269
  295. package/src/v2/runtime/handlers/header-utils.ts +0 -24
  296. package/src/v2/runtime/handlers/intelligence/connect.ts +0 -102
  297. package/src/v2/runtime/handlers/intelligence/run.ts +0 -351
  298. package/src/v2/runtime/handlers/intelligence/thread-names.ts +0 -246
  299. package/src/v2/runtime/handlers/intelligence/threads.ts +0 -420
  300. package/src/v2/runtime/handlers/shared/agent-utils.ts +0 -154
  301. package/src/v2/runtime/handlers/shared/intelligence-utils.ts +0 -41
  302. package/src/v2/runtime/handlers/shared/json-response.ts +0 -9
  303. package/src/v2/runtime/handlers/shared/resolve-intelligence-user.ts +0 -28
  304. package/src/v2/runtime/handlers/shared/sse-response.ts +0 -215
  305. package/src/v2/runtime/handlers/sse/__tests__/sse-connect-agent-id.test.ts +0 -71
  306. package/src/v2/runtime/handlers/sse/connect.ts +0 -30
  307. package/src/v2/runtime/handlers/sse/run.ts +0 -40
  308. package/src/v2/runtime/hono.ts +0 -2
  309. package/src/v2/runtime/index.ts +0 -51
  310. package/src/v2/runtime/intelligence-platform/__tests__/client.test.ts +0 -601
  311. package/src/v2/runtime/intelligence-platform/__tests__/intelligence-mcp-helper.test.ts +0 -246
  312. package/src/v2/runtime/intelligence-platform/client.ts +0 -818
  313. package/src/v2/runtime/intelligence-platform/index.ts +0 -10
  314. package/src/v2/runtime/node.ts +0 -6
  315. package/src/v2/runtime/open-generative-ui-middleware.ts +0 -373
  316. package/src/v2/runtime/runner/__tests__/finalize-events.test.ts +0 -109
  317. package/src/v2/runtime/runner/__tests__/in-memory-runner.e2e.test.ts +0 -775
  318. package/src/v2/runtime/runner/__tests__/in-memory-runner.test.ts +0 -777
  319. package/src/v2/runtime/runner/__tests__/intelligence-runner.test.ts +0 -1039
  320. package/src/v2/runtime/runner/agent-runner.ts +0 -35
  321. package/src/v2/runtime/runner/in-memory.ts +0 -467
  322. package/src/v2/runtime/runner/index.ts +0 -4
  323. package/src/v2/runtime/runner/intelligence.ts +0 -498
  324. package/src/v2/runtime/telemetry/__tests__/instance-created.test.ts +0 -96
  325. package/src/v2/runtime/telemetry/events.ts +0 -35
  326. package/src/v2/runtime/telemetry/index.ts +0 -7
  327. package/src/v2/runtime/telemetry/instance-created.ts +0 -44
  328. package/src/v2/runtime/telemetry/scarf-client.ts +0 -39
  329. package/src/v2/runtime/telemetry/telemetry-client.ts +0 -70
  330. package/src/v2/runtime/transcription-service/transcription-service.ts +0 -11
  331. package/tests/global.d.ts +0 -1
  332. package/tests/service-adapters/anthropic/allowlist-approach.test.ts +0 -259
  333. package/tests/service-adapters/anthropic/anthropic-adapter-language-model.test.ts +0 -101
  334. package/tests/service-adapters/anthropic/anthropic-adapter.test.ts +0 -645
  335. package/tests/service-adapters/anthropic/utils-token-trimming.test.ts +0 -301
  336. package/tests/service-adapters/groq/groq-adapter-language-model.test.ts +0 -102
  337. package/tests/service-adapters/openai/allowlist-approach.test.ts +0 -294
  338. package/tests/service-adapters/openai/openai-adapter-language-model.test.ts +0 -122
  339. package/tests/service-adapters/openai/openai-adapter.test.ts +0 -291
  340. package/tests/service-adapters/shared/sdk-client-utils.test.ts +0 -36
  341. package/tests/setup.vitest.ts +0 -8
  342. package/tests/tsconfig.json +0 -10
  343. package/tsconfig.json +0 -20
  344. package/tsdown.config.ts +0 -45
  345. package/typedoc.json +0 -4
  346. package/vitest.config.mjs +0 -13
@@ -0,0 +1,59 @@
1
+ BuiltInAgent model identifiers — the full set of `"provider/model"` strings that
2
+ `resolveModel` accepts out of the box.
3
+
4
+ ## Shape
5
+
6
+ `"provider/model"` or `"provider:model"` — both separators are normalized. Case-insensitive on the provider segment.
7
+
8
+ ```typescript
9
+ new BuiltInAgent({ model: "openai/gpt-4o" });
10
+ new BuiltInAgent({ model: "anthropic:claude-sonnet-4.5" });
11
+ ```
12
+
13
+ ## Supported providers
14
+
15
+ | Provider | Env var | Notes |
16
+ | ------------------------------------- | ------------------- | ---------------------------------- |
17
+ | `openai` | `OPENAI_API_KEY` | Lazily creates `@ai-sdk/openai` |
18
+ | `anthropic` | `ANTHROPIC_API_KEY` | Lazily creates `@ai-sdk/anthropic` |
19
+ | `google` / `gemini` / `google-gemini` | `GOOGLE_API_KEY` | `@ai-sdk/google` under the hood |
20
+ | `vertex` | (GCP auth) | `@ai-sdk/google-vertex` |
21
+
22
+ Pass `apiKey` on the constructor to override env vars.
23
+
24
+ ## Pinned identifiers in the union type
25
+
26
+ These are the concrete strings typed in `BuiltInAgentModel`:
27
+
28
+ ```
29
+ openai/gpt-5 openai/gpt-5-mini
30
+ openai/gpt-4.1 openai/gpt-4.1-mini openai/gpt-4.1-nano
31
+ openai/gpt-4o openai/gpt-4o-mini
32
+ openai/o3 openai/o3-mini openai/o4-mini
33
+
34
+ anthropic/claude-sonnet-4.5 anthropic/claude-sonnet-4
35
+ anthropic/claude-3.7-sonnet anthropic/claude-opus-4.1
36
+ anthropic/claude-opus-4 anthropic/claude-3.5-haiku
37
+
38
+ google/gemini-2.5-pro google/gemini-2.5-flash google/gemini-2.5-flash-lite
39
+ ```
40
+
41
+ Any other valid model id is still accepted — the type is
42
+ `BuiltInAgentModel = "openai/gpt-5" | ... | (string & {})`, and the AI SDK provider will
43
+ accept any id it knows about. The pinned union is for autocomplete, not an exhaustive allowlist.
44
+
45
+ ## Passing a LanguageModel instance directly
46
+
47
+ Instead of a string, pass a pre-configured `LanguageModel`:
48
+
49
+ ```typescript
50
+ import { BuiltInAgent } from "@copilotkit/runtime/v2";
51
+ import { createOpenAI } from "@ai-sdk/openai";
52
+
53
+ const openai = createOpenAI({ apiKey: process.env.OPENAI_API_KEY });
54
+ new BuiltInAgent({ model: openai("gpt-4o") });
55
+ ```
56
+
57
+ This bypasses `resolveModel` entirely.
58
+
59
+ Source: `packages/runtime/src/agent/index.ts:82-109, 176-249`.
@@ -0,0 +1,523 @@
1
+ # CopilotKit BuiltInAgent
2
+
3
+ `BuiltInAgent` has two modes:
4
+
5
+ - **Factory Mode** (preferred default) — you own the LLM call, BuiltInAgent owns the AG-UI
6
+ lifecycle. TanStack AI factory is AG-UI-native and the canonical preferred choice. AI SDK
7
+ and custom (raw AG-UI event) factories are also supported.
8
+ - **Simple Mode** (classic config) — `{ model, apiKey, prompt, tools, mcpServers, maxSteps, ... }`.
9
+ Convenient for quickstarts. Simple Mode auto-injects the `AGUISendStateSnapshot` /
10
+ `AGUISendStateDelta` state tools; Factory Mode does not.
11
+
12
+ Use Factory Mode with TanStack AI for new code.
13
+
14
+ ## Setup
15
+
16
+ Factory Mode with TanStack AI (preferred default):
17
+
18
+ ```typescript
19
+ import {
20
+ CopilotRuntime,
21
+ createCopilotRuntimeHandler,
22
+ BuiltInAgent,
23
+ convertInputToTanStackAI,
24
+ } from "@copilotkit/runtime/v2";
25
+ import { chat } from "@tanstack/ai";
26
+ import { openaiText } from "@tanstack/ai-openai";
27
+
28
+ const agent = new BuiltInAgent({
29
+ type: "tanstack",
30
+ factory: ({ input, abortController }) => {
31
+ const { messages, systemPrompts } = convertInputToTanStackAI(input);
32
+ systemPrompts.unshift("You are a helpful assistant.");
33
+ return chat({
34
+ adapter: openaiText("gpt-4o"),
35
+ messages,
36
+ systemPrompts,
37
+ abortController,
38
+ });
39
+ },
40
+ });
41
+
42
+ const runtime = new CopilotRuntime({ agents: { default: agent } });
43
+
44
+ const handler = createCopilotRuntimeHandler({
45
+ runtime,
46
+ basePath: "/api/copilotkit",
47
+ });
48
+
49
+ export default { fetch: handler };
50
+ ```
51
+
52
+ Simple Mode (quickstart only):
53
+
54
+ ```typescript
55
+ import {
56
+ BuiltInAgent,
57
+ CopilotRuntime,
58
+ createCopilotRuntimeHandler,
59
+ } from "@copilotkit/runtime/v2";
60
+
61
+ const agent = new BuiltInAgent({
62
+ model: "openai/gpt-4o",
63
+ apiKey: process.env.OPENAI_API_KEY,
64
+ prompt: "You are a helpful assistant.",
65
+ maxSteps: 5, // enable the tool-call loop
66
+ });
67
+
68
+ const runtime = new CopilotRuntime({ agents: { default: agent } });
69
+ const handler = createCopilotRuntimeHandler({
70
+ runtime,
71
+ basePath: "/api/copilotkit",
72
+ });
73
+ export default { fetch: handler };
74
+ ```
75
+
76
+ ## Core Patterns
77
+
78
+ ### Factory Mode with AI SDK (needed for reasoning events)
79
+
80
+ ```typescript
81
+ import {
82
+ BuiltInAgent,
83
+ convertMessagesToVercelAISDKMessages,
84
+ convertToolsToVercelAITools,
85
+ } from "@copilotkit/runtime/v2";
86
+ import { streamText, stepCountIs } from "ai";
87
+ import { anthropic } from "@ai-sdk/anthropic";
88
+
89
+ const agent = new BuiltInAgent({
90
+ type: "aisdk",
91
+ factory: ({ input, abortSignal }) => {
92
+ const messages = convertMessagesToVercelAISDKMessages(input.messages);
93
+ const tools = convertToolsToVercelAITools(input.tools);
94
+ return streamText({
95
+ model: anthropic("claude-sonnet-4-5-20250929"),
96
+ messages,
97
+ tools,
98
+ abortSignal,
99
+ stopWhen: stepCountIs(5),
100
+ });
101
+ },
102
+ });
103
+ ```
104
+
105
+ ### Per-request agent via a factory function on CopilotRuntime
106
+
107
+ ```typescript
108
+ import {
109
+ CopilotRuntime,
110
+ BuiltInAgent,
111
+ convertInputToTanStackAI,
112
+ } from "@copilotkit/runtime/v2";
113
+ import { chat } from "@tanstack/ai";
114
+ import { openaiText } from "@tanstack/ai-openai";
115
+
116
+ const runtime = new CopilotRuntime({
117
+ agents: ({ request }) => {
118
+ const tenantId = request.headers.get("x-tenant-id") ?? "default";
119
+ return {
120
+ default: new BuiltInAgent({
121
+ type: "tanstack",
122
+ factory: ({ input, abortController }) => {
123
+ const { messages, systemPrompts } = convertInputToTanStackAI(input);
124
+ systemPrompts.unshift(`You are the ${tenantId} assistant.`);
125
+ return chat({
126
+ adapter: openaiText("gpt-4o"),
127
+ messages,
128
+ systemPrompts,
129
+ abortController,
130
+ });
131
+ },
132
+ }),
133
+ };
134
+ },
135
+ });
136
+ ```
137
+
138
+ ### Simple Mode — MCP servers
139
+
140
+ ```typescript
141
+ new BuiltInAgent({
142
+ model: "openai/gpt-4o",
143
+ maxSteps: 5,
144
+ mcpServers: [
145
+ { type: "http", url: "https://mcp.example.com/mcp" },
146
+ {
147
+ type: "sse",
148
+ url: "https://mcp.example.com/sse",
149
+ headers: { Authorization: `Bearer ${process.env.MCP_TOKEN}` },
150
+ },
151
+ ],
152
+ });
153
+ ```
154
+
155
+ ### Model specifier format
156
+
157
+ `"provider/model"` or `"provider:model"`. Supported providers: `openai`, `anthropic`,
158
+ `google` (aliases `gemini`, `google-gemini`), `vertex`. The bare model id (`"gpt-4o"`) is
159
+ rejected.
160
+
161
+ ```typescript
162
+ new BuiltInAgent({ model: "openai/gpt-4o" });
163
+ new BuiltInAgent({ model: "anthropic/claude-sonnet-4.5" });
164
+ new BuiltInAgent({ model: "google/gemini-2.5-pro" });
165
+ ```
166
+
167
+ ## Common Mistakes
168
+
169
+ ### HIGH Defaulting to Simple Mode when Factory Mode (TanStack AI) is preferred
170
+
171
+ Wrong:
172
+
173
+ ```typescript
174
+ const agent = new BuiltInAgent({
175
+ model: "openai/gpt-4o",
176
+ prompt: "You are a helpful assistant.",
177
+ });
178
+ ```
179
+
180
+ Correct:
181
+
182
+ ```typescript
183
+ import { BuiltInAgent, convertInputToTanStackAI } from "@copilotkit/runtime/v2";
184
+ import { chat } from "@tanstack/ai";
185
+ import { openaiText } from "@tanstack/ai-openai";
186
+
187
+ const agent = new BuiltInAgent({
188
+ type: "tanstack",
189
+ factory: ({ input, abortController }) => {
190
+ const { messages, systemPrompts } = convertInputToTanStackAI(input);
191
+ systemPrompts.unshift("You are a helpful assistant.");
192
+ return chat({
193
+ adapter: openaiText("gpt-4o"),
194
+ messages,
195
+ systemPrompts,
196
+ abortController,
197
+ });
198
+ },
199
+ });
200
+ ```
201
+
202
+ Factory Mode with TanStack AI is the canonical in-tree default (see
203
+ `examples/v2/react-router/app/routes/api.copilotkit.$.tsx`) and is AG-UI-native. Simple
204
+ Mode is fine for quickstarts but reaches its ceiling on anything non-standard.
205
+
206
+ Source: `examples/v2/react-router/app/routes/api.copilotkit.$.tsx`; maintainer Phase 4c.
207
+
208
+ ### HIGH Expecting tool-call loop without raising maxSteps
209
+
210
+ Wrong:
211
+
212
+ ```typescript
213
+ new BuiltInAgent({
214
+ model: "openai/gpt-4o",
215
+ tools: [searchTool],
216
+ // maxSteps defaults to undefined → AI SDK stops after one generation; tool results
217
+ // are never fed back. Set maxSteps: N to enable the tool-call loop.
218
+ });
219
+ ```
220
+
221
+ Correct:
222
+
223
+ ```typescript
224
+ new BuiltInAgent({
225
+ model: "openai/gpt-4o",
226
+ tools: [searchTool],
227
+ maxSteps: 5,
228
+ });
229
+ ```
230
+
231
+ `maxSteps` defaults to `undefined`, so `stopWhen` is `undefined` and the AI SDK's own
232
+ default applies — `streamText` stops after a single generation, the tool call happens,
233
+ but results are never fed back for a second turn. Set `maxSteps: N` to install
234
+ `stepCountIs(N)` and enable the tool-call loop up to N steps.
235
+
236
+ Source: `packages/runtime/src/agent/index.ts:988-990`.
237
+
238
+ ### HIGH Wrong model specifier format
239
+
240
+ Wrong:
241
+
242
+ ```typescript
243
+ new BuiltInAgent({ model: "gpt-4o" });
244
+ ```
245
+
246
+ Correct:
247
+
248
+ ```typescript
249
+ new BuiltInAgent({ model: "openai/gpt-4o" });
250
+ // Also valid: "openai:gpt-4o"
251
+ ```
252
+
253
+ `resolveModel` throws `Invalid model string "gpt-4o". Use "openai/gpt-5",
254
+ "anthropic/claude-sonnet-4.5", or "google/gemini-2.5-pro".` when the provider separator
255
+ is missing.
256
+
257
+ Source: `packages/runtime/src/agent/index.ts:186-204`.
258
+
259
+ ### HIGH Concurrent run() on the same BuiltInAgent instance
260
+
261
+ Wrong:
262
+
263
+ ```typescript
264
+ // One shared instance across tenants
265
+ const agent = new BuiltInAgent({ model: "openai/gpt-4o" });
266
+ new CopilotRuntime({ agents: { default: agent } });
267
+ ```
268
+
269
+ Correct:
270
+
271
+ ```typescript
272
+ // Use the agents-as-factory form for per-request instances
273
+ new CopilotRuntime({
274
+ agents: ({ request }) => ({
275
+ default: new BuiltInAgent({ model: "openai/gpt-4o" }),
276
+ }),
277
+ });
278
+ ```
279
+
280
+ A single `BuiltInAgent` instance guards against concurrent `run()` with
281
+ `"Agent is already running. Call abortRun() first or create a new instance."` Multi-tenant
282
+ servers that share one instance see errors on the second concurrent user.
283
+
284
+ Source: `packages/runtime/src/agent/index.ts:895-898`.
285
+
286
+ ### HIGH Expecting state tools to auto-inject in Factory Mode
287
+
288
+ Wrong:
289
+
290
+ ```typescript
291
+ new BuiltInAgent({
292
+ type: "tanstack",
293
+ factory: ({ input, abortController }) => {
294
+ const { messages, systemPrompts } = convertInputToTanStackAI(input);
295
+ return chat({
296
+ adapter: openaiText("gpt-4o"),
297
+ messages,
298
+ systemPrompts,
299
+ abortController,
300
+ });
301
+ },
302
+ });
303
+ // Frontend uses useAgent + shared state — but no state-tool calls come back
304
+ ```
305
+
306
+ Correct (AI SDK factory — `defineTool` output converts via
307
+ `convertToolDefinitionsToVercelAITools`):
308
+
309
+ ```typescript
310
+ import {
311
+ BuiltInAgent,
312
+ convertMessagesToVercelAISDKMessages,
313
+ convertToolDefinitionsToVercelAITools,
314
+ defineTool,
315
+ } from "@copilotkit/runtime/v2";
316
+ import { streamText } from "ai";
317
+ import { openai } from "@ai-sdk/openai";
318
+ import { z } from "zod";
319
+
320
+ const sendStateSnapshot = defineTool({
321
+ name: "AGUISendStateSnapshot",
322
+ description: "Replace the entire application state with a new snapshot",
323
+ parameters: z.object({
324
+ snapshot: z.any().describe("The complete new state object"),
325
+ }),
326
+ execute: async ({ snapshot }) => ({ success: true, snapshot }),
327
+ });
328
+ const sendStateDelta = defineTool({
329
+ name: "AGUISendStateDelta",
330
+ description:
331
+ "Apply incremental updates to application state using JSON Patch operations",
332
+ // MUST mirror the Simple-Mode auto-injected schema (src/agent/index.ts:1140-1176)
333
+ // or the frontend's state handler won't recognize the payload.
334
+ parameters: z.object({
335
+ delta: z
336
+ .array(
337
+ z.object({
338
+ op: z.enum(["add", "replace", "remove"]),
339
+ path: z.string(), // JSON Pointer, e.g. "/foo/bar"
340
+ value: z.any().optional(), // required for add/replace, ignored for remove
341
+ }),
342
+ )
343
+ .describe("Array of JSON Patch operations"),
344
+ }),
345
+ execute: async ({ delta }) => ({ success: true, delta }),
346
+ });
347
+ // If you don't want to hand-wire this, use Simple Mode — it auto-injects both
348
+ // AGUISendStateSnapshot and AGUISendStateDelta with the correct JSON Patch schema.
349
+ // Source: packages/runtime/src/agent/index.ts:1140-1176
350
+
351
+ new BuiltInAgent({
352
+ type: "aisdk",
353
+ factory: ({ input, abortSignal }) =>
354
+ streamText({
355
+ model: openai("gpt-4o"),
356
+ messages: convertMessagesToVercelAISDKMessages(input.messages),
357
+ tools: convertToolDefinitionsToVercelAITools([
358
+ sendStateSnapshot,
359
+ sendStateDelta,
360
+ ]),
361
+ abortSignal,
362
+ }),
363
+ });
364
+ ```
365
+
366
+ Only Simple Mode auto-injects the AG-UI state tools. In Factory Mode you must register
367
+ them by hand or shared-state updates never reach the LLM. `defineTool` produces a Standard
368
+ Schema V1 + `execute` shape — use `convertToolDefinitionsToVercelAITools([...])` to adapt
369
+ it to the AI SDK's `streamText({ tools })`. TanStack AI factories cannot consume
370
+ `defineTool` output directly; either redefine the tools with `toolDefinition()` from
371
+ `@tanstack/ai`, or switch to the AI SDK factory above.
372
+
373
+ Source: `docs/snippets/shared/backend/custom-agent.mdx:495-588`.
374
+
375
+ ### MEDIUM Mixing Simple Mode tools with Factory Mode
376
+
377
+ Wrong:
378
+
379
+ ```typescript
380
+ new BuiltInAgent({
381
+ type: "tanstack",
382
+ factory: myFactory,
383
+ tools: [t1, t2], // ignored in Factory Mode
384
+ });
385
+ ```
386
+
387
+ Correct:
388
+
389
+ ```typescript
390
+ new BuiltInAgent({
391
+ type: "tanstack",
392
+ factory: ({ input, abortController }) => {
393
+ const { messages, systemPrompts } = convertInputToTanStackAI(input);
394
+ return chat({
395
+ adapter: openaiText("gpt-4o"),
396
+ messages,
397
+ systemPrompts,
398
+ tools: [t1, t2],
399
+ abortController,
400
+ });
401
+ },
402
+ });
403
+ ```
404
+
405
+ Factory Mode ignores `config.tools`, `config.mcpServers`, `config.prompt` entirely — the
406
+ factory owns the call. Wire tools inside `chat({ tools })` for TanStack AI, or via
407
+ `convertToolsToVercelAITools(input.tools)` / `convertToolDefinitionsToVercelAITools([...])`
408
+ for AI SDK.
409
+
410
+ Source: `packages/runtime/src/agent/index.ts:1581-1671`.
411
+
412
+ ### HIGH Expecting reasoning events from TanStack AI
413
+
414
+ Wrong:
415
+
416
+ ```typescript
417
+ new BuiltInAgent({
418
+ type: "tanstack",
419
+ factory: ({ input, abortController }) => {
420
+ const { messages, systemPrompts } = convertInputToTanStackAI(input);
421
+ return chat({
422
+ adapter: anthropicText("claude-sonnet-4-5-20250929"),
423
+ messages,
424
+ systemPrompts,
425
+ modelOptions: { thinking: { type: "enabled", budgetTokens: 10000 } },
426
+ abortController,
427
+ });
428
+ },
429
+ });
430
+ // expecting REASONING_START / REASONING_MESSAGE_CONTENT / REASONING_END — nothing arrives
431
+ ```
432
+
433
+ Correct:
434
+
435
+ ```typescript
436
+ import {
437
+ BuiltInAgent,
438
+ convertMessagesToVercelAISDKMessages,
439
+ } from "@copilotkit/runtime/v2";
440
+ import { streamText } from "ai";
441
+ import { anthropic } from "@ai-sdk/anthropic";
442
+
443
+ new BuiltInAgent({
444
+ type: "aisdk",
445
+ factory: ({ input, abortSignal }) =>
446
+ streamText({
447
+ model: anthropic("claude-sonnet-4-5-20250929"),
448
+ messages: convertMessagesToVercelAISDKMessages(input.messages),
449
+ providerOptions: {
450
+ anthropic: { thinking: { type: "enabled", budgetTokens: 10000 } },
451
+ },
452
+ abortSignal,
453
+ }),
454
+ });
455
+ ```
456
+
457
+ The TanStack AI converter does NOT surface `REASONING_START` /
458
+ `REASONING_MESSAGE_CONTENT` / `REASONING_END` events — even with a thinking-capable model.
459
+ Use AI SDK when the frontend needs a reasoning UI.
460
+
461
+ Source: `docs/snippets/shared/backend/custom-agent.mdx:315-317` (warn callout).
462
+
463
+ ### MEDIUM Expecting forwarded system messages
464
+
465
+ Wrong:
466
+
467
+ ```typescript
468
+ // Client sends { role: "system", content: "You are..." } and expects it prefixed
469
+ new BuiltInAgent({ model: "openai/gpt-4o" });
470
+ ```
471
+
472
+ Correct:
473
+
474
+ ```typescript
475
+ // Either set the server-side prompt
476
+ new BuiltInAgent({ model: "openai/gpt-4o", prompt: "You are..." });
477
+ // or opt in explicitly
478
+ new BuiltInAgent({ model: "openai/gpt-4o", forwardSystemMessages: true });
479
+ ```
480
+
481
+ `forwardSystemMessages` and `forwardDeveloperMessages` default to `false`. System/developer
482
+ messages from the AG-UI input are dropped unless opted in.
483
+
484
+ Source: `packages/runtime/src/agent/index.ts:440-456,809-815`.
485
+
486
+ ### MEDIUM Aborting factory's abortController directly
487
+
488
+ Wrong:
489
+
490
+ ```typescript
491
+ factory: (ctx) => {
492
+ ctx.abortController.abort(); // JSDoc says don't
493
+ return streamText({
494
+ /* ... */
495
+ });
496
+ };
497
+ ```
498
+
499
+ Correct:
500
+
501
+ ```typescript
502
+ factory: (ctx) => streamText({ /* ... */, abortSignal: ctx.abortSignal });
503
+ // Externally, from outside the factory:
504
+ agent.abortRun();
505
+ ```
506
+
507
+ The JSDoc on `AgentFactoryContext.abortController` explicitly warns against calling
508
+ `.abort()` on it inside the factory — use `agent.abortRun()` or pass `abortSignal` to the
509
+ downstream fetch/LLM call.
510
+
511
+ Source: `packages/runtime/src/agent/index.ts:670-672`.
512
+
513
+ ## References
514
+
515
+ - [Model identifiers — supported strings](built-in-agent-model-identifiers.md)
516
+ - [Factory modes — TanStack AI / AI SDK / custom cookbook](built-in-agent-factory-modes.md)
517
+ - [Helper utilities — converter function signatures](built-in-agent-helper-utilities.md)
518
+
519
+ ## See also
520
+
521
+ - `copilotkit/server-side-tools` — `defineTool` powers `config.tools` in Simple Mode
522
+ - `copilotkit/setup-endpoint` — mount the runtime that hosts this agent
523
+ - `copilotkit/wiring-external-agents` — alternative when you want an external framework