@copilotkit/runtime 1.57.2 → 1.57.4

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 (342) hide show
  1. package/dist/lib/runtime/copilot-runtime.cjs +2 -0
  2. package/dist/lib/runtime/copilot-runtime.cjs.map +1 -1
  3. package/dist/lib/runtime/copilot-runtime.d.cts.map +1 -1
  4. package/dist/lib/runtime/copilot-runtime.d.mts.map +1 -1
  5. package/dist/lib/runtime/copilot-runtime.mjs +2 -0
  6. package/dist/lib/runtime/copilot-runtime.mjs.map +1 -1
  7. package/dist/package.cjs +52 -19
  8. package/dist/package.mjs +52 -19
  9. package/dist/v2/runtime/core/runtime.cjs +4 -1
  10. package/dist/v2/runtime/core/runtime.cjs.map +1 -1
  11. package/dist/v2/runtime/core/runtime.d.cts.map +1 -1
  12. package/dist/v2/runtime/core/runtime.d.mts.map +1 -1
  13. package/dist/v2/runtime/core/runtime.mjs +4 -1
  14. package/dist/v2/runtime/core/runtime.mjs.map +1 -1
  15. package/dist/v2/runtime/handlers/get-runtime-info.cjs +1 -1
  16. package/dist/v2/runtime/handlers/get-runtime-info.mjs +1 -1
  17. package/dist/v2/runtime/handlers/handle-connect.cjs +1 -1
  18. package/dist/v2/runtime/handlers/handle-connect.mjs +1 -1
  19. package/dist/v2/runtime/handlers/handle-run.cjs +1 -1
  20. package/dist/v2/runtime/handlers/handle-run.mjs +1 -1
  21. package/dist/v2/runtime/handlers/shared/agent-utils.cjs +1 -1
  22. package/dist/v2/runtime/handlers/shared/agent-utils.cjs.map +1 -1
  23. package/dist/v2/runtime/handlers/shared/agent-utils.mjs +1 -1
  24. package/dist/v2/runtime/handlers/shared/agent-utils.mjs.map +1 -1
  25. package/dist/v2/runtime/telemetry/telemetry-client.cjs +22 -6
  26. package/dist/v2/runtime/telemetry/telemetry-client.cjs.map +1 -1
  27. package/dist/v2/runtime/telemetry/telemetry-client.mjs +27 -11
  28. package/dist/v2/runtime/telemetry/telemetry-client.mjs.map +1 -1
  29. package/package.json +8 -18
  30. package/skills/runtime/SKILL.md +98 -0
  31. package/skills/runtime/references/agent-runners-custom.md +161 -0
  32. package/skills/runtime/references/agent-runners-in-memory.md +64 -0
  33. package/skills/runtime/references/agent-runners-sqlite.md +90 -0
  34. package/skills/runtime/references/agent-runners.md +304 -0
  35. package/skills/runtime/references/built-in-agent-factory-modes.md +232 -0
  36. package/skills/runtime/references/built-in-agent-helper-utilities.md +123 -0
  37. package/skills/runtime/references/built-in-agent-model-identifiers.md +59 -0
  38. package/skills/runtime/references/built-in-agent.md +523 -0
  39. package/skills/runtime/references/intelligence-mode.md +336 -0
  40. package/skills/runtime/references/middleware.md +376 -0
  41. package/skills/runtime/references/server-side-tools.md +414 -0
  42. package/skills/runtime/references/setup-endpoint.md +503 -0
  43. package/skills/runtime/references/transcription.md +287 -0
  44. package/skills/runtime/references/wiring-a2a.md +40 -0
  45. package/skills/runtime/references/wiring-adk.md +45 -0
  46. package/skills/runtime/references/wiring-ag2.md +41 -0
  47. package/skills/runtime/references/wiring-agno.md +39 -0
  48. package/skills/runtime/references/wiring-aws-strands.md +59 -0
  49. package/skills/runtime/references/wiring-crewai-crews.md +51 -0
  50. package/skills/runtime/references/wiring-crewai-flows.md +45 -0
  51. package/skills/runtime/references/wiring-external-agents.md +348 -0
  52. package/skills/runtime/references/wiring-langgraph.md +50 -0
  53. package/skills/runtime/references/wiring-llamaindex.md +39 -0
  54. package/skills/runtime/references/wiring-mastra.md +70 -0
  55. package/skills/runtime/references/wiring-mcp-apps-middleware.md +68 -0
  56. package/skills/runtime/references/wiring-ms-agent-framework.md +41 -0
  57. package/skills/runtime/references/wiring-pydantic-ai.md +45 -0
  58. package/CHANGELOG.md +0 -3624
  59. package/__snapshots__/schema/schema.graphql +0 -371
  60. package/dist/v2/runtime/telemetry/scarf-client.cjs +0 -32
  61. package/dist/v2/runtime/telemetry/scarf-client.cjs.map +0 -1
  62. package/dist/v2/runtime/telemetry/scarf-client.mjs +0 -32
  63. package/dist/v2/runtime/telemetry/scarf-client.mjs.map +0 -1
  64. package/scripts/generate-gql-schema.ts +0 -16
  65. package/src/agent/__tests__/agent-test-helpers.ts +0 -476
  66. package/src/agent/__tests__/agent.test.ts +0 -593
  67. package/src/agent/__tests__/ai-sdk-v6-compat.test.ts +0 -116
  68. package/src/agent/__tests__/basic-agent.test.ts +0 -1698
  69. package/src/agent/__tests__/capabilities.test.ts +0 -81
  70. package/src/agent/__tests__/config-tools-execution.test.ts +0 -516
  71. package/src/agent/__tests__/converter-aisdk.test.ts +0 -692
  72. package/src/agent/__tests__/converter-custom.test.ts +0 -319
  73. package/src/agent/__tests__/converter-tanstack-input.test.ts +0 -211
  74. package/src/agent/__tests__/converter-tanstack.test.ts +0 -594
  75. package/src/agent/__tests__/mcp-clients.test.ts +0 -246
  76. package/src/agent/__tests__/mcp-servers-integration.test.ts +0 -373
  77. package/src/agent/__tests__/multimodal-tanstack.test.ts +0 -284
  78. package/src/agent/__tests__/multimodal.test.ts +0 -176
  79. package/src/agent/__tests__/property-overrides.test.ts +0 -598
  80. package/src/agent/__tests__/provider-id-collision.test.ts +0 -195
  81. package/src/agent/__tests__/standard-schema-tools.test.ts +0 -313
  82. package/src/agent/__tests__/standard-schema-types.test.ts +0 -158
  83. package/src/agent/__tests__/state-tools.test.ts +0 -436
  84. package/src/agent/__tests__/test-helpers.ts +0 -197
  85. package/src/agent/__tests__/utils.test.ts +0 -536
  86. package/src/agent/__tests__/zod-regression.test.ts +0 -350
  87. package/src/agent/converters/aisdk.ts +0 -326
  88. package/src/agent/converters/index.ts +0 -7
  89. package/src/agent/converters/tanstack.ts +0 -451
  90. package/src/agent/index.ts +0 -1743
  91. package/src/agents/langgraph/__tests__/event-source.test.ts +0 -256
  92. package/src/agents/langgraph/event-source.ts +0 -365
  93. package/src/agents/langgraph/events.ts +0 -394
  94. package/src/graphql/inputs/action.input.ts +0 -16
  95. package/src/graphql/inputs/agent-session.input.ts +0 -13
  96. package/src/graphql/inputs/agent-state.input.ts +0 -13
  97. package/src/graphql/inputs/cloud-guardrails.input.ts +0 -16
  98. package/src/graphql/inputs/cloud.input.ts +0 -8
  99. package/src/graphql/inputs/context-property.input.ts +0 -10
  100. package/src/graphql/inputs/copilot-context.input.ts +0 -10
  101. package/src/graphql/inputs/custom-property.input.ts +0 -15
  102. package/src/graphql/inputs/extensions.input.ts +0 -21
  103. package/src/graphql/inputs/forwarded-parameters.input.ts +0 -22
  104. package/src/graphql/inputs/frontend.input.ts +0 -14
  105. package/src/graphql/inputs/generate-copilot-response.input.ts +0 -59
  106. package/src/graphql/inputs/load-agent-state.input.ts +0 -10
  107. package/src/graphql/inputs/message.input.ts +0 -110
  108. package/src/graphql/inputs/meta-event.input.ts +0 -18
  109. package/src/graphql/message-conversion/agui-to-gql.test.ts +0 -1384
  110. package/src/graphql/message-conversion/agui-to-gql.ts +0 -384
  111. package/src/graphql/message-conversion/gql-to-agui.test.ts +0 -1653
  112. package/src/graphql/message-conversion/gql-to-agui.ts +0 -297
  113. package/src/graphql/message-conversion/index.ts +0 -2
  114. package/src/graphql/message-conversion/roundtrip-conversion.test.ts +0 -561
  115. package/src/graphql/resolvers/__tests__/resolve-message-id.test.ts +0 -25
  116. package/src/graphql/resolvers/copilot.resolver.ts +0 -785
  117. package/src/graphql/resolvers/resolve-message-id.ts +0 -14
  118. package/src/graphql/resolvers/state.resolver.ts +0 -30
  119. package/src/graphql/types/agents-response.type.ts +0 -19
  120. package/src/graphql/types/base/index.ts +0 -10
  121. package/src/graphql/types/converted/index.ts +0 -183
  122. package/src/graphql/types/copilot-response.type.ts +0 -141
  123. package/src/graphql/types/enums.ts +0 -38
  124. package/src/graphql/types/extensions-response.type.ts +0 -23
  125. package/src/graphql/types/guardrails-result.type.ts +0 -20
  126. package/src/graphql/types/load-agent-state-response.type.ts +0 -17
  127. package/src/graphql/types/message-status.type.ts +0 -48
  128. package/src/graphql/types/meta-events.type.ts +0 -78
  129. package/src/graphql/types/response-status.type.ts +0 -77
  130. package/src/index.ts +0 -3
  131. package/src/langgraph.ts +0 -1
  132. package/src/lib/__tests__/telemetry-disclosure.test.ts +0 -55
  133. package/src/lib/cloud/index.ts +0 -4
  134. package/src/lib/error-messages.ts +0 -211
  135. package/src/lib/index.ts +0 -52
  136. package/src/lib/integrations/index.ts +0 -6
  137. package/src/lib/integrations/nest/index.ts +0 -21
  138. package/src/lib/integrations/nextjs/app-router.ts +0 -47
  139. package/src/lib/integrations/nextjs/pages-router.ts +0 -45
  140. package/src/lib/integrations/node-express/index.ts +0 -21
  141. package/src/lib/integrations/node-http/__tests__/request-duck-type.test.ts +0 -66
  142. package/src/lib/integrations/node-http/index.ts +0 -187
  143. package/src/lib/integrations/node-http/request-handler.ts +0 -128
  144. package/src/lib/integrations/shared.ts +0 -112
  145. package/src/lib/logger.ts +0 -31
  146. package/src/lib/observability.ts +0 -167
  147. package/src/lib/runtime/__tests__/copilot-runtime-error.test.ts +0 -183
  148. package/src/lib/runtime/__tests__/handle-service-adapter.test.ts +0 -108
  149. package/src/lib/runtime/__tests__/mcp-tools-utils.test.ts +0 -499
  150. package/src/lib/runtime/__tests__/on-after-request.test.ts +0 -122
  151. package/src/lib/runtime/__tests__/retry-utils.test.ts +0 -137
  152. package/src/lib/runtime/__tests__/v1-agent-factory.test.ts +0 -109
  153. package/src/lib/runtime/agent-integrations/langgraph/__tests__/dispatch-event-filtering.test.ts +0 -345
  154. package/src/lib/runtime/agent-integrations/langgraph/__tests__/run-message-filtering.test.ts +0 -156
  155. package/src/lib/runtime/agent-integrations/langgraph/agent.ts +0 -263
  156. package/src/lib/runtime/agent-integrations/langgraph/consts.ts +0 -37
  157. package/src/lib/runtime/agent-integrations/langgraph/index.ts +0 -2
  158. package/src/lib/runtime/copilot-runtime.ts +0 -863
  159. package/src/lib/runtime/mcp-tools-utils.ts +0 -313
  160. package/src/lib/runtime/retry-utils.ts +0 -141
  161. package/src/lib/runtime/telemetry-agent-runner.ts +0 -151
  162. package/src/lib/runtime/types.ts +0 -48
  163. package/src/lib/runtime/utils.ts +0 -93
  164. package/src/lib/streaming.ts +0 -220
  165. package/src/lib/telemetry-client.ts +0 -66
  166. package/src/lib/telemetry-disclosure.ts +0 -53
  167. package/src/service-adapters/anthropic/anthropic-adapter.ts +0 -532
  168. package/src/service-adapters/anthropic/utils.ts +0 -219
  169. package/src/service-adapters/bedrock/bedrock-adapter.ts +0 -73
  170. package/src/service-adapters/conversion.test.ts +0 -56
  171. package/src/service-adapters/conversion.ts +0 -69
  172. package/src/service-adapters/empty/empty-adapter.ts +0 -38
  173. package/src/service-adapters/events.ts +0 -337
  174. package/src/service-adapters/experimental/ollama/ollama-adapter.ts +0 -84
  175. package/src/service-adapters/google/google-genai-adapter.test.ts +0 -151
  176. package/src/service-adapters/google/google-genai-adapter.ts +0 -95
  177. package/src/service-adapters/groq/groq-adapter.ts +0 -229
  178. package/src/service-adapters/index.ts +0 -18
  179. package/src/service-adapters/langchain/langchain-adapter.ts +0 -113
  180. package/src/service-adapters/langchain/langserve.ts +0 -88
  181. package/src/service-adapters/langchain/types.ts +0 -20
  182. package/src/service-adapters/langchain/utils.ts +0 -330
  183. package/src/service-adapters/openai/__tests__/openai-v5-compat.test.ts +0 -177
  184. package/src/service-adapters/openai/openai-adapter.ts +0 -324
  185. package/src/service-adapters/openai/openai-assistant-adapter.ts +0 -385
  186. package/src/service-adapters/openai/utils.ts +0 -305
  187. package/src/service-adapters/service-adapter.ts +0 -50
  188. package/src/service-adapters/shared/error-utils.ts +0 -64
  189. package/src/service-adapters/shared/index.ts +0 -2
  190. package/src/service-adapters/shared/sdk-client-utils.ts +0 -19
  191. package/src/service-adapters/unify/unify-adapter.ts +0 -165
  192. package/src/utils/failed-response-status-reasons.ts +0 -70
  193. package/src/utils/index.ts +0 -1
  194. package/src/v2/express.ts +0 -1
  195. package/src/v2/hono.ts +0 -1
  196. package/src/v2/index.ts +0 -5
  197. package/src/v2/node.ts +0 -1
  198. package/src/v2/runtime/__tests__/agents-factory.test.ts +0 -136
  199. package/src/v2/runtime/__tests__/backward-compat.test.ts +0 -261
  200. package/src/v2/runtime/__tests__/code-review-fixes.test.ts +0 -500
  201. package/src/v2/runtime/__tests__/cors-credentials.test.ts +0 -320
  202. package/src/v2/runtime/__tests__/debug-sse-response.test.ts +0 -302
  203. package/src/v2/runtime/__tests__/express-adapter.test.ts +0 -188
  204. package/src/v2/runtime/__tests__/express-body-order.test.ts +0 -76
  205. package/src/v2/runtime/__tests__/express-fetch-bridge.test.ts +0 -344
  206. package/src/v2/runtime/__tests__/express-single-sse.test.ts +0 -122
  207. package/src/v2/runtime/__tests__/express-single-telemetry.integration.test.ts +0 -65
  208. package/src/v2/runtime/__tests__/express-telemetry.integration.test.ts +0 -101
  209. package/src/v2/runtime/__tests__/fetch-cors.test.ts +0 -205
  210. package/src/v2/runtime/__tests__/fetch-handler-validation.test.ts +0 -440
  211. package/src/v2/runtime/__tests__/fetch-handler.test.ts +0 -456
  212. package/src/v2/runtime/__tests__/fetch-router.test.ts +0 -276
  213. package/src/v2/runtime/__tests__/get-runtime-info.test.ts +0 -335
  214. package/src/v2/runtime/__tests__/handle-connect.test.ts +0 -585
  215. package/src/v2/runtime/__tests__/handle-run.test.ts +0 -1388
  216. package/src/v2/runtime/__tests__/handle-threads.test.ts +0 -930
  217. package/src/v2/runtime/__tests__/handle-transcribe.test.ts +0 -301
  218. package/src/v2/runtime/__tests__/header-utils.test.ts +0 -88
  219. package/src/v2/runtime/__tests__/hono-adapter.test.ts +0 -150
  220. package/src/v2/runtime/__tests__/hono-single-telemetry.integration.test.ts +0 -46
  221. package/src/v2/runtime/__tests__/hono-telemetry.integration.test.ts +0 -99
  222. package/src/v2/runtime/__tests__/hooks-edge-cases.test.ts +0 -457
  223. package/src/v2/runtime/__tests__/hooks.test.ts +0 -557
  224. package/src/v2/runtime/__tests__/in-process-agent-runner-messages.test.ts +0 -230
  225. package/src/v2/runtime/__tests__/in-process-agent-runner.test.ts +0 -1030
  226. package/src/v2/runtime/__tests__/integration/bun/bun-servers.integration.test.ts +0 -27
  227. package/src/v2/runtime/__tests__/integration/bun/elysia-multi.ts +0 -32
  228. package/src/v2/runtime/__tests__/integration/bun/elysia-single.ts +0 -33
  229. package/src/v2/runtime/__tests__/integration/bun/hono-bun-multi.ts +0 -25
  230. package/src/v2/runtime/__tests__/integration/bun/hono-bun-single.ts +0 -32
  231. package/src/v2/runtime/__tests__/integration/helpers/create-test-runtime.ts +0 -15
  232. package/src/v2/runtime/__tests__/integration/helpers/sse-reader.ts +0 -45
  233. package/src/v2/runtime/__tests__/integration/helpers/test-agent.ts +0 -58
  234. package/src/v2/runtime/__tests__/integration/node-servers.integration.test.ts +0 -58
  235. package/src/v2/runtime/__tests__/integration/servers/express-multi.ts +0 -35
  236. package/src/v2/runtime/__tests__/integration/servers/express-single.ts +0 -36
  237. package/src/v2/runtime/__tests__/integration/servers/fetch-direct.ts +0 -39
  238. package/src/v2/runtime/__tests__/integration/servers/hono-multi.ts +0 -30
  239. package/src/v2/runtime/__tests__/integration/servers/hono-single.ts +0 -37
  240. package/src/v2/runtime/__tests__/integration/servers/node-multi.ts +0 -45
  241. package/src/v2/runtime/__tests__/integration/servers/node-single.ts +0 -46
  242. package/src/v2/runtime/__tests__/integration/servers/types.ts +0 -18
  243. package/src/v2/runtime/__tests__/integration/suites/debug-events.suite.ts +0 -253
  244. package/src/v2/runtime/__tests__/integration/suites/multi-endpoint.suite.ts +0 -358
  245. package/src/v2/runtime/__tests__/integration/suites/single-endpoint.suite.ts +0 -363
  246. package/src/v2/runtime/__tests__/intelligence-run-telemetry.test.ts +0 -194
  247. package/src/v2/runtime/__tests__/mcp-apps-middleware-integration.test.ts +0 -275
  248. package/src/v2/runtime/__tests__/middleware-express.test.ts +0 -208
  249. package/src/v2/runtime/__tests__/middleware-single-express.test.ts +0 -213
  250. package/src/v2/runtime/__tests__/middleware-single.test.ts +0 -225
  251. package/src/v2/runtime/__tests__/middleware-sse-parser.test.ts +0 -237
  252. package/src/v2/runtime/__tests__/middleware.test.ts +0 -250
  253. package/src/v2/runtime/__tests__/node-fetch-handler.test.ts +0 -157
  254. package/src/v2/runtime/__tests__/open-generative-ui-middleware.e2e.test.ts +0 -728
  255. package/src/v2/runtime/__tests__/router-edge-cases.test.ts +0 -217
  256. package/src/v2/runtime/__tests__/routing-express.test.ts +0 -174
  257. package/src/v2/runtime/__tests__/routing-single-express.test.ts +0 -168
  258. package/src/v2/runtime/__tests__/routing-single.test.ts +0 -193
  259. package/src/v2/runtime/__tests__/routing.test.ts +0 -257
  260. package/src/v2/runtime/__tests__/runtime.test.ts +0 -234
  261. package/src/v2/runtime/__tests__/sse-response-telemetry.test.ts +0 -108
  262. package/src/v2/runtime/__tests__/telemetry.test.ts +0 -167
  263. package/src/v2/runtime/__tests__/thread-names.test.ts +0 -188
  264. package/src/v2/runtime/core/__tests__/debug-event-bus.test.ts +0 -156
  265. package/src/v2/runtime/core/debug-event-bus.ts +0 -45
  266. package/src/v2/runtime/core/fetch-cors.ts +0 -136
  267. package/src/v2/runtime/core/fetch-handler.ts +0 -492
  268. package/src/v2/runtime/core/fetch-router.ts +0 -203
  269. package/src/v2/runtime/core/hooks.ts +0 -160
  270. package/src/v2/runtime/core/middleware-sse-parser.ts +0 -210
  271. package/src/v2/runtime/core/middleware.ts +0 -115
  272. package/src/v2/runtime/core/runtime.ts +0 -432
  273. package/src/v2/runtime/endpoints/express-fetch-bridge.ts +0 -137
  274. package/src/v2/runtime/endpoints/express-single.ts +0 -54
  275. package/src/v2/runtime/endpoints/express.ts +0 -179
  276. package/src/v2/runtime/endpoints/hono-single.ts +0 -60
  277. package/src/v2/runtime/endpoints/hono.ts +0 -89
  278. package/src/v2/runtime/endpoints/index.ts +0 -4
  279. package/src/v2/runtime/endpoints/node-fetch-handler.ts +0 -48
  280. package/src/v2/runtime/endpoints/node.ts +0 -28
  281. package/src/v2/runtime/endpoints/single-route-helpers.ts +0 -125
  282. package/src/v2/runtime/express.ts +0 -2
  283. package/src/v2/runtime/handlers/__tests__/handle-debug-events.test.ts +0 -176
  284. package/src/v2/runtime/handlers/get-runtime-info.ts +0 -101
  285. package/src/v2/runtime/handlers/handle-connect.ts +0 -80
  286. package/src/v2/runtime/handlers/handle-debug-events.ts +0 -52
  287. package/src/v2/runtime/handlers/handle-run.ts +0 -111
  288. package/src/v2/runtime/handlers/handle-stop.ts +0 -77
  289. package/src/v2/runtime/handlers/handle-threads.ts +0 -11
  290. package/src/v2/runtime/handlers/handle-transcribe.ts +0 -269
  291. package/src/v2/runtime/handlers/header-utils.ts +0 -24
  292. package/src/v2/runtime/handlers/intelligence/connect.ts +0 -102
  293. package/src/v2/runtime/handlers/intelligence/run.ts +0 -351
  294. package/src/v2/runtime/handlers/intelligence/thread-names.ts +0 -246
  295. package/src/v2/runtime/handlers/intelligence/threads.ts +0 -420
  296. package/src/v2/runtime/handlers/shared/agent-utils.ts +0 -154
  297. package/src/v2/runtime/handlers/shared/intelligence-utils.ts +0 -41
  298. package/src/v2/runtime/handlers/shared/json-response.ts +0 -9
  299. package/src/v2/runtime/handlers/shared/resolve-intelligence-user.ts +0 -28
  300. package/src/v2/runtime/handlers/shared/sse-response.ts +0 -215
  301. package/src/v2/runtime/handlers/sse/__tests__/sse-connect-agent-id.test.ts +0 -71
  302. package/src/v2/runtime/handlers/sse/connect.ts +0 -30
  303. package/src/v2/runtime/handlers/sse/run.ts +0 -40
  304. package/src/v2/runtime/hono.ts +0 -2
  305. package/src/v2/runtime/index.ts +0 -51
  306. package/src/v2/runtime/intelligence-platform/__tests__/client.test.ts +0 -601
  307. package/src/v2/runtime/intelligence-platform/__tests__/intelligence-mcp-helper.test.ts +0 -246
  308. package/src/v2/runtime/intelligence-platform/client.ts +0 -818
  309. package/src/v2/runtime/intelligence-platform/index.ts +0 -10
  310. package/src/v2/runtime/node.ts +0 -6
  311. package/src/v2/runtime/open-generative-ui-middleware.ts +0 -373
  312. package/src/v2/runtime/runner/__tests__/finalize-events.test.ts +0 -109
  313. package/src/v2/runtime/runner/__tests__/in-memory-runner.e2e.test.ts +0 -775
  314. package/src/v2/runtime/runner/__tests__/in-memory-runner.test.ts +0 -777
  315. package/src/v2/runtime/runner/__tests__/intelligence-runner.test.ts +0 -1039
  316. package/src/v2/runtime/runner/agent-runner.ts +0 -35
  317. package/src/v2/runtime/runner/in-memory.ts +0 -467
  318. package/src/v2/runtime/runner/index.ts +0 -4
  319. package/src/v2/runtime/runner/intelligence.ts +0 -498
  320. package/src/v2/runtime/telemetry/__tests__/instance-created.test.ts +0 -96
  321. package/src/v2/runtime/telemetry/events.ts +0 -35
  322. package/src/v2/runtime/telemetry/index.ts +0 -7
  323. package/src/v2/runtime/telemetry/instance-created.ts +0 -44
  324. package/src/v2/runtime/telemetry/scarf-client.ts +0 -39
  325. package/src/v2/runtime/telemetry/telemetry-client.ts +0 -70
  326. package/src/v2/runtime/transcription-service/transcription-service.ts +0 -11
  327. package/tests/global.d.ts +0 -1
  328. package/tests/service-adapters/anthropic/allowlist-approach.test.ts +0 -259
  329. package/tests/service-adapters/anthropic/anthropic-adapter-language-model.test.ts +0 -101
  330. package/tests/service-adapters/anthropic/anthropic-adapter.test.ts +0 -645
  331. package/tests/service-adapters/anthropic/utils-token-trimming.test.ts +0 -301
  332. package/tests/service-adapters/groq/groq-adapter-language-model.test.ts +0 -102
  333. package/tests/service-adapters/openai/allowlist-approach.test.ts +0 -294
  334. package/tests/service-adapters/openai/openai-adapter-language-model.test.ts +0 -122
  335. package/tests/service-adapters/openai/openai-adapter.test.ts +0 -291
  336. package/tests/service-adapters/shared/sdk-client-utils.test.ts +0 -36
  337. package/tests/setup.vitest.ts +0 -8
  338. package/tests/tsconfig.json +0 -10
  339. package/tsconfig.json +0 -20
  340. package/tsdown.config.ts +0 -45
  341. package/typedoc.json +0 -4
  342. 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