@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.
- package/dist/agent/index.cjs +82 -8
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +55 -8
- package/dist/agent/index.d.cts.map +1 -1
- package/dist/agent/index.d.mts +53 -6
- package/dist/agent/index.d.mts.map +1 -1
- package/dist/agent/index.mjs +83 -10
- package/dist/agent/index.mjs.map +1 -1
- package/dist/agent/learned-skills.cjs +77 -0
- package/dist/agent/learned-skills.cjs.map +1 -0
- package/dist/agent/learned-skills.d.cts +16 -0
- package/dist/agent/learned-skills.d.cts.map +1 -0
- package/dist/agent/learned-skills.d.mts +16 -0
- package/dist/agent/learned-skills.d.mts.map +1 -0
- package/dist/agent/learned-skills.mjs +75 -0
- package/dist/agent/learned-skills.mjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +27 -20
- package/dist/index.d.mts +27 -20
- package/dist/index.mjs +1 -1
- package/dist/internal/learned-skills.cjs +22 -0
- package/dist/internal/learned-skills.d.cts +10 -0
- package/dist/internal/learned-skills.d.mts +10 -0
- package/dist/internal/learned-skills.mjs +10 -0
- package/dist/langgraph.d.cts +3 -1
- package/dist/langgraph.d.mts +3 -1
- package/dist/lib/index.cjs +1 -1
- package/dist/lib/index.cjs.map +1 -1
- package/dist/lib/index.d.cts +2 -2
- package/dist/lib/index.d.cts.map +1 -1
- package/dist/lib/index.d.mts +2 -2
- package/dist/lib/index.d.mts.map +1 -1
- package/dist/lib/index.mjs +1 -1
- package/dist/lib/index.mjs.map +1 -1
- package/dist/lib/integrations/nextjs/app-router.cjs.map +1 -1
- package/dist/lib/integrations/nextjs/app-router.mjs.map +1 -1
- package/dist/lib/integrations/node-express/index.cjs.map +1 -1
- package/dist/lib/integrations/node-express/index.mjs.map +1 -1
- package/dist/lib/integrations/node-http/index.cjs.map +1 -1
- package/dist/lib/integrations/node-http/index.d.cts.map +1 -1
- package/dist/lib/integrations/node-http/index.d.mts.map +1 -1
- package/dist/lib/integrations/node-http/index.mjs.map +1 -1
- package/dist/lib/integrations/shared.cjs.map +1 -1
- package/dist/lib/integrations/shared.d.cts +1 -1
- package/dist/lib/integrations/shared.d.cts.map +1 -1
- package/dist/lib/integrations/shared.d.mts +1 -1
- package/dist/lib/integrations/shared.d.mts.map +1 -1
- package/dist/lib/integrations/shared.mjs.map +1 -1
- package/dist/lib/runtime/agent-integrations/langgraph/agent.d.cts +1 -1
- package/dist/lib/runtime/copilot-runtime.cjs +2 -16
- package/dist/lib/runtime/copilot-runtime.cjs.map +1 -1
- package/dist/lib/runtime/copilot-runtime.d.cts +2 -2
- package/dist/lib/runtime/copilot-runtime.d.cts.map +1 -1
- package/dist/lib/runtime/copilot-runtime.d.mts +2 -2
- package/dist/lib/runtime/copilot-runtime.d.mts.map +1 -1
- package/dist/lib/runtime/copilot-runtime.mjs +3 -17
- package/dist/lib/runtime/copilot-runtime.mjs.map +1 -1
- package/dist/package.cjs +9 -3
- package/dist/package.mjs +9 -3
- package/dist/service-adapters/anthropic/anthropic-adapter.cjs.map +1 -1
- package/dist/service-adapters/anthropic/anthropic-adapter.d.cts.map +1 -1
- package/dist/service-adapters/anthropic/anthropic-adapter.d.mts.map +1 -1
- package/dist/service-adapters/anthropic/anthropic-adapter.mjs.map +1 -1
- package/dist/service-adapters/shared/sdk-client-utils.cjs.map +1 -1
- package/dist/service-adapters/shared/sdk-client-utils.d.cts.map +1 -1
- package/dist/service-adapters/shared/sdk-client-utils.d.mts.map +1 -1
- package/dist/service-adapters/shared/sdk-client-utils.mjs.map +1 -1
- package/dist/v2/index.cjs +7 -0
- package/dist/v2/index.d.cts +6 -5
- package/dist/v2/index.d.mts +6 -5
- package/dist/v2/index.mjs +3 -3
- package/dist/v2/runtime/core/channel-manager.d.cts +1 -1
- package/dist/v2/runtime/core/channel-manager.d.mts +2 -1
- package/dist/v2/runtime/core/channel-manager.d.mts.map +1 -1
- package/dist/v2/runtime/core/debug-event-bus.cjs +22 -0
- package/dist/v2/runtime/core/debug-event-bus.cjs.map +1 -1
- package/dist/v2/runtime/core/debug-event-bus.d.cts +1 -1
- package/dist/v2/runtime/core/debug-event-bus.d.mts +1 -1
- package/dist/v2/runtime/core/debug-event-bus.mjs +22 -1
- package/dist/v2/runtime/core/debug-event-bus.mjs.map +1 -1
- package/dist/v2/runtime/core/runtime.cjs +10 -5
- package/dist/v2/runtime/core/runtime.cjs.map +1 -1
- package/dist/v2/runtime/core/runtime.d.cts +29 -3
- package/dist/v2/runtime/core/runtime.d.cts.map +1 -1
- package/dist/v2/runtime/core/runtime.d.mts +28 -2
- package/dist/v2/runtime/core/runtime.d.mts.map +1 -1
- package/dist/v2/runtime/core/runtime.mjs +11 -6
- package/dist/v2/runtime/core/runtime.mjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-connect.cjs +3 -2
- package/dist/v2/runtime/handlers/handle-connect.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-connect.mjs +3 -2
- package/dist/v2/runtime/handlers/handle-connect.mjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-debug-events.cjs +2 -1
- package/dist/v2/runtime/handlers/handle-debug-events.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-debug-events.mjs +3 -1
- package/dist/v2/runtime/handlers/handle-debug-events.mjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-run.cjs +5 -3
- package/dist/v2/runtime/handlers/handle-run.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-run.mjs +5 -3
- package/dist/v2/runtime/handlers/handle-run.mjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-suggest.cjs +4 -3
- package/dist/v2/runtime/handlers/handle-suggest.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-suggest.mjs +5 -4
- package/dist/v2/runtime/handlers/handle-suggest.mjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/cloud-telemetry.cjs +31 -0
- package/dist/v2/runtime/handlers/shared/cloud-telemetry.cjs.map +1 -0
- package/dist/v2/runtime/handlers/shared/cloud-telemetry.mjs +30 -0
- package/dist/v2/runtime/handlers/shared/cloud-telemetry.mjs.map +1 -0
- package/dist/v2/runtime/handlers/shared/sse-keep-alive.cjs +69 -0
- package/dist/v2/runtime/handlers/shared/sse-keep-alive.cjs.map +1 -0
- package/dist/v2/runtime/handlers/shared/sse-keep-alive.mjs +67 -0
- package/dist/v2/runtime/handlers/shared/sse-keep-alive.mjs.map +1 -0
- package/dist/v2/runtime/handlers/shared/sse-response.cjs +35 -4
- package/dist/v2/runtime/handlers/shared/sse-response.cjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/sse-response.mjs +35 -4
- package/dist/v2/runtime/handlers/shared/sse-response.mjs.map +1 -1
- package/dist/v2/runtime/handlers/sse/connect.cjs +1 -0
- package/dist/v2/runtime/handlers/sse/connect.cjs.map +1 -1
- package/dist/v2/runtime/handlers/sse/connect.mjs +1 -0
- package/dist/v2/runtime/handlers/sse/connect.mjs.map +1 -1
- package/dist/v2/runtime/handlers/sse/run.cjs +2 -0
- package/dist/v2/runtime/handlers/sse/run.cjs.map +1 -1
- package/dist/v2/runtime/handlers/sse/run.mjs +2 -0
- package/dist/v2/runtime/handlers/sse/run.mjs.map +1 -1
- package/dist/v2/runtime/index.d.cts +3 -3
- package/dist/v2/runtime/index.d.mts +3 -3
- package/dist/v2/runtime/intelligence-platform/client.d.cts +1 -1
- package/dist/v2/runtime/intelligence-platform/client.d.mts +1 -1
- package/dist/v2/runtime/intelligence-platform/skill-registry/archive.cjs +132 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/archive.cjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/archive.d.cts +11 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/archive.d.cts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/archive.d.mts +11 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/archive.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/archive.mjs +128 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/archive.mjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/config.cjs +48 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/config.cjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/config.d.cts +27 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/config.d.cts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/config.d.mts +27 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/config.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/config.mjs +48 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/config.mjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/errors.cjs +11 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/errors.cjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/errors.d.cts +8 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/errors.d.cts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/errors.d.mts +8 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/errors.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/errors.mjs +11 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/errors.mjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/index.d.cts +8 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/index.d.mts +8 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/registry.cjs +132 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/registry.cjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/registry.d.cts +31 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/registry.d.cts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/registry.d.mts +31 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/registry.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/registry.mjs +132 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/registry.mjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.cjs +42 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.cjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.d.cts +13 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.d.cts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.d.mts +13 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.mjs +39 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/skill-content.mjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.cjs +93 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.cjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.d.cts +28 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.d.cts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.d.mts +28 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.mjs +92 -0
- package/dist/v2/runtime/intelligence-platform/skill-registry/snapshot.mjs.map +1 -0
- package/dist/v2/runtime/runner/agent-runner.d.cts +1 -1
- package/dist/v2/runtime/runner/in-memory.d.cts +1 -1
- package/dist/v2/runtime/runner/index.d.cts +2 -2
- package/dist/v2/runtime/runner/index.d.mts +2 -2
- package/dist/v2/runtime/runner/index.mjs +2 -2
- package/dist/v2/runtime/runner/intelligence.d.cts +1 -1
- package/dist/v2/runtime/telemetry/events.d.cts +12 -0
- package/dist/v2/runtime/telemetry/events.d.cts.map +1 -1
- package/dist/v2/runtime/telemetry/events.d.mts +12 -0
- package/dist/v2/runtime/telemetry/events.d.mts.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.cjs +3 -2
- package/dist/v2/runtime/telemetry/telemetry-client.cjs.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.d.cts.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.d.mts.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.mjs +7 -6
- package/dist/v2/runtime/telemetry/telemetry-client.mjs.map +1 -1
- package/package.json +9 -3
package/dist/agent/index.d.cts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
|
|
2
|
+
import { BuiltInAgentLearnedSkills, BuiltInAgentLearnedSkillsOptions } from "./learned-skills.cjs";
|
|
2
3
|
import { convertAISDKStream } from "./converters/aisdk.cjs";
|
|
3
4
|
import { TanStackChatMessage, TanStackInputResult, convertInputToTanStackAI, convertTanStackStream } from "./converters/tanstack.cjs";
|
|
4
|
-
import {
|
|
5
|
-
import { Observable } from "rxjs";
|
|
6
|
-
import { InferSchemaOutput, StandardSchemaV1 } from "@copilotkit/shared";
|
|
5
|
+
import { InferSchemaOutput, ModelHostClass, StandardSchemaV1 } from "@copilotkit/shared";
|
|
7
6
|
import { AbstractAgent, BaseEvent, Interrupt, Message, ResumeEntry, RunAgentInput } from "@ag-ui/client";
|
|
7
|
+
import { Observable } from "rxjs";
|
|
8
|
+
import { LanguageModel, ModelMessage, ToolChoice, ToolSet } from "ai";
|
|
8
9
|
import { AgentCapabilities } from "@ag-ui/core";
|
|
9
10
|
import { z } from "zod";
|
|
10
11
|
import { StreamableHTTPClientTransportOptions } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
@@ -73,6 +74,26 @@ interface MCPClientProvider {
|
|
|
73
74
|
* @returns LanguageModel instance
|
|
74
75
|
*/
|
|
75
76
|
declare function resolveModel(spec: ModelSpecifier, apiKey?: string): LanguageModel;
|
|
77
|
+
/**
|
|
78
|
+
* Which vendor a model specifier will actually reach, as a closed vocabulary.
|
|
79
|
+
*
|
|
80
|
+
* `resolveModel` above is the only place this runtime builds a provider, so it
|
|
81
|
+
* is the only place that knows the endpoint. Once built, the endpoint is gone:
|
|
82
|
+
* an AI SDK model reports `provider: "openai.responses"` whether it points at
|
|
83
|
+
* api.openai.com, Azure, OpenRouter or a laptop, and its base URL survives
|
|
84
|
+
* only inside a closure that the public `LanguageModelV3` type does not
|
|
85
|
+
* expose. Azure's own migration guide tells customers to use that same OpenAI
|
|
86
|
+
* client, so the case we are blindest to is the common one.
|
|
87
|
+
*
|
|
88
|
+
* A caller who hands us an already-built LanguageModel gets `unknown`. Nobody
|
|
89
|
+
* can recover the host from it, and saying so is more useful than guessing
|
|
90
|
+
* `openai` from a provider label that means only "speaks the OpenAI wire".
|
|
91
|
+
*
|
|
92
|
+
* The branches below mirror `resolveModel`'s switch and must change with it.
|
|
93
|
+
* `model-host-class.test.ts` walks every provider that switch accepts and
|
|
94
|
+
* fails if one lands here as `unknown`.
|
|
95
|
+
*/
|
|
96
|
+
declare function classifyModelSpec(spec: ModelSpecifier): ModelHostClass;
|
|
76
97
|
/**
|
|
77
98
|
* Thrown by `AgentFactoryContext.interrupt()` on a fresh (non-resume) run to
|
|
78
99
|
* pause the factory. Caught in `runFactory` and translated into a RUN_FINISHED
|
|
@@ -98,9 +119,8 @@ interface ToolDefinition<TParameters extends StandardSchemaV1 = StandardSchemaV1
|
|
|
98
119
|
* When true, calling this tool pauses the run and emits a standard AG-UI
|
|
99
120
|
* interrupt (RUN_FINISHED outcome:interrupt) keyed by the tool call's id.
|
|
100
121
|
* The human response (resume payload) is injected as this tool call's result
|
|
101
|
-
* on the resume run. Interrupt tools must NOT define `execute
|
|
102
|
-
*
|
|
103
|
-
* would try to continue past the unexecuted tool call instead of pausing.
|
|
122
|
+
* on the resume run. Interrupt tools must NOT define `execute`. The AI SDK
|
|
123
|
+
* pauses when a tool call has no result, even with a multi-step limit.
|
|
104
124
|
*/
|
|
105
125
|
interrupt?: boolean;
|
|
106
126
|
/** Optional categorical reason surfaced on the Interrupt (default: "tool_call"). */
|
|
@@ -167,6 +187,8 @@ declare function convertToolDefinitionsToVercelAITools(tools: ToolDefinition[]):
|
|
|
167
187
|
* Context passed to the user-supplied factory function in factory mode.
|
|
168
188
|
*/
|
|
169
189
|
interface AgentFactoryContext {
|
|
190
|
+
/** Verified catalog and AI SDK tools for this run; empty when disabled or no skills exist. */
|
|
191
|
+
learnedSkills: BuiltInAgentLearnedSkills;
|
|
170
192
|
input: RunAgentInput;
|
|
171
193
|
/**
|
|
172
194
|
* Prefer `abortSignal` for most use cases (AI SDK, fetch, custom backends).
|
|
@@ -185,12 +207,16 @@ interface AgentFactoryContext {
|
|
|
185
207
|
*/
|
|
186
208
|
interrupt: (interrupts: Interrupt[]) => Promise<ResumeEntry[]>;
|
|
187
209
|
}
|
|
210
|
+
/** Public name that avoids the runtime's request-scoped AgentFactoryContext. */
|
|
211
|
+
type BuiltInAgentFactoryContext = AgentFactoryContext;
|
|
188
212
|
/**
|
|
189
213
|
* Factory config for AI SDK backend.
|
|
190
214
|
* The factory must return an object with a `fullStream` async iterable
|
|
191
215
|
* (compatible with the result of `streamText()` — only `fullStream` is consumed).
|
|
192
216
|
*/
|
|
193
217
|
interface BuiltInAgentAISDKFactoryConfig {
|
|
218
|
+
/** Opt in to automatic snapshot acquisition before each run, including resumes. */
|
|
219
|
+
learnedSkills?: BuiltInAgentLearnedSkillsOptions;
|
|
194
220
|
type: "aisdk";
|
|
195
221
|
factory: (ctx: AgentFactoryContext) => {
|
|
196
222
|
fullStream: AsyncIterable<unknown>;
|
|
@@ -203,6 +229,8 @@ interface BuiltInAgentAISDKFactoryConfig {
|
|
|
203
229
|
* The factory must return an async iterable of TanStack AI stream chunks.
|
|
204
230
|
*/
|
|
205
231
|
interface BuiltInAgentTanStackFactoryConfig {
|
|
232
|
+
/** Opt in to automatic snapshot acquisition before each run, including resumes. */
|
|
233
|
+
learnedSkills?: BuiltInAgentLearnedSkillsOptions;
|
|
206
234
|
type: "tanstack";
|
|
207
235
|
factory: (ctx: AgentFactoryContext) => AsyncIterable<unknown> | Promise<AsyncIterable<unknown>>;
|
|
208
236
|
}
|
|
@@ -210,6 +238,8 @@ interface BuiltInAgentTanStackFactoryConfig {
|
|
|
210
238
|
* Factory config for a custom backend that directly yields AG-UI events.
|
|
211
239
|
*/
|
|
212
240
|
interface BuiltInAgentCustomFactoryConfig {
|
|
241
|
+
/** Opt in to automatic snapshot acquisition before each run, including resumes. */
|
|
242
|
+
learnedSkills?: BuiltInAgentLearnedSkillsOptions;
|
|
213
243
|
type: "custom";
|
|
214
244
|
factory: (ctx: AgentFactoryContext) => AsyncIterable<BaseEvent> | Promise<AsyncIterable<BaseEvent>>;
|
|
215
245
|
}
|
|
@@ -221,6 +251,8 @@ type BuiltInAgentFactoryConfig = BuiltInAgentAISDKFactoryConfig | BuiltInAgentTa
|
|
|
221
251
|
* Classic config — BuiltInAgent handles streamText, tools, MCP, state tools, prompt building.
|
|
222
252
|
*/
|
|
223
253
|
interface BuiltInAgentClassicConfig {
|
|
254
|
+
/** Opt in to automatic snapshot acquisition before each run, including resumes. */
|
|
255
|
+
learnedSkills?: BuiltInAgentLearnedSkillsOptions;
|
|
224
256
|
/**
|
|
225
257
|
* The model to use
|
|
226
258
|
*/
|
|
@@ -235,7 +267,7 @@ interface BuiltInAgentClassicConfig {
|
|
|
235
267
|
*/
|
|
236
268
|
apiKey?: string;
|
|
237
269
|
/**
|
|
238
|
-
* Maximum number of steps/iterations for tool calling (default: 1)
|
|
270
|
+
* Maximum number of steps/iterations for tool calling (default: 1, or 10 when learned skills are available)
|
|
239
271
|
*/
|
|
240
272
|
maxSteps?: number;
|
|
241
273
|
/**
|
|
@@ -342,6 +374,21 @@ type BuiltInAgentConfiguration = BuiltInAgentClassicConfig | BuiltInAgentFactory
|
|
|
342
374
|
declare class BuiltInAgent extends AbstractAgent {
|
|
343
375
|
private config;
|
|
344
376
|
private abortController?;
|
|
377
|
+
private skillRegistry?;
|
|
378
|
+
/**
|
|
379
|
+
* Which vendor this agent's configured model reaches. Read by the SSE layer
|
|
380
|
+
* onto `agent_execution_stream_*` telemetry.
|
|
381
|
+
*
|
|
382
|
+
* Computed once, from the configured model, because that is what holds for
|
|
383
|
+
* the agent's lifetime. A per-request `forwardedProps.model` override
|
|
384
|
+
* (handled further down in `run`) can point somewhere else for one run and
|
|
385
|
+
* is not reflected here — overrides are rare and the field describes the
|
|
386
|
+
* agent, not the call.
|
|
387
|
+
*
|
|
388
|
+
* Factory-mode configs own their own LLM call, so there is no model for us
|
|
389
|
+
* to classify.
|
|
390
|
+
*/
|
|
391
|
+
readonly modelHostClass: ModelHostClass;
|
|
345
392
|
constructor(config: BuiltInAgentConfiguration);
|
|
346
393
|
/**
|
|
347
394
|
* Check if a property can be overridden by forwardedProps
|
|
@@ -362,5 +409,5 @@ declare class BasicAgent extends BuiltInAgent {
|
|
|
362
409
|
/** @deprecated Use BuiltInAgentClassicConfig instead */
|
|
363
410
|
type BasicAgentConfiguration = BuiltInAgentClassicConfig;
|
|
364
411
|
//#endregion
|
|
365
|
-
export { BasicAgent, BasicAgentConfiguration, BuiltInAgent, BuiltInAgentAISDKFactoryConfig, BuiltInAgentClassicConfig, BuiltInAgentConfiguration, BuiltInAgentCustomFactoryConfig, BuiltInAgentFactoryConfig, BuiltInAgentModel, BuiltInAgentTanStackFactoryConfig, InterruptSignal, MCPClientConfig, MCPClientConfigHTTP, MCPClientConfigSSE, MCPClientProvider, MessageConversionOptions, ModelSpecifier, OverridableProperty, ToolDefinition, convertJsonSchemaToZodSchema, convertMessagesToVercelAISDKMessages, convertToolDefinitionsToVercelAITools, convertToolsToVercelAITools, defineTool, resolveModel };
|
|
412
|
+
export { BasicAgent, BasicAgentConfiguration, BuiltInAgent, BuiltInAgentAISDKFactoryConfig, BuiltInAgentClassicConfig, BuiltInAgentConfiguration, BuiltInAgentCustomFactoryConfig, BuiltInAgentFactoryConfig, BuiltInAgentFactoryContext, BuiltInAgentModel, BuiltInAgentTanStackFactoryConfig, InterruptSignal, MCPClientConfig, MCPClientConfigHTTP, MCPClientConfigSSE, MCPClientProvider, MessageConversionOptions, ModelSpecifier, OverridableProperty, ToolDefinition, classifyModelSpec, convertJsonSchemaToZodSchema, convertMessagesToVercelAISDKMessages, convertToolDefinitionsToVercelAITools, convertToolsToVercelAITools, defineTool, resolveModel };
|
|
366
413
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/agent/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/agent/index.ts"],"mappings":"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"}
|
package/dist/agent/index.d.mts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
|
|
2
|
+
import { BuiltInAgentLearnedSkills, BuiltInAgentLearnedSkillsOptions } from "./learned-skills.mjs";
|
|
2
3
|
import { convertAISDKStream } from "./converters/aisdk.mjs";
|
|
3
4
|
import { TanStackChatMessage, TanStackInputResult, convertInputToTanStackAI, convertTanStackStream } from "./converters/tanstack.mjs";
|
|
4
5
|
import "./converters/index.mjs";
|
|
5
|
-
import { InferSchemaOutput, StandardSchemaV1 } from "@copilotkit/shared";
|
|
6
|
+
import { InferSchemaOutput, ModelHostClass, StandardSchemaV1 } from "@copilotkit/shared";
|
|
6
7
|
import { Observable } from "rxjs";
|
|
7
8
|
import { AbstractAgent, BaseEvent, Interrupt, Message, ResumeEntry, RunAgentInput } from "@ag-ui/client";
|
|
8
9
|
import { z } from "zod";
|
|
@@ -74,6 +75,26 @@ interface MCPClientProvider {
|
|
|
74
75
|
* @returns LanguageModel instance
|
|
75
76
|
*/
|
|
76
77
|
declare function resolveModel(spec: ModelSpecifier, apiKey?: string): LanguageModel;
|
|
78
|
+
/**
|
|
79
|
+
* Which vendor a model specifier will actually reach, as a closed vocabulary.
|
|
80
|
+
*
|
|
81
|
+
* `resolveModel` above is the only place this runtime builds a provider, so it
|
|
82
|
+
* is the only place that knows the endpoint. Once built, the endpoint is gone:
|
|
83
|
+
* an AI SDK model reports `provider: "openai.responses"` whether it points at
|
|
84
|
+
* api.openai.com, Azure, OpenRouter or a laptop, and its base URL survives
|
|
85
|
+
* only inside a closure that the public `LanguageModelV3` type does not
|
|
86
|
+
* expose. Azure's own migration guide tells customers to use that same OpenAI
|
|
87
|
+
* client, so the case we are blindest to is the common one.
|
|
88
|
+
*
|
|
89
|
+
* A caller who hands us an already-built LanguageModel gets `unknown`. Nobody
|
|
90
|
+
* can recover the host from it, and saying so is more useful than guessing
|
|
91
|
+
* `openai` from a provider label that means only "speaks the OpenAI wire".
|
|
92
|
+
*
|
|
93
|
+
* The branches below mirror `resolveModel`'s switch and must change with it.
|
|
94
|
+
* `model-host-class.test.ts` walks every provider that switch accepts and
|
|
95
|
+
* fails if one lands here as `unknown`.
|
|
96
|
+
*/
|
|
97
|
+
declare function classifyModelSpec(spec: ModelSpecifier): ModelHostClass;
|
|
77
98
|
/**
|
|
78
99
|
* Thrown by `AgentFactoryContext.interrupt()` on a fresh (non-resume) run to
|
|
79
100
|
* pause the factory. Caught in `runFactory` and translated into a RUN_FINISHED
|
|
@@ -99,9 +120,8 @@ interface ToolDefinition<TParameters extends StandardSchemaV1 = StandardSchemaV1
|
|
|
99
120
|
* When true, calling this tool pauses the run and emits a standard AG-UI
|
|
100
121
|
* interrupt (RUN_FINISHED outcome:interrupt) keyed by the tool call's id.
|
|
101
122
|
* The human response (resume payload) is injected as this tool call's result
|
|
102
|
-
* on the resume run. Interrupt tools must NOT define `execute
|
|
103
|
-
*
|
|
104
|
-
* would try to continue past the unexecuted tool call instead of pausing.
|
|
123
|
+
* on the resume run. Interrupt tools must NOT define `execute`. The AI SDK
|
|
124
|
+
* pauses when a tool call has no result, even with a multi-step limit.
|
|
105
125
|
*/
|
|
106
126
|
interrupt?: boolean;
|
|
107
127
|
/** Optional categorical reason surfaced on the Interrupt (default: "tool_call"). */
|
|
@@ -168,6 +188,8 @@ declare function convertToolDefinitionsToVercelAITools(tools: ToolDefinition[]):
|
|
|
168
188
|
* Context passed to the user-supplied factory function in factory mode.
|
|
169
189
|
*/
|
|
170
190
|
interface AgentFactoryContext {
|
|
191
|
+
/** Verified catalog and AI SDK tools for this run; empty when disabled or no skills exist. */
|
|
192
|
+
learnedSkills: BuiltInAgentLearnedSkills;
|
|
171
193
|
input: RunAgentInput;
|
|
172
194
|
/**
|
|
173
195
|
* Prefer `abortSignal` for most use cases (AI SDK, fetch, custom backends).
|
|
@@ -186,12 +208,16 @@ interface AgentFactoryContext {
|
|
|
186
208
|
*/
|
|
187
209
|
interrupt: (interrupts: Interrupt[]) => Promise<ResumeEntry[]>;
|
|
188
210
|
}
|
|
211
|
+
/** Public name that avoids the runtime's request-scoped AgentFactoryContext. */
|
|
212
|
+
type BuiltInAgentFactoryContext = AgentFactoryContext;
|
|
189
213
|
/**
|
|
190
214
|
* Factory config for AI SDK backend.
|
|
191
215
|
* The factory must return an object with a `fullStream` async iterable
|
|
192
216
|
* (compatible with the result of `streamText()` — only `fullStream` is consumed).
|
|
193
217
|
*/
|
|
194
218
|
interface BuiltInAgentAISDKFactoryConfig {
|
|
219
|
+
/** Opt in to automatic snapshot acquisition before each run, including resumes. */
|
|
220
|
+
learnedSkills?: BuiltInAgentLearnedSkillsOptions;
|
|
195
221
|
type: "aisdk";
|
|
196
222
|
factory: (ctx: AgentFactoryContext) => {
|
|
197
223
|
fullStream: AsyncIterable<unknown>;
|
|
@@ -204,6 +230,8 @@ interface BuiltInAgentAISDKFactoryConfig {
|
|
|
204
230
|
* The factory must return an async iterable of TanStack AI stream chunks.
|
|
205
231
|
*/
|
|
206
232
|
interface BuiltInAgentTanStackFactoryConfig {
|
|
233
|
+
/** Opt in to automatic snapshot acquisition before each run, including resumes. */
|
|
234
|
+
learnedSkills?: BuiltInAgentLearnedSkillsOptions;
|
|
207
235
|
type: "tanstack";
|
|
208
236
|
factory: (ctx: AgentFactoryContext) => AsyncIterable<unknown> | Promise<AsyncIterable<unknown>>;
|
|
209
237
|
}
|
|
@@ -211,6 +239,8 @@ interface BuiltInAgentTanStackFactoryConfig {
|
|
|
211
239
|
* Factory config for a custom backend that directly yields AG-UI events.
|
|
212
240
|
*/
|
|
213
241
|
interface BuiltInAgentCustomFactoryConfig {
|
|
242
|
+
/** Opt in to automatic snapshot acquisition before each run, including resumes. */
|
|
243
|
+
learnedSkills?: BuiltInAgentLearnedSkillsOptions;
|
|
214
244
|
type: "custom";
|
|
215
245
|
factory: (ctx: AgentFactoryContext) => AsyncIterable<BaseEvent> | Promise<AsyncIterable<BaseEvent>>;
|
|
216
246
|
}
|
|
@@ -222,6 +252,8 @@ type BuiltInAgentFactoryConfig = BuiltInAgentAISDKFactoryConfig | BuiltInAgentTa
|
|
|
222
252
|
* Classic config — BuiltInAgent handles streamText, tools, MCP, state tools, prompt building.
|
|
223
253
|
*/
|
|
224
254
|
interface BuiltInAgentClassicConfig {
|
|
255
|
+
/** Opt in to automatic snapshot acquisition before each run, including resumes. */
|
|
256
|
+
learnedSkills?: BuiltInAgentLearnedSkillsOptions;
|
|
225
257
|
/**
|
|
226
258
|
* The model to use
|
|
227
259
|
*/
|
|
@@ -236,7 +268,7 @@ interface BuiltInAgentClassicConfig {
|
|
|
236
268
|
*/
|
|
237
269
|
apiKey?: string;
|
|
238
270
|
/**
|
|
239
|
-
* Maximum number of steps/iterations for tool calling (default: 1)
|
|
271
|
+
* Maximum number of steps/iterations for tool calling (default: 1, or 10 when learned skills are available)
|
|
240
272
|
*/
|
|
241
273
|
maxSteps?: number;
|
|
242
274
|
/**
|
|
@@ -343,6 +375,21 @@ type BuiltInAgentConfiguration = BuiltInAgentClassicConfig | BuiltInAgentFactory
|
|
|
343
375
|
declare class BuiltInAgent extends AbstractAgent {
|
|
344
376
|
private config;
|
|
345
377
|
private abortController?;
|
|
378
|
+
private skillRegistry?;
|
|
379
|
+
/**
|
|
380
|
+
* Which vendor this agent's configured model reaches. Read by the SSE layer
|
|
381
|
+
* onto `agent_execution_stream_*` telemetry.
|
|
382
|
+
*
|
|
383
|
+
* Computed once, from the configured model, because that is what holds for
|
|
384
|
+
* the agent's lifetime. A per-request `forwardedProps.model` override
|
|
385
|
+
* (handled further down in `run`) can point somewhere else for one run and
|
|
386
|
+
* is not reflected here — overrides are rare and the field describes the
|
|
387
|
+
* agent, not the call.
|
|
388
|
+
*
|
|
389
|
+
* Factory-mode configs own their own LLM call, so there is no model for us
|
|
390
|
+
* to classify.
|
|
391
|
+
*/
|
|
392
|
+
readonly modelHostClass: ModelHostClass;
|
|
346
393
|
constructor(config: BuiltInAgentConfiguration);
|
|
347
394
|
/**
|
|
348
395
|
* Check if a property can be overridden by forwardedProps
|
|
@@ -363,5 +410,5 @@ declare class BasicAgent extends BuiltInAgent {
|
|
|
363
410
|
/** @deprecated Use BuiltInAgentClassicConfig instead */
|
|
364
411
|
type BasicAgentConfiguration = BuiltInAgentClassicConfig;
|
|
365
412
|
//#endregion
|
|
366
|
-
export { BasicAgent, BasicAgentConfiguration, BuiltInAgent, BuiltInAgentAISDKFactoryConfig, BuiltInAgentClassicConfig, BuiltInAgentConfiguration, BuiltInAgentCustomFactoryConfig, BuiltInAgentFactoryConfig, BuiltInAgentModel, BuiltInAgentTanStackFactoryConfig, InterruptSignal, MCPClientConfig, MCPClientConfigHTTP, MCPClientConfigSSE, MCPClientProvider, MessageConversionOptions, ModelSpecifier, OverridableProperty, ToolDefinition, convertJsonSchemaToZodSchema$1 as convertJsonSchemaToZodSchema, convertMessagesToVercelAISDKMessages, convertToolDefinitionsToVercelAITools, convertToolsToVercelAITools, defineTool, resolveModel };
|
|
413
|
+
export { BasicAgent, BasicAgentConfiguration, BuiltInAgent, BuiltInAgentAISDKFactoryConfig, BuiltInAgentClassicConfig, BuiltInAgentConfiguration, BuiltInAgentCustomFactoryConfig, BuiltInAgentFactoryConfig, BuiltInAgentFactoryContext, BuiltInAgentModel, BuiltInAgentTanStackFactoryConfig, InterruptSignal, MCPClientConfig, MCPClientConfigHTTP, MCPClientConfigSSE, MCPClientProvider, MessageConversionOptions, ModelSpecifier, OverridableProperty, ToolDefinition, classifyModelSpec, convertJsonSchemaToZodSchema$1 as convertJsonSchemaToZodSchema, convertMessagesToVercelAISDKMessages, convertToolDefinitionsToVercelAITools, convertToolsToVercelAITools, defineTool, resolveModel };
|
|
367
414
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/agent/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/agent/index.ts"],"mappings":"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"}
|
package/dist/agent/index.mjs
CHANGED
|
@@ -3,8 +3,10 @@ import { createStateEventNormalizer } from "./state-delta.mjs";
|
|
|
3
3
|
import { collectStandardRunFinishedDetails, getNonEmptyString, isRecord } from "./converters/usage.mjs";
|
|
4
4
|
import { convertAISDKStream, getAISDKRunFinishedDetails } from "./converters/aisdk.mjs";
|
|
5
5
|
import { convertInputToTanStackAI, convertTanStackStream } from "./converters/tanstack.mjs";
|
|
6
|
+
import { SkillRegistry } from "../v2/runtime/intelligence-platform/skill-registry/registry.mjs";
|
|
7
|
+
import { assertNoSkillToolConflicts, prepareLearnedSkills } from "./learned-skills.mjs";
|
|
6
8
|
import { createOpenAI } from "@ai-sdk/openai";
|
|
7
|
-
import { randomUUID, safeParseToolArgs, schemaToJsonSchema } from "@copilotkit/shared";
|
|
9
|
+
import { classifyModelHost, randomUUID, safeParseToolArgs, schemaToJsonSchema } from "@copilotkit/shared";
|
|
8
10
|
import { createGoogleGenerativeAI } from "@ai-sdk/google";
|
|
9
11
|
import { Observable } from "rxjs";
|
|
10
12
|
import { AbstractAgent, EventType } from "@ag-ui/client";
|
|
@@ -58,6 +60,38 @@ function resolveModel(spec, apiKey) {
|
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
62
|
/**
|
|
63
|
+
* Which vendor a model specifier will actually reach, as a closed vocabulary.
|
|
64
|
+
*
|
|
65
|
+
* `resolveModel` above is the only place this runtime builds a provider, so it
|
|
66
|
+
* is the only place that knows the endpoint. Once built, the endpoint is gone:
|
|
67
|
+
* an AI SDK model reports `provider: "openai.responses"` whether it points at
|
|
68
|
+
* api.openai.com, Azure, OpenRouter or a laptop, and its base URL survives
|
|
69
|
+
* only inside a closure that the public `LanguageModelV3` type does not
|
|
70
|
+
* expose. Azure's own migration guide tells customers to use that same OpenAI
|
|
71
|
+
* client, so the case we are blindest to is the common one.
|
|
72
|
+
*
|
|
73
|
+
* A caller who hands us an already-built LanguageModel gets `unknown`. Nobody
|
|
74
|
+
* can recover the host from it, and saying so is more useful than guessing
|
|
75
|
+
* `openai` from a provider label that means only "speaks the OpenAI wire".
|
|
76
|
+
*
|
|
77
|
+
* The branches below mirror `resolveModel`'s switch and must change with it.
|
|
78
|
+
* `model-host-class.test.ts` walks every provider that switch accepts and
|
|
79
|
+
* fails if one lands here as `unknown`.
|
|
80
|
+
*/
|
|
81
|
+
function classifyModelSpec(spec) {
|
|
82
|
+
if (typeof spec !== "string") return "unknown";
|
|
83
|
+
switch (spec.replace("/", ":").trim().split(":")[0]?.toLowerCase()) {
|
|
84
|
+
case "openai": return classifyModelHost(process.env.OPENAI_BASE_URL, "openai");
|
|
85
|
+
case "anthropic": return classifyModelHost(process.env.ANTHROPIC_BASE_URL, "anthropic");
|
|
86
|
+
case "google":
|
|
87
|
+
case "gemini":
|
|
88
|
+
case "google-gemini": return classifyModelHost(process.env.GOOGLE_GENERATIVE_AI_BASE_URL, "google");
|
|
89
|
+
case "minimax": return classifyModelHost(process.env.MINIMAX_BASE_URL || "https://api.minimax.io/v1", "minimax");
|
|
90
|
+
case "vertex": return "vertex";
|
|
91
|
+
default: return "unknown";
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
61
95
|
* Thrown by `AgentFactoryContext.interrupt()` on a fresh (non-resume) run to
|
|
62
96
|
* pause the factory. Caught in `runFactory` and translated into a RUN_FINISHED
|
|
63
97
|
* event carrying `outcome:{type:"interrupt",interrupts}`. Not a real error.
|
|
@@ -387,6 +421,8 @@ var BuiltInAgent = class BuiltInAgent extends AbstractAgent {
|
|
|
387
421
|
constructor(config) {
|
|
388
422
|
super();
|
|
389
423
|
this.config = config;
|
|
424
|
+
this.skillRegistry = config.learnedSkills === void 0 ? void 0 : new SkillRegistry(config.learnedSkills);
|
|
425
|
+
this.modelHostClass = isFactoryConfig(config) ? "unknown" : classifyModelSpec(config.model);
|
|
390
426
|
}
|
|
391
427
|
/**
|
|
392
428
|
* Check if a property can be overridden by forwardedProps
|
|
@@ -550,6 +586,15 @@ This is state from the application that you can edit by calling AGUISendStateSna
|
|
|
550
586
|
subscriber.next(reasoningEnd);
|
|
551
587
|
};
|
|
552
588
|
try {
|
|
589
|
+
const learnedSkills = await prepareLearnedSkills(this.skillRegistry, abortController.signal);
|
|
590
|
+
abortController.signal.throwIfAborted();
|
|
591
|
+
if (learnedSkills.catalog) {
|
|
592
|
+
messages.unshift({
|
|
593
|
+
role: "system",
|
|
594
|
+
content: learnedSkills.catalog
|
|
595
|
+
});
|
|
596
|
+
if (config.maxSteps === void 0) streamTextParams.stopWhen = stepCountIs(10);
|
|
597
|
+
}
|
|
553
598
|
streamTextParams.tools = {
|
|
554
599
|
...streamTextParams.tools,
|
|
555
600
|
AGUISendStateSnapshot: tool({
|
|
@@ -583,6 +628,7 @@ This is state from the application that you can edit by calling AGUISendStateSna
|
|
|
583
628
|
};
|
|
584
629
|
if (config.mcpClients && config.mcpClients.length > 0) for (const client of config.mcpClients) {
|
|
585
630
|
const mcpTools = await client.tools();
|
|
631
|
+
abortController.signal.throwIfAborted();
|
|
586
632
|
streamTextParams.tools = {
|
|
587
633
|
...streamTextParams.tools,
|
|
588
634
|
...mcpTools
|
|
@@ -594,6 +640,7 @@ This is state from the application that you can edit by calling AGUISendStateSna
|
|
|
594
640
|
if (serverConfig.type === "http") transport = new StreamableHTTPClientTransport(new URL(serverConfig.url), serverConfig.options);
|
|
595
641
|
else if (serverConfig.type === "sse") {
|
|
596
642
|
const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
|
|
643
|
+
abortController.signal.throwIfAborted();
|
|
597
644
|
transport = new SSEClientTransport(new URL(serverConfig.url), serverConfig.headers ? { requestInit: { headers: serverConfig.headers } } : void 0);
|
|
598
645
|
}
|
|
599
646
|
if (transport) {
|
|
@@ -601,21 +648,36 @@ This is state from the application that you can edit by calling AGUISendStateSna
|
|
|
601
648
|
try {
|
|
602
649
|
mcpClient = await createMCPClient({ transport });
|
|
603
650
|
} catch (err) {
|
|
651
|
+
abortController.signal.throwIfAborted();
|
|
604
652
|
console.error(`[CopilotKit] MCP server ${serverConfig.url} failed to connect — skipping it for this run:`, err);
|
|
605
653
|
continue;
|
|
606
654
|
}
|
|
655
|
+
if (abortController.signal.aborted) {
|
|
656
|
+
await mcpClient.close();
|
|
657
|
+
abortController.signal.throwIfAborted();
|
|
658
|
+
}
|
|
607
659
|
mcpClients.push(mcpClient);
|
|
608
660
|
try {
|
|
609
661
|
const mcpTools = await mcpClient.tools();
|
|
662
|
+
abortController.signal.throwIfAborted();
|
|
610
663
|
streamTextParams.tools = {
|
|
611
664
|
...streamTextParams.tools,
|
|
612
665
|
...mcpTools
|
|
613
666
|
};
|
|
614
667
|
} catch (err) {
|
|
668
|
+
abortController.signal.throwIfAborted();
|
|
615
669
|
console.error(`[CopilotKit] MCP server ${serverConfig.url} tools() failed — skipping its tools for this run:`, err);
|
|
616
670
|
}
|
|
617
671
|
}
|
|
618
672
|
}
|
|
673
|
+
if (this.skillRegistry) {
|
|
674
|
+
assertNoSkillToolConflicts(streamTextParams.tools ?? {});
|
|
675
|
+
streamTextParams.tools = {
|
|
676
|
+
...streamTextParams.tools,
|
|
677
|
+
...learnedSkills.tools
|
|
678
|
+
};
|
|
679
|
+
}
|
|
680
|
+
abortController.signal.throwIfAborted();
|
|
619
681
|
const response = streamText({
|
|
620
682
|
...streamTextParams,
|
|
621
683
|
abortSignal: abortController.signal
|
|
@@ -892,11 +954,13 @@ This is state from the application that you can edit by calling AGUISendStateSna
|
|
|
892
954
|
subscriber.error(error);
|
|
893
955
|
}
|
|
894
956
|
} finally {
|
|
895
|
-
this.abortController = void 0;
|
|
957
|
+
if (this.abortController === abortController) this.abortController = void 0;
|
|
896
958
|
await Promise.all(mcpClients.map((client) => client.close()));
|
|
897
959
|
}
|
|
898
960
|
})();
|
|
899
961
|
return () => {
|
|
962
|
+
abortController.abort();
|
|
963
|
+
if (this.abortController === abortController) this.abortController = void 0;
|
|
900
964
|
Promise.all(mcpClients.map((client) => client.close())).catch(() => {});
|
|
901
965
|
};
|
|
902
966
|
});
|
|
@@ -935,13 +999,16 @@ This is state from the application that you can edit by calling AGUISendStateSna
|
|
|
935
999
|
...input,
|
|
936
1000
|
messages: [...input.messages, ...resumeToolMessages]
|
|
937
1001
|
} : input;
|
|
938
|
-
const factoryCtx = {
|
|
939
|
-
...ctx,
|
|
940
|
-
input: factoryInput
|
|
941
|
-
};
|
|
942
1002
|
(async () => {
|
|
943
1003
|
const runFinishedDetails = {};
|
|
944
1004
|
try {
|
|
1005
|
+
const learnedSkills = await prepareLearnedSkills(this.skillRegistry, controller.signal);
|
|
1006
|
+
controller.signal.throwIfAborted();
|
|
1007
|
+
const factoryCtx = {
|
|
1008
|
+
...ctx,
|
|
1009
|
+
input: factoryInput,
|
|
1010
|
+
learnedSkills
|
|
1011
|
+
};
|
|
945
1012
|
let events;
|
|
946
1013
|
let customRunFinishedEvent;
|
|
947
1014
|
const pendingInterrupts = [];
|
|
@@ -953,7 +1020,7 @@ This is state from the application that you can edit by calling AGUISendStateSna
|
|
|
953
1020
|
events = convertTanStackStream(await config.factory(factoryCtx), controller.signal, pendingInterrupts, input.state, runFinishedDetails);
|
|
954
1021
|
break;
|
|
955
1022
|
case "custom":
|
|
956
|
-
events = await config.factory(
|
|
1023
|
+
events = await config.factory(factoryCtx);
|
|
957
1024
|
break;
|
|
958
1025
|
default: {
|
|
959
1026
|
const _exhaustive = config;
|
|
@@ -1006,16 +1073,22 @@ This is state from the application that you can edit by calling AGUISendStateSna
|
|
|
1006
1073
|
subscriber.error(error);
|
|
1007
1074
|
}
|
|
1008
1075
|
} finally {
|
|
1009
|
-
this.abortController = void 0;
|
|
1076
|
+
if (this.abortController === controller) this.abortController = void 0;
|
|
1010
1077
|
}
|
|
1011
1078
|
})();
|
|
1012
1079
|
return () => {
|
|
1013
1080
|
controller.abort();
|
|
1081
|
+
if (this.abortController === controller) this.abortController = void 0;
|
|
1014
1082
|
};
|
|
1015
1083
|
});
|
|
1016
1084
|
}
|
|
1017
1085
|
clone() {
|
|
1018
|
-
const cloned = new BuiltInAgent(
|
|
1086
|
+
const cloned = new BuiltInAgent({
|
|
1087
|
+
...this.config,
|
|
1088
|
+
learnedSkills: void 0
|
|
1089
|
+
});
|
|
1090
|
+
cloned.config = this.config;
|
|
1091
|
+
cloned.skillRegistry = this.skillRegistry;
|
|
1019
1092
|
cloned.middlewares = [...this.middlewares];
|
|
1020
1093
|
return cloned;
|
|
1021
1094
|
}
|
|
@@ -1034,5 +1107,5 @@ var BasicAgent = class extends BuiltInAgent {
|
|
|
1034
1107
|
};
|
|
1035
1108
|
|
|
1036
1109
|
//#endregion
|
|
1037
|
-
export { BasicAgent, BuiltInAgent, InterruptSignal, convertJsonSchemaToZodSchema$1 as convertJsonSchemaToZodSchema, convertMessagesToVercelAISDKMessages, convertToolDefinitionsToVercelAITools, convertToolsToVercelAITools, defineTool, resolveModel };
|
|
1110
|
+
export { BasicAgent, BuiltInAgent, InterruptSignal, classifyModelSpec, convertJsonSchemaToZodSchema$1 as convertJsonSchemaToZodSchema, convertMessagesToVercelAISDKMessages, convertToolDefinitionsToVercelAITools, convertToolsToVercelAITools, defineTool, resolveModel };
|
|
1038
1111
|
//# sourceMappingURL=index.mjs.map
|