@copilotkit/runtime 1.72.0 → 1.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/agent/index.cjs +82 -8
  2. package/dist/agent/index.cjs.map +1 -1
  3. package/dist/agent/index.d.cts +55 -8
  4. package/dist/agent/index.d.cts.map +1 -1
  5. package/dist/agent/index.d.mts +53 -6
  6. package/dist/agent/index.d.mts.map +1 -1
  7. package/dist/agent/index.mjs +83 -10
  8. package/dist/agent/index.mjs.map +1 -1
  9. package/dist/agent/learned-skills.cjs +77 -0
  10. package/dist/agent/learned-skills.cjs.map +1 -0
  11. package/dist/agent/learned-skills.d.cts +16 -0
  12. package/dist/agent/learned-skills.d.cts.map +1 -0
  13. package/dist/agent/learned-skills.d.mts +16 -0
  14. package/dist/agent/learned-skills.d.mts.map +1 -0
  15. package/dist/agent/learned-skills.mjs +75 -0
  16. package/dist/agent/learned-skills.mjs.map +1 -0
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.cts +27 -20
  19. package/dist/index.d.mts +27 -20
  20. package/dist/index.mjs +1 -1
  21. package/dist/internal/learned-skills.cjs +22 -0
  22. package/dist/internal/learned-skills.d.cts +10 -0
  23. package/dist/internal/learned-skills.d.mts +10 -0
  24. package/dist/internal/learned-skills.mjs +10 -0
  25. package/dist/langgraph.d.cts +3 -1
  26. package/dist/langgraph.d.mts +3 -1
  27. package/dist/lib/index.cjs +1 -1
  28. package/dist/lib/index.cjs.map +1 -1
  29. package/dist/lib/index.d.cts +2 -2
  30. package/dist/lib/index.d.cts.map +1 -1
  31. package/dist/lib/index.d.mts +2 -2
  32. package/dist/lib/index.d.mts.map +1 -1
  33. package/dist/lib/index.mjs +1 -1
  34. package/dist/lib/index.mjs.map +1 -1
  35. package/dist/lib/integrations/nextjs/app-router.cjs.map +1 -1
  36. package/dist/lib/integrations/nextjs/app-router.mjs.map +1 -1
  37. package/dist/lib/integrations/node-express/index.cjs.map +1 -1
  38. package/dist/lib/integrations/node-express/index.mjs.map +1 -1
  39. package/dist/lib/integrations/node-http/index.cjs.map +1 -1
  40. package/dist/lib/integrations/node-http/index.d.cts.map +1 -1
  41. package/dist/lib/integrations/node-http/index.d.mts.map +1 -1
  42. package/dist/lib/integrations/node-http/index.mjs.map +1 -1
  43. package/dist/lib/integrations/shared.cjs.map +1 -1
  44. package/dist/lib/integrations/shared.d.cts +1 -1
  45. package/dist/lib/integrations/shared.d.cts.map +1 -1
  46. package/dist/lib/integrations/shared.d.mts +1 -1
  47. package/dist/lib/integrations/shared.d.mts.map +1 -1
  48. package/dist/lib/integrations/shared.mjs.map +1 -1
  49. package/dist/lib/runtime/agent-integrations/langgraph/agent.d.cts +1 -1
  50. package/dist/lib/runtime/copilot-runtime.cjs +2 -16
  51. package/dist/lib/runtime/copilot-runtime.cjs.map +1 -1
  52. package/dist/lib/runtime/copilot-runtime.d.cts +2 -2
  53. package/dist/lib/runtime/copilot-runtime.d.cts.map +1 -1
  54. package/dist/lib/runtime/copilot-runtime.d.mts +2 -2
  55. package/dist/lib/runtime/copilot-runtime.d.mts.map +1 -1
  56. package/dist/lib/runtime/copilot-runtime.mjs +3 -17
  57. package/dist/lib/runtime/copilot-runtime.mjs.map +1 -1
  58. package/dist/package.cjs +9 -3
  59. package/dist/package.mjs +9 -3
  60. package/dist/service-adapters/anthropic/anthropic-adapter.cjs.map +1 -1
  61. package/dist/service-adapters/anthropic/anthropic-adapter.d.cts.map +1 -1
  62. package/dist/service-adapters/anthropic/anthropic-adapter.d.mts.map +1 -1
  63. package/dist/service-adapters/anthropic/anthropic-adapter.mjs.map +1 -1
  64. package/dist/service-adapters/shared/sdk-client-utils.cjs.map +1 -1
  65. package/dist/service-adapters/shared/sdk-client-utils.d.cts.map +1 -1
  66. package/dist/service-adapters/shared/sdk-client-utils.d.mts.map +1 -1
  67. package/dist/service-adapters/shared/sdk-client-utils.mjs.map +1 -1
  68. package/dist/v2/index.cjs +7 -0
  69. package/dist/v2/index.d.cts +6 -5
  70. package/dist/v2/index.d.mts +6 -5
  71. package/dist/v2/index.mjs +3 -3
  72. package/dist/v2/runtime/core/channel-manager.d.cts +1 -1
  73. package/dist/v2/runtime/core/channel-manager.d.mts +2 -1
  74. package/dist/v2/runtime/core/channel-manager.d.mts.map +1 -1
  75. package/dist/v2/runtime/core/debug-event-bus.cjs +22 -0
  76. package/dist/v2/runtime/core/debug-event-bus.cjs.map +1 -1
  77. package/dist/v2/runtime/core/debug-event-bus.d.cts +1 -1
  78. package/dist/v2/runtime/core/debug-event-bus.d.mts +1 -1
  79. package/dist/v2/runtime/core/debug-event-bus.mjs +22 -1
  80. package/dist/v2/runtime/core/debug-event-bus.mjs.map +1 -1
  81. package/dist/v2/runtime/core/runtime.cjs +10 -5
  82. package/dist/v2/runtime/core/runtime.cjs.map +1 -1
  83. package/dist/v2/runtime/core/runtime.d.cts +29 -3
  84. package/dist/v2/runtime/core/runtime.d.cts.map +1 -1
  85. package/dist/v2/runtime/core/runtime.d.mts +28 -2
  86. package/dist/v2/runtime/core/runtime.d.mts.map +1 -1
  87. package/dist/v2/runtime/core/runtime.mjs +11 -6
  88. package/dist/v2/runtime/core/runtime.mjs.map +1 -1
  89. package/dist/v2/runtime/handlers/handle-connect.cjs +3 -2
  90. package/dist/v2/runtime/handlers/handle-connect.cjs.map +1 -1
  91. package/dist/v2/runtime/handlers/handle-connect.mjs +3 -2
  92. package/dist/v2/runtime/handlers/handle-connect.mjs.map +1 -1
  93. package/dist/v2/runtime/handlers/handle-debug-events.cjs +2 -1
  94. package/dist/v2/runtime/handlers/handle-debug-events.cjs.map +1 -1
  95. package/dist/v2/runtime/handlers/handle-debug-events.mjs +3 -1
  96. package/dist/v2/runtime/handlers/handle-debug-events.mjs.map +1 -1
  97. package/dist/v2/runtime/handlers/handle-run.cjs +5 -3
  98. package/dist/v2/runtime/handlers/handle-run.cjs.map +1 -1
  99. package/dist/v2/runtime/handlers/handle-run.mjs +5 -3
  100. package/dist/v2/runtime/handlers/handle-run.mjs.map +1 -1
  101. package/dist/v2/runtime/handlers/handle-suggest.cjs +4 -3
  102. package/dist/v2/runtime/handlers/handle-suggest.cjs.map +1 -1
  103. package/dist/v2/runtime/handlers/handle-suggest.mjs +5 -4
  104. package/dist/v2/runtime/handlers/handle-suggest.mjs.map +1 -1
  105. package/dist/v2/runtime/handlers/shared/cloud-telemetry.cjs +31 -0
  106. package/dist/v2/runtime/handlers/shared/cloud-telemetry.cjs.map +1 -0
  107. package/dist/v2/runtime/handlers/shared/cloud-telemetry.mjs +30 -0
  108. package/dist/v2/runtime/handlers/shared/cloud-telemetry.mjs.map +1 -0
  109. package/dist/v2/runtime/handlers/shared/sse-keep-alive.cjs +69 -0
  110. package/dist/v2/runtime/handlers/shared/sse-keep-alive.cjs.map +1 -0
  111. package/dist/v2/runtime/handlers/shared/sse-keep-alive.mjs +67 -0
  112. package/dist/v2/runtime/handlers/shared/sse-keep-alive.mjs.map +1 -0
  113. package/dist/v2/runtime/handlers/shared/sse-response.cjs +35 -4
  114. package/dist/v2/runtime/handlers/shared/sse-response.cjs.map +1 -1
  115. package/dist/v2/runtime/handlers/shared/sse-response.mjs +35 -4
  116. package/dist/v2/runtime/handlers/shared/sse-response.mjs.map +1 -1
  117. package/dist/v2/runtime/handlers/sse/connect.cjs +1 -0
  118. package/dist/v2/runtime/handlers/sse/connect.cjs.map +1 -1
  119. package/dist/v2/runtime/handlers/sse/connect.mjs +1 -0
  120. package/dist/v2/runtime/handlers/sse/connect.mjs.map +1 -1
  121. package/dist/v2/runtime/handlers/sse/run.cjs +2 -0
  122. package/dist/v2/runtime/handlers/sse/run.cjs.map +1 -1
  123. package/dist/v2/runtime/handlers/sse/run.mjs +2 -0
  124. package/dist/v2/runtime/handlers/sse/run.mjs.map +1 -1
  125. package/dist/v2/runtime/index.d.cts +3 -3
  126. package/dist/v2/runtime/index.d.mts +3 -3
  127. package/dist/v2/runtime/intelligence-platform/client.d.cts +1 -1
  128. package/dist/v2/runtime/intelligence-platform/client.d.mts +1 -1
  129. package/dist/v2/runtime/intelligence-platform/skill-registry/archive.cjs +132 -0
  130. package/dist/v2/runtime/intelligence-platform/skill-registry/archive.cjs.map +1 -0
  131. package/dist/v2/runtime/intelligence-platform/skill-registry/archive.d.cts +11 -0
  132. package/dist/v2/runtime/intelligence-platform/skill-registry/archive.d.cts.map +1 -0
  133. package/dist/v2/runtime/intelligence-platform/skill-registry/archive.d.mts +11 -0
  134. package/dist/v2/runtime/intelligence-platform/skill-registry/archive.d.mts.map +1 -0
  135. package/dist/v2/runtime/intelligence-platform/skill-registry/archive.mjs +128 -0
  136. package/dist/v2/runtime/intelligence-platform/skill-registry/archive.mjs.map +1 -0
  137. package/dist/v2/runtime/intelligence-platform/skill-registry/config.cjs +48 -0
  138. package/dist/v2/runtime/intelligence-platform/skill-registry/config.cjs.map +1 -0
  139. package/dist/v2/runtime/intelligence-platform/skill-registry/config.d.cts +27 -0
  140. package/dist/v2/runtime/intelligence-platform/skill-registry/config.d.cts.map +1 -0
  141. package/dist/v2/runtime/intelligence-platform/skill-registry/config.d.mts +27 -0
  142. package/dist/v2/runtime/intelligence-platform/skill-registry/config.d.mts.map +1 -0
  143. package/dist/v2/runtime/intelligence-platform/skill-registry/config.mjs +48 -0
  144. package/dist/v2/runtime/intelligence-platform/skill-registry/config.mjs.map +1 -0
  145. package/dist/v2/runtime/intelligence-platform/skill-registry/errors.cjs +11 -0
  146. package/dist/v2/runtime/intelligence-platform/skill-registry/errors.cjs.map +1 -0
  147. package/dist/v2/runtime/intelligence-platform/skill-registry/errors.d.cts +8 -0
  148. package/dist/v2/runtime/intelligence-platform/skill-registry/errors.d.cts.map +1 -0
  149. package/dist/v2/runtime/intelligence-platform/skill-registry/errors.d.mts +8 -0
  150. package/dist/v2/runtime/intelligence-platform/skill-registry/errors.d.mts.map +1 -0
  151. package/dist/v2/runtime/intelligence-platform/skill-registry/errors.mjs +11 -0
  152. package/dist/v2/runtime/intelligence-platform/skill-registry/errors.mjs.map +1 -0
  153. package/dist/v2/runtime/intelligence-platform/skill-registry/index.d.cts +8 -0
  154. package/dist/v2/runtime/intelligence-platform/skill-registry/index.d.mts +8 -0
  155. package/dist/v2/runtime/intelligence-platform/skill-registry/registry.cjs +132 -0
  156. package/dist/v2/runtime/intelligence-platform/skill-registry/registry.cjs.map +1 -0
  157. package/dist/v2/runtime/intelligence-platform/skill-registry/registry.d.cts +31 -0
  158. package/dist/v2/runtime/intelligence-platform/skill-registry/registry.d.cts.map +1 -0
  159. package/dist/v2/runtime/intelligence-platform/skill-registry/registry.d.mts +31 -0
  160. package/dist/v2/runtime/intelligence-platform/skill-registry/registry.d.mts.map +1 -0
  161. package/dist/v2/runtime/intelligence-platform/skill-registry/registry.mjs +132 -0
  162. package/dist/v2/runtime/intelligence-platform/skill-registry/registry.mjs.map +1 -0
  163. package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.cjs +42 -0
  164. package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.cjs.map +1 -0
  165. package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.d.cts +13 -0
  166. package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.d.cts.map +1 -0
  167. package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.d.mts +13 -0
  168. package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.d.mts.map +1 -0
  169. package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.mjs +39 -0
  170. package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.mjs.map +1 -0
  171. package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.cjs +93 -0
  172. package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.cjs.map +1 -0
  173. package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.d.cts +28 -0
  174. package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.d.cts.map +1 -0
  175. package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.d.mts +28 -0
  176. package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.d.mts.map +1 -0
  177. package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.mjs +92 -0
  178. package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.mjs.map +1 -0
  179. package/dist/v2/runtime/runner/agent-runner.d.cts +1 -1
  180. package/dist/v2/runtime/runner/in-memory.d.cts +1 -1
  181. package/dist/v2/runtime/runner/index.d.cts +2 -2
  182. package/dist/v2/runtime/runner/index.d.mts +2 -2
  183. package/dist/v2/runtime/runner/index.mjs +2 -2
  184. package/dist/v2/runtime/runner/intelligence.d.cts +1 -1
  185. package/dist/v2/runtime/telemetry/events.d.cts +12 -0
  186. package/dist/v2/runtime/telemetry/events.d.cts.map +1 -1
  187. package/dist/v2/runtime/telemetry/events.d.mts +12 -0
  188. package/dist/v2/runtime/telemetry/events.d.mts.map +1 -1
  189. package/dist/v2/runtime/telemetry/telemetry-client.cjs +3 -2
  190. package/dist/v2/runtime/telemetry/telemetry-client.cjs.map +1 -1
  191. package/dist/v2/runtime/telemetry/telemetry-client.d.cts.map +1 -1
  192. package/dist/v2/runtime/telemetry/telemetry-client.d.mts.map +1 -1
  193. package/dist/v2/runtime/telemetry/telemetry-client.mjs +7 -6
  194. package/dist/v2/runtime/telemetry/telemetry-client.mjs.map +1 -1
  195. package/package.json +9 -3
@@ -4,6 +4,8 @@ const require_state_delta = require('./state-delta.cjs');
4
4
  const require_usage = require('./converters/usage.cjs');
5
5
  const require_aisdk = require('./converters/aisdk.cjs');
6
6
  const require_tanstack = require('./converters/tanstack.cjs');
7
+ const require_registry = require('../v2/runtime/intelligence-platform/skill-registry/registry.cjs');
8
+ const require_learned_skills = require('./learned-skills.cjs');
7
9
  let _ai_sdk_openai = require("@ai-sdk/openai");
8
10
  let _copilotkit_shared = require("@copilotkit/shared");
9
11
  let _ai_sdk_google = require("@ai-sdk/google");
@@ -59,6 +61,38 @@ function resolveModel(spec, apiKey) {
59
61
  }
60
62
  }
61
63
  /**
64
+ * Which vendor a model specifier will actually reach, as a closed vocabulary.
65
+ *
66
+ * `resolveModel` above is the only place this runtime builds a provider, so it
67
+ * is the only place that knows the endpoint. Once built, the endpoint is gone:
68
+ * an AI SDK model reports `provider: "openai.responses"` whether it points at
69
+ * api.openai.com, Azure, OpenRouter or a laptop, and its base URL survives
70
+ * only inside a closure that the public `LanguageModelV3` type does not
71
+ * expose. Azure's own migration guide tells customers to use that same OpenAI
72
+ * client, so the case we are blindest to is the common one.
73
+ *
74
+ * A caller who hands us an already-built LanguageModel gets `unknown`. Nobody
75
+ * can recover the host from it, and saying so is more useful than guessing
76
+ * `openai` from a provider label that means only "speaks the OpenAI wire".
77
+ *
78
+ * The branches below mirror `resolveModel`'s switch and must change with it.
79
+ * `model-host-class.test.ts` walks every provider that switch accepts and
80
+ * fails if one lands here as `unknown`.
81
+ */
82
+ function classifyModelSpec(spec) {
83
+ if (typeof spec !== "string") return "unknown";
84
+ switch (spec.replace("/", ":").trim().split(":")[0]?.toLowerCase()) {
85
+ case "openai": return (0, _copilotkit_shared.classifyModelHost)(process.env.OPENAI_BASE_URL, "openai");
86
+ case "anthropic": return (0, _copilotkit_shared.classifyModelHost)(process.env.ANTHROPIC_BASE_URL, "anthropic");
87
+ case "google":
88
+ case "gemini":
89
+ case "google-gemini": return (0, _copilotkit_shared.classifyModelHost)(process.env.GOOGLE_GENERATIVE_AI_BASE_URL, "google");
90
+ case "minimax": return (0, _copilotkit_shared.classifyModelHost)(process.env.MINIMAX_BASE_URL || "https://api.minimax.io/v1", "minimax");
91
+ case "vertex": return "vertex";
92
+ default: return "unknown";
93
+ }
94
+ }
95
+ /**
62
96
  * Thrown by `AgentFactoryContext.interrupt()` on a fresh (non-resume) run to
63
97
  * pause the factory. Caught in `runFactory` and translated into a RUN_FINISHED
64
98
  * event carrying `outcome:{type:"interrupt",interrupts}`. Not a real error.
@@ -388,6 +422,8 @@ var BuiltInAgent = class BuiltInAgent extends _ag_ui_client.AbstractAgent {
388
422
  constructor(config) {
389
423
  super();
390
424
  this.config = config;
425
+ this.skillRegistry = config.learnedSkills === void 0 ? void 0 : new require_registry.SkillRegistry(config.learnedSkills);
426
+ this.modelHostClass = isFactoryConfig(config) ? "unknown" : classifyModelSpec(config.model);
391
427
  }
392
428
  /**
393
429
  * Check if a property can be overridden by forwardedProps
@@ -551,6 +587,15 @@ This is state from the application that you can edit by calling AGUISendStateSna
551
587
  subscriber.next(reasoningEnd);
552
588
  };
553
589
  try {
590
+ const learnedSkills = await require_learned_skills.prepareLearnedSkills(this.skillRegistry, abortController.signal);
591
+ abortController.signal.throwIfAborted();
592
+ if (learnedSkills.catalog) {
593
+ messages.unshift({
594
+ role: "system",
595
+ content: learnedSkills.catalog
596
+ });
597
+ if (config.maxSteps === void 0) streamTextParams.stopWhen = (0, ai.stepCountIs)(10);
598
+ }
554
599
  streamTextParams.tools = {
555
600
  ...streamTextParams.tools,
556
601
  AGUISendStateSnapshot: (0, ai.tool)({
@@ -584,6 +629,7 @@ This is state from the application that you can edit by calling AGUISendStateSna
584
629
  };
585
630
  if (config.mcpClients && config.mcpClients.length > 0) for (const client of config.mcpClients) {
586
631
  const mcpTools = await client.tools();
632
+ abortController.signal.throwIfAborted();
587
633
  streamTextParams.tools = {
588
634
  ...streamTextParams.tools,
589
635
  ...mcpTools
@@ -595,6 +641,7 @@ This is state from the application that you can edit by calling AGUISendStateSna
595
641
  if (serverConfig.type === "http") transport = new _modelcontextprotocol_sdk_client_streamableHttp_js.StreamableHTTPClientTransport(new URL(serverConfig.url), serverConfig.options);
596
642
  else if (serverConfig.type === "sse") {
597
643
  const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
644
+ abortController.signal.throwIfAborted();
598
645
  transport = new SSEClientTransport(new URL(serverConfig.url), serverConfig.headers ? { requestInit: { headers: serverConfig.headers } } : void 0);
599
646
  }
600
647
  if (transport) {
@@ -602,21 +649,36 @@ This is state from the application that you can edit by calling AGUISendStateSna
602
649
  try {
603
650
  mcpClient = await (0, _ai_sdk_mcp.createMCPClient)({ transport });
604
651
  } catch (err) {
652
+ abortController.signal.throwIfAborted();
605
653
  console.error(`[CopilotKit] MCP server ${serverConfig.url} failed to connect — skipping it for this run:`, err);
606
654
  continue;
607
655
  }
656
+ if (abortController.signal.aborted) {
657
+ await mcpClient.close();
658
+ abortController.signal.throwIfAborted();
659
+ }
608
660
  mcpClients.push(mcpClient);
609
661
  try {
610
662
  const mcpTools = await mcpClient.tools();
663
+ abortController.signal.throwIfAborted();
611
664
  streamTextParams.tools = {
612
665
  ...streamTextParams.tools,
613
666
  ...mcpTools
614
667
  };
615
668
  } catch (err) {
669
+ abortController.signal.throwIfAborted();
616
670
  console.error(`[CopilotKit] MCP server ${serverConfig.url} tools() failed — skipping its tools for this run:`, err);
617
671
  }
618
672
  }
619
673
  }
674
+ if (this.skillRegistry) {
675
+ require_learned_skills.assertNoSkillToolConflicts(streamTextParams.tools ?? {});
676
+ streamTextParams.tools = {
677
+ ...streamTextParams.tools,
678
+ ...learnedSkills.tools
679
+ };
680
+ }
681
+ abortController.signal.throwIfAborted();
620
682
  const response = (0, ai.streamText)({
621
683
  ...streamTextParams,
622
684
  abortSignal: abortController.signal
@@ -893,11 +955,13 @@ This is state from the application that you can edit by calling AGUISendStateSna
893
955
  subscriber.error(error);
894
956
  }
895
957
  } finally {
896
- this.abortController = void 0;
958
+ if (this.abortController === abortController) this.abortController = void 0;
897
959
  await Promise.all(mcpClients.map((client) => client.close()));
898
960
  }
899
961
  })();
900
962
  return () => {
963
+ abortController.abort();
964
+ if (this.abortController === abortController) this.abortController = void 0;
901
965
  Promise.all(mcpClients.map((client) => client.close())).catch(() => {});
902
966
  };
903
967
  });
@@ -936,13 +1000,16 @@ This is state from the application that you can edit by calling AGUISendStateSna
936
1000
  ...input,
937
1001
  messages: [...input.messages, ...resumeToolMessages]
938
1002
  } : input;
939
- const factoryCtx = {
940
- ...ctx,
941
- input: factoryInput
942
- };
943
1003
  (async () => {
944
1004
  const runFinishedDetails = {};
945
1005
  try {
1006
+ const learnedSkills = await require_learned_skills.prepareLearnedSkills(this.skillRegistry, controller.signal);
1007
+ controller.signal.throwIfAborted();
1008
+ const factoryCtx = {
1009
+ ...ctx,
1010
+ input: factoryInput,
1011
+ learnedSkills
1012
+ };
946
1013
  let events;
947
1014
  let customRunFinishedEvent;
948
1015
  const pendingInterrupts = [];
@@ -954,7 +1021,7 @@ This is state from the application that you can edit by calling AGUISendStateSna
954
1021
  events = require_tanstack.convertTanStackStream(await config.factory(factoryCtx), controller.signal, pendingInterrupts, input.state, runFinishedDetails);
955
1022
  break;
956
1023
  case "custom":
957
- events = await config.factory(ctx);
1024
+ events = await config.factory(factoryCtx);
958
1025
  break;
959
1026
  default: {
960
1027
  const _exhaustive = config;
@@ -1007,16 +1074,22 @@ This is state from the application that you can edit by calling AGUISendStateSna
1007
1074
  subscriber.error(error);
1008
1075
  }
1009
1076
  } finally {
1010
- this.abortController = void 0;
1077
+ if (this.abortController === controller) this.abortController = void 0;
1011
1078
  }
1012
1079
  })();
1013
1080
  return () => {
1014
1081
  controller.abort();
1082
+ if (this.abortController === controller) this.abortController = void 0;
1015
1083
  };
1016
1084
  });
1017
1085
  }
1018
1086
  clone() {
1019
- const cloned = new BuiltInAgent(this.config);
1087
+ const cloned = new BuiltInAgent({
1088
+ ...this.config,
1089
+ learnedSkills: void 0
1090
+ });
1091
+ cloned.config = this.config;
1092
+ cloned.skillRegistry = this.skillRegistry;
1020
1093
  cloned.middlewares = [...this.middlewares];
1021
1094
  return cloned;
1022
1095
  }
@@ -1038,6 +1111,7 @@ var BasicAgent = class extends BuiltInAgent {
1038
1111
  exports.BasicAgent = BasicAgent;
1039
1112
  exports.BuiltInAgent = BuiltInAgent;
1040
1113
  exports.InterruptSignal = InterruptSignal;
1114
+ exports.classifyModelSpec = classifyModelSpec;
1041
1115
  exports.convertJsonSchemaToZodSchema = convertJsonSchemaToZodSchema;
1042
1116
  exports.convertMessagesToVercelAISDKMessages = convertMessagesToVercelAISDKMessages;
1043
1117
  exports.convertToolDefinitionsToVercelAITools = convertToolDefinitionsToVercelAITools;