@copilotkit/channels-core 0.4.1-canary.1785375021 → 0.4.1-canary.narrowinstall1

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/run-loop.js CHANGED
@@ -1,178 +1,4 @@
1
- import { EventType } from "@ag-ui/client";
2
1
  import { parseToolArgs, stringifyHandlerResult } from "./tools.js";
3
- /**
4
- * Merge two subscriber callback results while preserving either subscriber's
5
- * request to stop propagation.
6
- */
7
- function mergeSubscriberResults(firstResult, secondResult) {
8
- if ((firstResult === undefined || firstResult === null) &&
9
- (secondResult === undefined || secondResult === null)) {
10
- return undefined;
11
- }
12
- return {
13
- ...(typeof firstResult === "object" ? firstResult : {}),
14
- ...(typeof secondResult === "object" ? secondResult : {}),
15
- stopPropagation: (typeof firstResult === "object" &&
16
- firstResult !== null &&
17
- "stopPropagation" in firstResult &&
18
- firstResult.stopPropagation === true) ||
19
- (typeof secondResult === "object" &&
20
- secondResult !== null &&
21
- "stopPropagation" in secondResult &&
22
- secondResult.stopPropagation === true),
23
- };
24
- }
25
- /**
26
- * Invoke canonical ingestion before rendering, but always invoke both. A
27
- * renderer failure therefore cannot prevent the same event from reaching the
28
- * runner.
29
- */
30
- async function invokeSubscriberPair(rendererCallback, ingestionCallback, params, onRendererError, isRendererClosed) {
31
- let rendererResult;
32
- let ingestionResult;
33
- let rendererError;
34
- let ingestionError;
35
- let rendererFailed = false;
36
- let ingestionFailed = false;
37
- try {
38
- ingestionResult = await ingestionCallback?.(params);
39
- }
40
- catch (error) {
41
- ingestionFailed = true;
42
- ingestionError = error;
43
- }
44
- if (!isRendererClosed?.()) {
45
- try {
46
- rendererResult = await rendererCallback?.(params);
47
- }
48
- catch (error) {
49
- rendererFailed = true;
50
- rendererError = error;
51
- }
52
- }
53
- if (ingestionFailed)
54
- throw ingestionError;
55
- if (rendererFailed) {
56
- if (!onRendererError)
57
- throw rendererError;
58
- onRendererError(rendererError);
59
- }
60
- return mergeSubscriberResults(rendererResult, ingestionResult);
61
- }
62
- /**
63
- * Return one stamped event object for every callback generated from the same
64
- * raw AG-UI event.
65
- */
66
- function canonicalizeSubscriberParams(params, options, stampedEvents) {
67
- if (typeof params !== "object" ||
68
- params === null ||
69
- !("event" in params) ||
70
- typeof params.event !== "object" ||
71
- params.event === null ||
72
- !("type" in params.event)) {
73
- return params;
74
- }
75
- const event = params.event;
76
- if (options.canonicalRun &&
77
- (event.type === EventType.RUN_STARTED ||
78
- event.type === EventType.RUN_FINISHED ||
79
- event.type === EventType.RUN_ERROR)) {
80
- if (event.type === EventType.RUN_ERROR) {
81
- options.onInnerRunError?.(event);
82
- }
83
- return undefined;
84
- }
85
- if (!options.canonicalRun)
86
- return params;
87
- let stamped = stampedEvents.get(event);
88
- if (!stamped) {
89
- stamped = {
90
- ...event,
91
- threadId: options.canonicalRun.threadId,
92
- runId: options.canonicalRun.runId,
93
- };
94
- stampedEvents.set(event, stamped);
95
- }
96
- return { ...params, event: stamped };
97
- }
98
- /**
99
- * Fan one agent event stream out to both the provider renderer and a canonical
100
- * runner subscriber. The proxy covers every current and future subscriber
101
- * callback without keeping a second callback-name registry in Channels.
102
- */
103
- export function mergeAgentSubscribers(first, second, options = {}) {
104
- const stampedEvents = new WeakMap();
105
- return new Proxy({}, {
106
- get(_target, property) {
107
- const firstCallback = first[property];
108
- const secondCallback = second[property];
109
- if (typeof firstCallback !== "function" &&
110
- typeof secondCallback !== "function") {
111
- return undefined;
112
- }
113
- return async (params) => {
114
- const canonicalParams = canonicalizeSubscriberParams(params, options, stampedEvents);
115
- if (canonicalParams === undefined)
116
- return undefined;
117
- return invokeSubscriberPair(typeof firstCallback === "function"
118
- ? firstCallback
119
- : undefined, typeof secondCallback === "function"
120
- ? secondCallback
121
- : undefined, canonicalParams, options.onRendererError, options.isRendererClosed);
122
- };
123
- },
124
- });
125
- }
126
- /** Convert an inner AG-UI error event into the error rejected by the outer run. */
127
- function errorFromInnerRun(event) {
128
- const error = new Error(event.message);
129
- error.name = "ChannelInnerRunError";
130
- if (event.code)
131
- error.code = event.code;
132
- return error;
133
- }
134
- /**
135
- * Emit one canonical lifecycle event through the same ingestion-first fanout
136
- * used by streamed events.
137
- */
138
- async function emitCanonicalLifecycleEvent(event, result, args, onRendererError, isRendererClosed) {
139
- const canonicalRun = args.canonicalRun;
140
- if (!canonicalRun)
141
- return;
142
- const input = {
143
- threadId: canonicalRun.threadId,
144
- runId: canonicalRun.runId,
145
- messages: args.agent.messages,
146
- state: args.agent.state,
147
- tools: [...args.toolDescriptors],
148
- context: [...args.context],
149
- forwardedProps: {},
150
- };
151
- const baseParams = {
152
- messages: args.agent.messages,
153
- state: args.agent.state,
154
- agent: args.agent,
155
- input,
156
- };
157
- const ingestion = args.subscriber ?? {};
158
- const renderer = args.renderer.subscriber;
159
- const eventParams = { ...baseParams, event };
160
- await invokeSubscriberPair(renderer.onEvent, ingestion.onEvent, eventParams, onRendererError, isRendererClosed);
161
- if (event.type === EventType.RUN_STARTED) {
162
- await invokeSubscriberPair(renderer.onRunStartedEvent, ingestion.onRunStartedEvent, eventParams, onRendererError, isRendererClosed);
163
- }
164
- else if (event.type === EventType.RUN_FINISHED) {
165
- await invokeSubscriberPair(renderer.onRunFinishedEvent, ingestion.onRunFinishedEvent, {
166
- ...baseParams,
167
- event,
168
- outcome: "success",
169
- result,
170
- }, onRendererError, isRendererClosed);
171
- }
172
- else if (event.type === EventType.RUN_ERROR) {
173
- await invokeSubscriberPair(renderer.onRunErrorEvent, ingestion.onRunErrorEvent, eventParams, onRendererError, isRendererClosed);
174
- }
175
- }
176
2
  /**
177
3
  * Drive the agent, executing frontend-tool calls and re-invoking until the
178
4
  * agent stops calling them (or we hit the iteration cap). On a captured
@@ -182,122 +8,55 @@ async function emitCanonicalLifecycleEvent(event, result, args, onRendererError,
182
8
  */
183
9
  export async function runAgentLoop(args) {
184
10
  const { agent, renderer, tools, toolDescriptors, context, makeToolCtx, handleInterrupt, isAborted, initialResume, } = args;
185
- let innerRunError;
186
- let hasDeliveryError = false;
187
- let deliveryError;
188
- const deferRendererError = (error) => {
189
- if (hasDeliveryError)
190
- return;
191
- hasDeliveryError = true;
192
- deliveryError = error;
193
- };
194
- const isRendererClosed = () => hasDeliveryError;
195
- const subscriber = args.subscriber || args.canonicalRun
196
- ? mergeAgentSubscribers(renderer.subscriber, args.subscriber ?? {}, args.canonicalRun
197
- ? {
198
- canonicalRun: args.canonicalRun,
199
- onInnerRunError: (event) => {
200
- innerRunError ??= errorFromInnerRun(event);
201
- },
202
- onRendererError: deferRendererError,
203
- isRendererClosed,
204
- }
205
- : {})
206
- : renderer.subscriber;
207
11
  const maxIterations = args.maxIterations ?? 6;
208
12
  const executed = new Set();
209
13
  let resume = initialResume;
210
- const executeIterations = async () => {
211
- for (let i = 0; i < maxIterations; i++) {
212
- if (resume) {
213
- await agent.runAgent({ forwardedProps: { command: resume } }, subscriber);
214
- resume = undefined;
14
+ for (let i = 0; i < maxIterations; i++) {
15
+ if (resume) {
16
+ await agent.runAgent({ forwardedProps: { command: resume } }, renderer.subscriber);
17
+ resume = undefined;
18
+ }
19
+ else {
20
+ await agent.runAgent({ tools: toolDescriptors, context: context }, renderer.subscriber);
21
+ }
22
+ if (isAborted?.())
23
+ return { iterations: i + 1, interrupted: false };
24
+ const pending = renderer.getPendingInterrupt();
25
+ if (pending) {
26
+ renderer.clearPendingInterrupt();
27
+ if (handleInterrupt)
28
+ await handleInterrupt(pending);
29
+ // ack-first: picker posted; thread.resume re-enters later
30
+ return { iterations: i + 1, interrupted: true };
31
+ }
32
+ const calls = renderer
33
+ .getCapturedToolCalls()
34
+ .filter((c) => tools.has(c.toolCallName) && !executed.has(c.toolCallId));
35
+ if (calls.length === 0)
36
+ return { iterations: i + 1, interrupted: false };
37
+ ensureAssistantToolCallMessage(agent, calls);
38
+ for (const call of calls) {
39
+ const tool = tools.get(call.toolCallName);
40
+ let result;
41
+ const parsed = await parseToolArgs(tool.parameters, call.toolCallArgs);
42
+ if (!parsed.ok) {
43
+ result = JSON.stringify({
44
+ error: `invalid arguments: ${parsed.error}`,
45
+ });
215
46
  }
216
47
  else {
217
- await agent.runAgent({ tools: toolDescriptors, context: context }, subscriber);
218
- }
219
- if (innerRunError)
220
- throw innerRunError;
221
- if (isAborted?.())
222
- return { iterations: i + 1, interrupted: false };
223
- const pending = renderer.getPendingInterrupt();
224
- if (pending) {
225
- renderer.clearPendingInterrupt();
226
- if (handleInterrupt)
227
- await handleInterrupt(pending);
228
- // ack-first: picker posted; thread.resume re-enters later
229
- return { iterations: i + 1, interrupted: true };
230
- }
231
- const calls = renderer
232
- .getCapturedToolCalls()
233
- .filter((c) => tools.has(c.toolCallName) && !executed.has(c.toolCallId));
234
- if (calls.length === 0)
235
- return { iterations: i + 1, interrupted: false };
236
- ensureAssistantToolCallMessage(agent, calls);
237
- for (const call of calls) {
238
- const tool = tools.get(call.toolCallName);
239
- let result;
240
- const parsed = await parseToolArgs(tool.parameters, call.toolCallArgs);
241
- if (!parsed.ok) {
242
- result = JSON.stringify({
243
- error: `invalid arguments: ${parsed.error}`,
244
- });
48
+ try {
49
+ result = stringifyHandlerResult(await tool.handler(parsed.value, makeToolCtx(call)));
245
50
  }
246
- else {
247
- try {
248
- result = stringifyHandlerResult(await tool.handler(parsed.value, makeToolCtx(call)));
249
- }
250
- catch (err) {
251
- result = JSON.stringify({ error: err.message });
252
- }
51
+ catch (err) {
52
+ result = JSON.stringify({ error: err.message });
253
53
  }
254
- pushToolResult(agent, call.toolCallId, result);
255
- executed.add(call.toolCallId);
256
54
  }
55
+ pushToolResult(agent, call.toolCallId, result);
56
+ executed.add(call.toolCallId);
257
57
  }
258
- return { iterations: maxIterations, interrupted: false };
259
- };
260
- if (!args.canonicalRun) {
261
- return executeIterations();
262
- }
263
- const startEvent = {
264
- type: EventType.RUN_STARTED,
265
- threadId: args.canonicalRun.threadId,
266
- runId: args.canonicalRun.runId,
267
- };
268
- try {
269
- await emitCanonicalLifecycleEvent(startEvent, undefined, args, deferRendererError, isRendererClosed);
270
- const result = await executeIterations();
271
- const finishedEvent = {
272
- type: EventType.RUN_FINISHED,
273
- threadId: args.canonicalRun.threadId,
274
- runId: args.canonicalRun.runId,
275
- };
276
- await emitCanonicalLifecycleEvent(finishedEvent, result, args, deferRendererError, isRendererClosed);
277
- return hasDeliveryError ? { ...result, deliveryError } : result;
278
- }
279
- catch (error) {
280
- const runError = {
281
- type: EventType.RUN_ERROR,
282
- threadId: args.canonicalRun.threadId,
283
- runId: args.canonicalRun.runId,
284
- message: error instanceof Error ? error.message : String(error),
285
- ...(typeof error === "object" &&
286
- error !== null &&
287
- "code" in error &&
288
- typeof error.code === "string"
289
- ? { code: error.code }
290
- : {}),
291
- };
292
- try {
293
- await emitCanonicalLifecycleEvent(runError, undefined, args, deferRendererError, isRendererClosed);
294
- }
295
- catch {
296
- // Preserve the original run failure after canonical ingestion got its
297
- // chance to record the terminal error.
298
- }
299
- throw error;
300
58
  }
59
+ return { iterations: maxIterations, interrupted: false };
301
60
  }
302
61
  /**
303
62
  * If the agent's latest message isn't already the assistant message that
package/dist/thread.d.ts CHANGED
@@ -8,8 +8,6 @@ import type { StateStore } from "./state/state-store.js";
8
8
  import type { StandardSchemaV1 } from "./standard-schema.js";
9
9
  export interface ThreadDeps {
10
10
  adapter: PlatformAdapter;
11
- /** Source provider for this ingress event; falls back to the adapter identity. */
12
- platform?: string;
13
11
  replyTarget: ReplyTarget;
14
12
  conversationKey: string;
15
13
  registry: ActionRegistry;
@@ -52,10 +50,8 @@ export declare class Thread implements ThreadInterface {
52
50
  /** Mirrors the adapter's `supportsBlockingChoice` capability (see SurfaceCapabilities). */
53
51
  readonly supportsBlockingChoice?: boolean;
54
52
  private readonly store;
55
- private implicitInboundConsumed;
56
53
  constructor(deps: ThreadDeps);
57
54
  private bindForPost;
58
- private trackOperation;
59
55
  /**
60
56
  * Wire a posted message's `onReaction` to its returned id: cache it for this
61
57
  * process and, when it came from a component, persist a durable snapshot so a
@@ -1 +1 @@
1
- {"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../src/thread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../src/thread.ts"],"names":[],"mappings":"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"}