@copilotkit/channels-core 0.7.2 → 0.7.3
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/canonical-run-loop.test.js +17 -1
- package/dist/delivery-error.d.ts +20 -1
- package/dist/delivery-error.d.ts.map +1 -1
- package/dist/delivery-error.js +45 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/run-loop.d.ts.map +1 -1
- package/dist/run-loop.js +16 -1
- package/package.json +4 -4
|
@@ -305,7 +305,17 @@ test("managed renderer failure freezes later rendering while canonical ingestion
|
|
|
305
305
|
]);
|
|
306
306
|
});
|
|
307
307
|
test("terminal delivery tool failure stops the loop and closes renderer fanout", async () => {
|
|
308
|
-
const
|
|
308
|
+
const details = {
|
|
309
|
+
category: "validation",
|
|
310
|
+
provider: "slack",
|
|
311
|
+
operation: "chat.postMessage",
|
|
312
|
+
effectKind: "slack.message.create",
|
|
313
|
+
providerCode: "invalid_blocks",
|
|
314
|
+
validationMessages: ["invalid field at /blocks/2/elements/0/children"],
|
|
315
|
+
retryable: false,
|
|
316
|
+
deliveryId: "dlv_delivery_1",
|
|
317
|
+
};
|
|
318
|
+
const deliveryError = new ChannelDeliveryTerminatedError("provider delivery timed out", { cause: details, details });
|
|
309
319
|
let agent;
|
|
310
320
|
agent = new FakeAgent([
|
|
311
321
|
(subscriber) => emitBatch(subscriber, agent, "inner-run-1", [
|
|
@@ -360,6 +370,12 @@ test("terminal delivery tool failure stops the loop and closes renderer fanout",
|
|
|
360
370
|
type === EventType.RUN_FINISHED ||
|
|
361
371
|
type === EventType.RUN_ERROR)
|
|
362
372
|
.map(({ type }) => type)).toEqual([EventType.RUN_STARTED, EventType.RUN_ERROR]);
|
|
373
|
+
expect(ingestedEvents.find(({ type }) => type === EventType.RUN_ERROR)).toMatchObject({
|
|
374
|
+
message: "provider delivery timed out",
|
|
375
|
+
category: "validation",
|
|
376
|
+
details,
|
|
377
|
+
cause: details,
|
|
378
|
+
});
|
|
363
379
|
});
|
|
364
380
|
test("inner RUN_ERROR becomes one canonical outer RUN_ERROR", async () => {
|
|
365
381
|
let agent;
|
package/dist/delivery-error.d.ts
CHANGED
|
@@ -5,13 +5,32 @@
|
|
|
5
5
|
* continuing the agent would let later events render through a closed delivery.
|
|
6
6
|
*/
|
|
7
7
|
declare const CHANNEL_DELIVERY_TERMINATED: unique symbol;
|
|
8
|
+
declare const CHANNEL_DELIVERY_ERROR_DETAILS: unique symbol;
|
|
9
|
+
/** Safe provider diagnostics that may cross the canonical AG-UI error path. */
|
|
10
|
+
export interface ChannelDeliveryErrorDetails {
|
|
11
|
+
readonly category: "validation";
|
|
12
|
+
readonly provider: "slack" | "teams";
|
|
13
|
+
readonly operation: string;
|
|
14
|
+
readonly effectKind: string;
|
|
15
|
+
readonly providerCode: "invalid_arguments" | "invalid_blocks";
|
|
16
|
+
readonly validationMessages: readonly string[];
|
|
17
|
+
readonly retryable: false;
|
|
18
|
+
readonly deliveryId: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ChannelDeliveryTerminatedErrorOptions extends ErrorOptions {
|
|
21
|
+
readonly details?: ChannelDeliveryErrorDetails;
|
|
22
|
+
}
|
|
8
23
|
export declare class ChannelDeliveryTerminatedError extends Error {
|
|
9
24
|
readonly [CHANNEL_DELIVERY_TERMINATED] = true;
|
|
10
|
-
|
|
25
|
+
readonly [CHANNEL_DELIVERY_ERROR_DETAILS]?: ChannelDeliveryErrorDetails;
|
|
26
|
+
readonly details?: ChannelDeliveryErrorDetails;
|
|
27
|
+
constructor(message: string, options?: ChannelDeliveryTerminatedErrorOptions);
|
|
11
28
|
}
|
|
12
29
|
/**
|
|
13
30
|
* Recognize terminal delivery errors across duplicated package installations.
|
|
14
31
|
*/
|
|
15
32
|
export declare function isChannelDeliveryTerminatedError(error: unknown): error is ChannelDeliveryTerminatedError;
|
|
33
|
+
/** Return only diagnostics stamped by the Channel delivery boundary. */
|
|
34
|
+
export declare function channelDeliveryErrorDetails(error: unknown): ChannelDeliveryErrorDetails | undefined;
|
|
16
35
|
export {};
|
|
17
36
|
//# sourceMappingURL=delivery-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-error.d.ts","sourceRoot":"","sources":["../src/delivery-error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,QAAA,MAAM,2BAA2B,eAEhC,CAAC;AAEF,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,CAAC,2BAA2B,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"delivery-error.d.ts","sourceRoot":"","sources":["../src/delivery-error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,QAAA,MAAM,2BAA2B,eAEhC,CAAC;AACF,QAAA,MAAM,8BAA8B,eAEnC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,mBAAmB,GAAG,gBAAgB,CAAC;IAC9D,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qCAAsC,SAAQ,YAAY;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;CAChD;AAED,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,CAAC,2BAA2B,CAAC,QAAQ;IAC9C,QAAQ,CAAC,CAAC,8BAA8B,CAAC,CAAC,EAAE,2BAA2B,CAAC;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,2BAA2B,CAAC;gBAG7C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,qCAAqC;CASlD;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,8BAA8B,CAQzC;AAED,wEAAwE;AACxE,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,2BAA2B,GAAG,SAAS,CAKzC"}
|
package/dist/delivery-error.js
CHANGED
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
* continuing the agent would let later events render through a closed delivery.
|
|
6
6
|
*/
|
|
7
7
|
const CHANNEL_DELIVERY_TERMINATED = Symbol.for("copilotkit.channels.deliveryTerminated");
|
|
8
|
+
const CHANNEL_DELIVERY_ERROR_DETAILS = Symbol.for("copilotkit.channels.deliveryErrorDetails");
|
|
8
9
|
export class ChannelDeliveryTerminatedError extends Error {
|
|
9
10
|
[CHANNEL_DELIVERY_TERMINATED] = true;
|
|
11
|
+
[CHANNEL_DELIVERY_ERROR_DETAILS];
|
|
12
|
+
details;
|
|
10
13
|
constructor(message, options) {
|
|
11
14
|
super(message, options);
|
|
12
15
|
this.name = "ChannelDeliveryTerminatedError";
|
|
16
|
+
if (isChannelDeliveryErrorDetails(options?.details)) {
|
|
17
|
+
this.details = options.details;
|
|
18
|
+
this[CHANNEL_DELIVERY_ERROR_DETAILS] = options.details;
|
|
19
|
+
}
|
|
13
20
|
}
|
|
14
21
|
}
|
|
15
22
|
/**
|
|
@@ -20,3 +27,41 @@ export function isChannelDeliveryTerminatedError(error) {
|
|
|
20
27
|
error !== null &&
|
|
21
28
|
error[CHANNEL_DELIVERY_TERMINATED] === true);
|
|
22
29
|
}
|
|
30
|
+
/** Return only diagnostics stamped by the Channel delivery boundary. */
|
|
31
|
+
export function channelDeliveryErrorDetails(error) {
|
|
32
|
+
if (typeof error !== "object" || error === null)
|
|
33
|
+
return undefined;
|
|
34
|
+
return error[CHANNEL_DELIVERY_ERROR_DETAILS];
|
|
35
|
+
}
|
|
36
|
+
function isChannelDeliveryErrorDetails(value) {
|
|
37
|
+
if (typeof value !== "object" || value === null)
|
|
38
|
+
return false;
|
|
39
|
+
const details = value;
|
|
40
|
+
const allowed = new Set([
|
|
41
|
+
"category",
|
|
42
|
+
"provider",
|
|
43
|
+
"operation",
|
|
44
|
+
"effectKind",
|
|
45
|
+
"providerCode",
|
|
46
|
+
"validationMessages",
|
|
47
|
+
"retryable",
|
|
48
|
+
"deliveryId",
|
|
49
|
+
]);
|
|
50
|
+
return (Object.keys(details).every((field) => allowed.has(field)) &&
|
|
51
|
+
details.category === "validation" &&
|
|
52
|
+
(details.provider === "slack" || details.provider === "teams") &&
|
|
53
|
+
boundedString(details.operation, 80) &&
|
|
54
|
+
boundedString(details.effectKind, 80) &&
|
|
55
|
+
(details.providerCode === "invalid_arguments" ||
|
|
56
|
+
details.providerCode === "invalid_blocks") &&
|
|
57
|
+
details.retryable === false &&
|
|
58
|
+
boundedString(details.deliveryId, 512) &&
|
|
59
|
+
Array.isArray(details.validationMessages) &&
|
|
60
|
+
details.validationMessages.length <= 5 &&
|
|
61
|
+
details.validationMessages.every((message) => typeof message === "string" &&
|
|
62
|
+
message.length <= 256 &&
|
|
63
|
+
message.startsWith("invalid field at /")));
|
|
64
|
+
}
|
|
65
|
+
function boundedString(value, maxLength) {
|
|
66
|
+
return (typeof value === "string" && value.length > 0 && value.length <= maxLength);
|
|
67
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,7 +27,8 @@ export { mintId, stableStringify } from "./mint-id.js";
|
|
|
27
27
|
export { runAgentLoop } from "./run-loop.js";
|
|
28
28
|
export type { RunLoopArgs } from "./run-loop.js";
|
|
29
29
|
export { ChannelContinuationRequiredError, ChannelMemorySubjectRequiredError, ChannelMemoryUnavailableError, ChannelMemoryUserRequiredError, } from "./thread.js";
|
|
30
|
-
export { ChannelDeliveryTerminatedError, isChannelDeliveryTerminatedError, } from "./delivery-error.js";
|
|
30
|
+
export { channelDeliveryErrorDetails, ChannelDeliveryTerminatedError, isChannelDeliveryTerminatedError, } from "./delivery-error.js";
|
|
31
|
+
export type { ChannelDeliveryErrorDetails, ChannelDeliveryTerminatedErrorOptions, } from "./delivery-error.js";
|
|
31
32
|
export type { PlatformCodec } from "./codec.js";
|
|
32
33
|
export { ChannelMemoryGrantInvalidError, hasMemoryAccess, resolveMemoryGrant, } from "./memory.js";
|
|
33
34
|
export type { MemoryAccess, MemoryGrant, ResolvedChannelMemory, } from "./memory.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -35,7 +35,7 @@ export { mintId, stableStringify } from "./mint-id.js";
|
|
|
35
35
|
// Run loop
|
|
36
36
|
export { runAgentLoop } from "./run-loop.js";
|
|
37
37
|
export { ChannelContinuationRequiredError, ChannelMemorySubjectRequiredError, ChannelMemoryUnavailableError, ChannelMemoryUserRequiredError, } from "./thread.js";
|
|
38
|
-
export { ChannelDeliveryTerminatedError, isChannelDeliveryTerminatedError, } from "./delivery-error.js";
|
|
38
|
+
export { channelDeliveryErrorDetails, ChannelDeliveryTerminatedError, isChannelDeliveryTerminatedError, } from "./delivery-error.js";
|
|
39
39
|
// Per-run Intelligence Memory grants.
|
|
40
40
|
export { ChannelMemoryGrantInvalidError, hasMemoryAccess, resolveMemoryGrant, } from "./memory.js";
|
|
41
41
|
// Test utilities (also surfaces them for downstream adapter packages' tests).
|
package/dist/run-loop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-loop.d.ts","sourceRoot":"","sources":["../src/run-loop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EAGf,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"run-loop.d.ts","sourceRoot":"","sources":["../src/run-loop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EAGf,aAAa,EACd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,YAAY,CAAC;AAOpB,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAChC,eAAe,EAAE,mBAAmB,EAAE,CAAC;IACvC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,sDAAsD;IACtD,WAAW,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,kBAAkB,CAAC;IAC5D,sFAAsF;IACtF,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,aAAa,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACpC,gFAAgF;IAChF,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,UAAU,uBAAuB;IAC/B,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACjD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;CAClC;AAyHD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,uBAA4B,GACpC,eAAe,CAkCjB;AAkFD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,sBAAsB,CAAC,CA0LjC;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,GACrC,IAAI,CA4BN;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,IAAI,CAQN"}
|
package/dist/run-loop.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventType } from "@ag-ui/client";
|
|
2
2
|
import { parseToolArgs, stringifyHandlerResult } from "./tools.js";
|
|
3
|
-
import { isChannelDeliveryTerminatedError } from "./delivery-error.js";
|
|
3
|
+
import { channelDeliveryErrorDetails, isChannelDeliveryTerminatedError, } from "./delivery-error.js";
|
|
4
4
|
/**
|
|
5
5
|
* Merge two subscriber callback results while preserving either subscriber's
|
|
6
6
|
* request to stop propagation.
|
|
@@ -286,6 +286,7 @@ export async function runAgentLoop(args) {
|
|
|
286
286
|
return hasDeliveryError ? { ...result, deliveryError } : result;
|
|
287
287
|
}
|
|
288
288
|
catch (error) {
|
|
289
|
+
const details = channelDeliveryErrorDetails(error);
|
|
289
290
|
const runError = {
|
|
290
291
|
type: EventType.RUN_ERROR,
|
|
291
292
|
threadId: args.canonicalRun.threadId,
|
|
@@ -297,6 +298,20 @@ export async function runAgentLoop(args) {
|
|
|
297
298
|
typeof error.code === "string"
|
|
298
299
|
? { code: error.code }
|
|
299
300
|
: {}),
|
|
301
|
+
...(details
|
|
302
|
+
? {
|
|
303
|
+
category: details.category,
|
|
304
|
+
provider: details.provider,
|
|
305
|
+
operation: details.operation,
|
|
306
|
+
effectKind: details.effectKind,
|
|
307
|
+
providerCode: details.providerCode,
|
|
308
|
+
validationMessages: details.validationMessages,
|
|
309
|
+
retryable: details.retryable,
|
|
310
|
+
deliveryId: details.deliveryId,
|
|
311
|
+
details,
|
|
312
|
+
cause: details,
|
|
313
|
+
}
|
|
314
|
+
: {}),
|
|
300
315
|
};
|
|
301
316
|
try {
|
|
302
317
|
await emitCanonicalLifecycleEvent(runError, undefined, args, deferRendererError, isRendererClosed);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@copilotkit/channels-core",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"description": "Platform-agnostic JSX channel engine for CopilotKit (createChannel, Thread, PlatformAdapter, ActionStore).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
"@ag-ui/client": "0.0.57",
|
|
52
52
|
"@ag-ui/core": "0.0.57",
|
|
53
53
|
"zod-to-json-schema": "^3.24.1",
|
|
54
|
-
"@copilotkit/channels-ui": "~0.7.
|
|
55
|
-
"@copilotkit/
|
|
56
|
-
"@copilotkit/
|
|
54
|
+
"@copilotkit/channels-ui": "~0.7.3",
|
|
55
|
+
"@copilotkit/shared": "^1.66.1",
|
|
56
|
+
"@copilotkit/core": "^1.66.1"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/node": "^22.10.0",
|