@copilotkit/runtime 1.76.0 → 1.77.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 (43) hide show
  1. package/dist/package.cjs +2 -2
  2. package/dist/package.mjs +2 -2
  3. package/dist/v2/runtime/core/fetch-handler.cjs +16 -1
  4. package/dist/v2/runtime/core/fetch-handler.cjs.map +1 -1
  5. package/dist/v2/runtime/core/fetch-handler.d.cts.map +1 -1
  6. package/dist/v2/runtime/core/fetch-handler.d.mts.map +1 -1
  7. package/dist/v2/runtime/core/fetch-handler.mjs +16 -1
  8. package/dist/v2/runtime/core/fetch-handler.mjs.map +1 -1
  9. package/dist/v2/runtime/core/fetch-router.cjs +8 -0
  10. package/dist/v2/runtime/core/fetch-router.cjs.map +1 -1
  11. package/dist/v2/runtime/core/fetch-router.mjs +8 -0
  12. package/dist/v2/runtime/core/fetch-router.mjs.map +1 -1
  13. package/dist/v2/runtime/core/hooks.cjs.map +1 -1
  14. package/dist/v2/runtime/core/hooks.d.cts +3 -0
  15. package/dist/v2/runtime/core/hooks.d.cts.map +1 -1
  16. package/dist/v2/runtime/core/hooks.d.mts +3 -0
  17. package/dist/v2/runtime/core/hooks.d.mts.map +1 -1
  18. package/dist/v2/runtime/core/hooks.mjs.map +1 -1
  19. package/dist/v2/runtime/endpoints/single-route-helpers.cjs +1 -0
  20. package/dist/v2/runtime/endpoints/single-route-helpers.cjs.map +1 -1
  21. package/dist/v2/runtime/endpoints/single-route-helpers.mjs +1 -0
  22. package/dist/v2/runtime/endpoints/single-route-helpers.mjs.map +1 -1
  23. package/dist/v2/runtime/handlers/handle-trajectory-connect.cjs +41 -0
  24. package/dist/v2/runtime/handlers/handle-trajectory-connect.cjs.map +1 -0
  25. package/dist/v2/runtime/handlers/handle-trajectory-connect.mjs +40 -0
  26. package/dist/v2/runtime/handlers/handle-trajectory-connect.mjs.map +1 -0
  27. package/dist/v2/runtime/intelligence-platform/client.cjs +20 -0
  28. package/dist/v2/runtime/intelligence-platform/client.cjs.map +1 -1
  29. package/dist/v2/runtime/intelligence-platform/client.d.cts +10 -0
  30. package/dist/v2/runtime/intelligence-platform/client.d.cts.map +1 -1
  31. package/dist/v2/runtime/intelligence-platform/client.d.mts +10 -0
  32. package/dist/v2/runtime/intelligence-platform/client.d.mts.map +1 -1
  33. package/dist/v2/runtime/intelligence-platform/client.mjs +20 -0
  34. package/dist/v2/runtime/intelligence-platform/client.mjs.map +1 -1
  35. package/dist/v2/runtime/intelligence-platform/trajectories.cjs +80 -0
  36. package/dist/v2/runtime/intelligence-platform/trajectories.cjs.map +1 -0
  37. package/dist/v2/runtime/intelligence-platform/trajectories.d.cts +12 -0
  38. package/dist/v2/runtime/intelligence-platform/trajectories.d.cts.map +1 -0
  39. package/dist/v2/runtime/intelligence-platform/trajectories.d.mts +12 -0
  40. package/dist/v2/runtime/intelligence-platform/trajectories.d.mts.map +1 -0
  41. package/dist/v2/runtime/intelligence-platform/trajectories.mjs +76 -0
  42. package/dist/v2/runtime/intelligence-platform/trajectories.mjs.map +1 -0
  43. package/package.json +4 -4
@@ -0,0 +1,12 @@
1
+
2
+ //#region src/v2/runtime/intelligence-platform/trajectories.d.ts
3
+ interface TrajectoryConnectionGrant {
4
+ joinToken: string;
5
+ realtime: {
6
+ clientUrl: string;
7
+ topic: string;
8
+ };
9
+ }
10
+ //#endregion
11
+ export { TrajectoryConnectionGrant };
12
+ //# sourceMappingURL=trajectories.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trajectories.d.mts","names":[],"sources":["../../../../src/v2/runtime/intelligence-platform/trajectories.ts"],"mappings":";;UAEiB,yBAAA;EACf,SAAA;EACA,QAAA;IAAY,SAAA;IAAmB,KAAA;EAAA;AAAA"}
@@ -0,0 +1,76 @@
1
+ import "reflect-metadata";
2
+ import { z } from "zod";
3
+
4
+ //#region src/v2/runtime/intelligence-platform/trajectories.ts
5
+ const trajectoryIdSchema = z.string().uuid();
6
+ function isValidTrajectoryId(value) {
7
+ return trajectoryIdSchema.safeParse(value).success;
8
+ }
9
+ const joinResponseSchema = z.object({
10
+ joinToken: z.string().refine((value) => value.trim().length > 0),
11
+ trajectoryId: trajectoryIdSchema
12
+ });
13
+ const grantSchema = z.object({
14
+ joinToken: z.string().refine((value) => value.trim().length > 0),
15
+ realtime: z.object({
16
+ clientUrl: z.string().url().refine((value) => {
17
+ const url = new URL(value);
18
+ return (url.protocol === "wss:" || url.protocol === "ws:") && !url.username && !url.password;
19
+ }),
20
+ topic: z.string().refine((value) => value.trim().length > 0 && !/\p{Cc}/u.test(value))
21
+ })
22
+ });
23
+ const runtimeConfigurationErrorSchema = z.object({ error: z.object({ code: z.enum([
24
+ "AUTH_UNAUTHENTICATED",
25
+ "API_KEY_NOT_FOUND",
26
+ "ORG_NOT_FOUND",
27
+ "PROJECT_NOT_FOUND"
28
+ ]) }) });
29
+ const contractErrorSchema = z.object({ error: z.object({
30
+ code: z.enum([
31
+ "VALIDATION_ERROR",
32
+ "TRAJECTORY_APP_USER_CONFLICT",
33
+ "LEARNING_CONTAINER_NOT_FOUND",
34
+ "RATE_LIMIT_EXCEEDED",
35
+ "INTERNAL_SERVER_ERROR",
36
+ "MARKETPLACE_LICENSE_REQUIRED"
37
+ ]),
38
+ message: z.string().trim().min(1).max(512)
39
+ }) });
40
+ var TrajectoryConnectionError = class extends Error {
41
+ constructor(code, message, status) {
42
+ super(message);
43
+ this.code = code;
44
+ this.status = status;
45
+ this.name = "TrajectoryConnectionError";
46
+ }
47
+ };
48
+ function parseTrajectoryConnectionGrant(value, trajectoryId, clientUrl) {
49
+ const join = joinResponseSchema.safeParse(value);
50
+ const result = grantSchema.safeParse(join.success && join.data.trajectoryId === trajectoryId ? {
51
+ joinToken: join.data.joinToken,
52
+ realtime: {
53
+ clientUrl,
54
+ topic: `trajectory:${trajectoryId}`
55
+ }
56
+ } : void 0);
57
+ if (!result.success) throw new TrajectoryConnectionError("CONNECTION_FAILED", "Intelligence returned an invalid trajectory connection grant", 502);
58
+ return {
59
+ joinToken: result.data.joinToken,
60
+ realtime: {
61
+ clientUrl: result.data.realtime.clientUrl,
62
+ topic: result.data.realtime.topic
63
+ }
64
+ };
65
+ }
66
+ /** Forward only the public contract, never raw platform errors or credentials. */
67
+ function trajectoryResponseError(value, status, apiKey) {
68
+ if (runtimeConfigurationErrorSchema.safeParse(value).success) return new TrajectoryConnectionError("CONNECTION_FAILED", "Could not connect to Intelligence", 502);
69
+ const result = contractErrorSchema.safeParse(value);
70
+ if (result.success && !result.data.error.message.includes(apiKey)) return new TrajectoryConnectionError(result.data.error.code, result.data.error.message, status);
71
+ return new TrajectoryConnectionError("CONNECTION_FAILED", "Intelligence rejected the trajectory connection request", status);
72
+ }
73
+
74
+ //#endregion
75
+ export { TrajectoryConnectionError, isValidTrajectoryId, parseTrajectoryConnectionGrant, trajectoryResponseError };
76
+ //# sourceMappingURL=trajectories.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trajectories.mjs","names":[],"sources":["../../../../src/v2/runtime/intelligence-platform/trajectories.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport interface TrajectoryConnectionGrant {\n joinToken: string;\n realtime: { clientUrl: string; topic: string };\n}\n\nconst trajectoryIdSchema = z.string().uuid();\n\nexport function isValidTrajectoryId(value: unknown): value is string {\n return trajectoryIdSchema.safeParse(value).success;\n}\n\nconst joinResponseSchema = z.object({\n joinToken: z.string().refine((value) => value.trim().length > 0),\n trajectoryId: trajectoryIdSchema,\n});\n\nconst grantSchema = z.object({\n joinToken: z.string().refine((value) => value.trim().length > 0),\n realtime: z.object({\n clientUrl: z\n .string()\n .url()\n .refine((value) => {\n const url = new URL(value);\n return (\n (url.protocol === \"wss:\" || url.protocol === \"ws:\") &&\n !url.username &&\n !url.password\n );\n }),\n topic: z\n .string()\n .refine((value) => value.trim().length > 0 && !/\\p{Cc}/u.test(value)),\n }),\n});\n\nconst runtimeConfigurationErrorSchema = z.object({\n error: z.object({\n code: z.enum([\n \"AUTH_UNAUTHENTICATED\",\n \"API_KEY_NOT_FOUND\",\n \"ORG_NOT_FOUND\",\n \"PROJECT_NOT_FOUND\",\n ]),\n }),\n});\n\nconst contractErrorSchema = z.object({\n error: z.object({\n code: z.enum([\n \"VALIDATION_ERROR\",\n \"TRAJECTORY_APP_USER_CONFLICT\",\n \"LEARNING_CONTAINER_NOT_FOUND\",\n \"RATE_LIMIT_EXCEEDED\",\n \"INTERNAL_SERVER_ERROR\",\n \"MARKETPLACE_LICENSE_REQUIRED\",\n ]),\n message: z.string().trim().min(1).max(512),\n }),\n});\n\nexport class TrajectoryConnectionError extends Error {\n constructor(\n public readonly code: string,\n message: string,\n public readonly status: number,\n ) {\n super(message);\n this.name = \"TrajectoryConnectionError\";\n }\n}\n\nexport function parseTrajectoryConnectionGrant(\n value: unknown,\n trajectoryId: string,\n clientUrl: string,\n): TrajectoryConnectionGrant {\n const join = joinResponseSchema.safeParse(value);\n const result = grantSchema.safeParse(\n join.success && join.data.trajectoryId === trajectoryId\n ? {\n joinToken: join.data.joinToken,\n realtime: { clientUrl, topic: `trajectory:${trajectoryId}` },\n }\n : undefined,\n );\n if (!result.success) {\n throw new TrajectoryConnectionError(\n \"CONNECTION_FAILED\",\n \"Intelligence returned an invalid trajectory connection grant\",\n 502,\n );\n }\n return {\n joinToken: result.data.joinToken,\n realtime: {\n clientUrl: result.data.realtime.clientUrl,\n topic: result.data.realtime.topic,\n },\n };\n}\n\n/** Forward only the public contract, never raw platform errors or credentials. */\nexport function trajectoryResponseError(\n value: unknown,\n status: number,\n apiKey: string,\n): TrajectoryConnectionError {\n // These failures describe the Runtime's server credentials or tenant setup,\n // not the browser user's identity. Do not expose them as a client auth error.\n if (runtimeConfigurationErrorSchema.safeParse(value).success) {\n return new TrajectoryConnectionError(\n \"CONNECTION_FAILED\",\n \"Could not connect to Intelligence\",\n 502,\n );\n }\n const result = contractErrorSchema.safeParse(value);\n if (result.success && !result.data.error.message.includes(apiKey)) {\n return new TrajectoryConnectionError(\n result.data.error.code,\n result.data.error.message,\n status,\n );\n }\n return new TrajectoryConnectionError(\n \"CONNECTION_FAILED\",\n \"Intelligence rejected the trajectory connection request\",\n status,\n );\n}\n"],"mappings":";;;;AAOA,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM;AAE5C,SAAgB,oBAAoB,OAAiC;AACnE,QAAO,mBAAmB,UAAU,MAAM,CAAC;;AAG7C,MAAM,qBAAqB,EAAE,OAAO;CAClC,WAAW,EAAE,QAAQ,CAAC,QAAQ,UAAU,MAAM,MAAM,CAAC,SAAS,EAAE;CAChE,cAAc;CACf,CAAC;AAEF,MAAM,cAAc,EAAE,OAAO;CAC3B,WAAW,EAAE,QAAQ,CAAC,QAAQ,UAAU,MAAM,MAAM,CAAC,SAAS,EAAE;CAChE,UAAU,EAAE,OAAO;EACjB,WAAW,EACR,QAAQ,CACR,KAAK,CACL,QAAQ,UAAU;GACjB,MAAM,MAAM,IAAI,IAAI,MAAM;AAC1B,WACG,IAAI,aAAa,UAAU,IAAI,aAAa,UAC7C,CAAC,IAAI,YACL,CAAC,IAAI;IAEP;EACJ,OAAO,EACJ,QAAQ,CACR,QAAQ,UAAU,MAAM,MAAM,CAAC,SAAS,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;EACxE,CAAC;CACH,CAAC;AAEF,MAAM,kCAAkC,EAAE,OAAO,EAC/C,OAAO,EAAE,OAAO,EACd,MAAM,EAAE,KAAK;CACX;CACA;CACA;CACA;CACD,CAAC,EACH,CAAC,EACH,CAAC;AAEF,MAAM,sBAAsB,EAAE,OAAO,EACnC,OAAO,EAAE,OAAO;CACd,MAAM,EAAE,KAAK;EACX;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CACF,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI;CAC3C,CAAC,EACH,CAAC;AAEF,IAAa,4BAAb,cAA+C,MAAM;CACnD,YACE,AAAgB,MAChB,SACA,AAAgB,QAChB;AACA,QAAM,QAAQ;EAJE;EAEA;AAGhB,OAAK,OAAO;;;AAIhB,SAAgB,+BACd,OACA,cACA,WAC2B;CAC3B,MAAM,OAAO,mBAAmB,UAAU,MAAM;CAChD,MAAM,SAAS,YAAY,UACzB,KAAK,WAAW,KAAK,KAAK,iBAAiB,eACvC;EACE,WAAW,KAAK,KAAK;EACrB,UAAU;GAAE;GAAW,OAAO,cAAc;GAAgB;EAC7D,GACD,OACL;AACD,KAAI,CAAC,OAAO,QACV,OAAM,IAAI,0BACR,qBACA,gEACA,IACD;AAEH,QAAO;EACL,WAAW,OAAO,KAAK;EACvB,UAAU;GACR,WAAW,OAAO,KAAK,SAAS;GAChC,OAAO,OAAO,KAAK,SAAS;GAC7B;EACF;;;AAIH,SAAgB,wBACd,OACA,QACA,QAC2B;AAG3B,KAAI,gCAAgC,UAAU,MAAM,CAAC,QACnD,QAAO,IAAI,0BACT,qBACA,qCACA,IACD;CAEH,MAAM,SAAS,oBAAoB,UAAU,MAAM;AACnD,KAAI,OAAO,WAAW,CAAC,OAAO,KAAK,MAAM,QAAQ,SAAS,OAAO,CAC/D,QAAO,IAAI,0BACT,OAAO,KAAK,MAAM,MAClB,OAAO,KAAK,MAAM,SAClB,OACD;AAEH,QAAO,IAAI,0BACT,qBACA,2DACA,OACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@copilotkit/runtime",
3
- "version": "1.76.0",
3
+ "version": "1.77.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "ai",
@@ -72,7 +72,7 @@
72
72
  "@ag-ui/client": "1.0.1",
73
73
  "@ag-ui/core": "1.0.1",
74
74
  "@ag-ui/encoder": "1.0.1",
75
- "@ag-ui/langgraph": "0.0.43",
75
+ "@ag-ui/langgraph": "0.0.44",
76
76
  "@ag-ui/mcp-apps-middleware": "^0.1.1",
77
77
  "@ag-ui/mcp-middleware": "0.0.2",
78
78
  "@ai-sdk/anthropic": "^3.0.49",
@@ -109,9 +109,9 @@
109
109
  "ws": "^8.18.0",
110
110
  "zod": "^3.25.18",
111
111
  "yauzl": "2.10.0",
112
+ "@copilotkit/channels-core": "^0.11.0",
112
113
  "@copilotkit/channels-intelligence": "0.11.0",
113
- "@copilotkit/shared": "1.76.0",
114
- "@copilotkit/channels-core": "^0.11.0"
114
+ "@copilotkit/shared": "1.77.0"
115
115
  },
116
116
  "devDependencies": {
117
117
  "@copilotkit/aimock": "latest",