@copilotkit/runtime 1.80.0 → 1.82.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/_virtual/_rolldown/runtime.mjs +15 -1
- package/dist/agent/index.cjs +10 -7
- package/dist/agent/index.cjs.map +1 -1
- package/dist/agent/index.d.cts +1 -1
- package/dist/agent/index.d.cts.map +1 -1
- package/dist/agent/index.d.mts.map +1 -1
- package/dist/agent/index.mjs +10 -7
- package/dist/agent/index.mjs.map +1 -1
- package/dist/lib/runtime/copilot-runtime.cjs +17 -2
- 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 +18 -3
- package/dist/lib/runtime/copilot-runtime.mjs.map +1 -1
- package/dist/lib/runtime/legacy-service-adapter-agent.cjs +360 -0
- package/dist/lib/runtime/legacy-service-adapter-agent.cjs.map +1 -0
- package/dist/lib/runtime/legacy-service-adapter-agent.mjs +359 -0
- package/dist/lib/runtime/legacy-service-adapter-agent.mjs.map +1 -0
- package/dist/lib/runtime/telemetry-agent-runner.cjs +1 -1
- package/dist/lib/runtime/telemetry-agent-runner.cjs.map +1 -1
- package/dist/lib/runtime/telemetry-agent-runner.d.cts.map +1 -1
- package/dist/lib/runtime/telemetry-agent-runner.d.mts.map +1 -1
- package/dist/lib/runtime/telemetry-agent-runner.mjs +1 -1
- package/dist/lib/runtime/telemetry-agent-runner.mjs.map +1 -1
- package/dist/lib/telemetry-client.cjs +12 -1
- package/dist/lib/telemetry-client.cjs.map +1 -1
- package/dist/lib/telemetry-client.mjs +12 -1
- package/dist/lib/telemetry-client.mjs.map +1 -1
- package/dist/package.cjs +2 -2
- package/dist/package.mjs +2 -2
- package/dist/service-adapters/events.cjs +91 -0
- package/dist/service-adapters/events.cjs.map +1 -1
- package/dist/service-adapters/events.d.cts +6 -1
- package/dist/service-adapters/events.d.cts.map +1 -1
- package/dist/service-adapters/events.d.mts +6 -1
- package/dist/service-adapters/events.d.mts.map +1 -1
- package/dist/service-adapters/events.mjs +90 -1
- package/dist/service-adapters/events.mjs.map +1 -1
- package/dist/service-adapters/langchain/langchain-adapter.cjs +1 -1
- package/dist/service-adapters/langchain/langchain-adapter.cjs.map +1 -1
- package/dist/service-adapters/langchain/langchain-adapter.d.cts.map +1 -1
- package/dist/service-adapters/langchain/langchain-adapter.d.mts.map +1 -1
- package/dist/service-adapters/langchain/langchain-adapter.mjs +2 -2
- package/dist/service-adapters/langchain/langchain-adapter.mjs.map +1 -1
- package/dist/service-adapters/langchain/utils.cjs +53 -15
- package/dist/service-adapters/langchain/utils.cjs.map +1 -1
- package/dist/service-adapters/langchain/utils.mjs +53 -16
- package/dist/service-adapters/langchain/utils.mjs.map +1 -1
- package/dist/v2/index.cjs +5 -0
- package/dist/v2/index.d.cts +5 -2
- package/dist/v2/index.d.mts +5 -2
- package/dist/v2/index.mjs +4 -2
- package/dist/v2/runtime/core/channel-manager.cjs +1 -0
- package/dist/v2/runtime/core/channel-manager.cjs.map +1 -1
- package/dist/v2/runtime/core/channel-manager.mjs +1 -0
- package/dist/v2/runtime/core/channel-manager.mjs.map +1 -1
- package/dist/v2/runtime/core/fetch-handler.cjs +1 -1
- package/dist/v2/runtime/core/fetch-handler.cjs.map +1 -1
- package/dist/v2/runtime/core/fetch-handler.mjs +1 -1
- package/dist/v2/runtime/core/fetch-handler.mjs.map +1 -1
- package/dist/v2/runtime/core/package-info.cjs +1 -1
- package/dist/v2/runtime/core/package-info.mjs +1 -1
- package/dist/v2/runtime/core/runtime.cjs +5 -1
- package/dist/v2/runtime/core/runtime.cjs.map +1 -1
- package/dist/v2/runtime/core/runtime.d.cts +15 -0
- package/dist/v2/runtime/core/runtime.d.cts.map +1 -1
- package/dist/v2/runtime/core/runtime.d.mts +15 -0
- package/dist/v2/runtime/core/runtime.d.mts.map +1 -1
- package/dist/v2/runtime/core/runtime.mjs +5 -1
- package/dist/v2/runtime/core/runtime.mjs.map +1 -1
- package/dist/v2/runtime/endpoints/express.cjs +2 -2
- package/dist/v2/runtime/endpoints/express.cjs.map +1 -1
- package/dist/v2/runtime/endpoints/express.mjs +2 -2
- package/dist/v2/runtime/endpoints/express.mjs.map +1 -1
- package/dist/v2/runtime/endpoints/node-fetch-handler.cjs +51 -1
- package/dist/v2/runtime/endpoints/node-fetch-handler.cjs.map +1 -1
- package/dist/v2/runtime/endpoints/node-fetch-handler.d.cts.map +1 -1
- package/dist/v2/runtime/endpoints/node-fetch-handler.d.mts.map +1 -1
- package/dist/v2/runtime/endpoints/node-fetch-handler.mjs +52 -2
- package/dist/v2/runtime/endpoints/node-fetch-handler.mjs.map +1 -1
- package/dist/v2/runtime/generative-ui/generative-ui-middleware.cjs +394 -0
- package/dist/v2/runtime/generative-ui/generative-ui-middleware.cjs.map +1 -0
- package/dist/v2/runtime/generative-ui/generative-ui-middleware.d.cts +21 -0
- package/dist/v2/runtime/generative-ui/generative-ui-middleware.d.cts.map +1 -0
- package/dist/v2/runtime/generative-ui/generative-ui-middleware.d.mts +21 -0
- package/dist/v2/runtime/generative-ui/generative-ui-middleware.d.mts.map +1 -0
- package/dist/v2/runtime/generative-ui/generative-ui-middleware.mjs +393 -0
- package/dist/v2/runtime/generative-ui/generative-ui-middleware.mjs.map +1 -0
- package/dist/v2/runtime/generative-ui/index.d.cts +3 -0
- package/dist/v2/runtime/generative-ui/index.d.mts +3 -0
- package/dist/v2/runtime/generative-ui/surface-writer.cjs +86 -0
- package/dist/v2/runtime/generative-ui/surface-writer.cjs.map +1 -0
- package/dist/v2/runtime/generative-ui/surface-writer.d.cts +33 -0
- package/dist/v2/runtime/generative-ui/surface-writer.d.cts.map +1 -0
- package/dist/v2/runtime/generative-ui/surface-writer.d.mts +33 -0
- package/dist/v2/runtime/generative-ui/surface-writer.d.mts.map +1 -0
- package/dist/v2/runtime/generative-ui/surface-writer.mjs +85 -0
- package/dist/v2/runtime/generative-ui/surface-writer.mjs.map +1 -0
- package/dist/v2/runtime/handlers/handle-run.cjs +8 -3
- package/dist/v2/runtime/handlers/handle-run.cjs.map +1 -1
- package/dist/v2/runtime/handlers/handle-run.mjs +5 -1
- package/dist/v2/runtime/handlers/handle-run.mjs.map +1 -1
- package/dist/v2/runtime/handlers/intelligence/run.cjs +3 -0
- package/dist/v2/runtime/handlers/intelligence/run.cjs.map +1 -1
- package/dist/v2/runtime/handlers/intelligence/run.mjs +3 -0
- package/dist/v2/runtime/handlers/intelligence/run.mjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/agent-utils.cjs +7 -0
- package/dist/v2/runtime/handlers/shared/agent-utils.cjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/agent-utils.mjs +7 -0
- package/dist/v2/runtime/handlers/shared/agent-utils.mjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/mcp-apps-servers.cjs +2 -1
- package/dist/v2/runtime/handlers/shared/mcp-apps-servers.cjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/mcp-apps-servers.mjs +3 -1
- package/dist/v2/runtime/handlers/shared/mcp-apps-servers.mjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/sse-response.cjs +1 -1
- package/dist/v2/runtime/handlers/shared/sse-response.cjs.map +1 -1
- package/dist/v2/runtime/handlers/shared/sse-response.mjs +1 -1
- package/dist/v2/runtime/handlers/shared/sse-response.mjs.map +1 -1
- package/dist/v2/runtime/index.d.cts +5 -1
- package/dist/v2/runtime/index.d.cts.map +1 -1
- package/dist/v2/runtime/index.d.mts +5 -1
- package/dist/v2/runtime/index.d.mts.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.cjs +85 -1
- package/dist/v2/runtime/intelligence-platform/client.cjs.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.d.cts +24 -1
- package/dist/v2/runtime/intelligence-platform/client.d.cts.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.d.mts +24 -1
- package/dist/v2/runtime/intelligence-platform/client.d.mts.map +1 -1
- package/dist/v2/runtime/intelligence-platform/client.mjs +85 -1
- package/dist/v2/runtime/intelligence-platform/client.mjs.map +1 -1
- package/dist/v2/runtime/intelligence-platform/experimental.d.cts +27 -0
- package/dist/v2/runtime/intelligence-platform/experimental.d.cts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/experimental.d.mts +27 -0
- package/dist/v2/runtime/intelligence-platform/experimental.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/index.d.cts +2 -1
- package/dist/v2/runtime/intelligence-platform/index.d.mts +2 -1
- package/dist/v2/runtime/intelligence-platform/learning-management.cjs +204 -0
- package/dist/v2/runtime/intelligence-platform/learning-management.cjs.map +1 -0
- package/dist/v2/runtime/intelligence-platform/learning-management.d.cts +112 -0
- package/dist/v2/runtime/intelligence-platform/learning-management.d.cts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/learning-management.d.mts +112 -0
- package/dist/v2/runtime/intelligence-platform/learning-management.d.mts.map +1 -0
- package/dist/v2/runtime/intelligence-platform/learning-management.mjs +194 -0
- package/dist/v2/runtime/intelligence-platform/learning-management.mjs.map +1 -0
- package/dist/v2/runtime/telemetry/telemetry-client.cjs +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.cjs.map +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.mjs +1 -1
- package/dist/v2/runtime/telemetry/telemetry-client.mjs.map +1 -1
- package/package.json +6 -6
- package/dist/v2/runtime/endpoints/express-fetch-bridge.cjs +0 -82
- package/dist/v2/runtime/endpoints/express-fetch-bridge.cjs.map +0 -1
- package/dist/v2/runtime/endpoints/express-fetch-bridge.mjs +0 -81
- package/dist/v2/runtime/endpoints/express-fetch-bridge.mjs.map +0 -1
|
@@ -11,6 +11,17 @@ const telemetryClient = new TelemetryClient({
|
|
|
11
11
|
packageName: packageJson.name,
|
|
12
12
|
packageVersion: packageJson.version
|
|
13
13
|
});
|
|
14
|
+
/**
|
|
15
|
+
* The configured agents, counted without touching `runtime.instance`. Every
|
|
16
|
+
* v1 endpoint captures telemetry before it calls `handleServiceAdapter`, and
|
|
17
|
+
* reading the instance there builds the v2 runtime with these agents, so the
|
|
18
|
+
* per-request factory `handleServiceAdapter` installs afterwards was never
|
|
19
|
+
* used and no v1 `actions` or `mcpServers` tool reached an agent.
|
|
20
|
+
*/
|
|
21
|
+
function countConfiguredAgents(agents) {
|
|
22
|
+
if (!agents || typeof agents !== "object" || "then" in agents) return 0;
|
|
23
|
+
return Object.keys(agents).length;
|
|
24
|
+
}
|
|
14
25
|
function getRuntimeInstanceTelemetryInfo(options) {
|
|
15
26
|
const runtime = options.runtime;
|
|
16
27
|
const remoteEndpoints = runtime.params?.remoteEndpoints ?? [];
|
|
@@ -41,7 +52,7 @@ function getRuntimeInstanceTelemetryInfo(options) {
|
|
|
41
52
|
actionsAmount: runtime.params?.actions?.length ?? 0,
|
|
42
53
|
endpointsAmount: remoteEndpoints.length,
|
|
43
54
|
endpointTypes: endpointsInfo.endpointTypes,
|
|
44
|
-
agentsAmount:
|
|
55
|
+
agentsAmount: countConfiguredAgents(runtime.params?.agents),
|
|
45
56
|
hashedLgcKey: endpointsInfo.hashedKey,
|
|
46
57
|
"cloud.api_key_provided": apiKeyProvided,
|
|
47
58
|
...apiKeyProvided ? { "cloud.public_api_key": publicApiKey } : {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry-client.mjs","names":[],"sources":["../../../src/v1-deprecated/lib/telemetry-client.ts"],"sourcesContent":["import { TelemetryClient } from \"@copilotkit/shared/telemetry\";\nimport { createHash } from \"node:crypto\";\nimport { CopilotRuntime, resolveEndpointType } from \"./runtime/copilot-runtime\";\nimport type { RuntimeInstanceCreatedInfo } from \"@copilotkit/shared/src/telemetry/events\";\nimport type { CreateCopilotRuntimeServerOptions } from \"./integrations/shared\";\nimport type { LangGraphPlatformEndpoint } from \"./runtime/types\";\nimport { EndpointType } from \"./runtime/types\";\nconst packageJson = require(\"../../../package.json\");\n\nconst telemetryClient = new TelemetryClient({\n packageName: packageJson.name,\n packageVersion: packageJson.version,\n});\n\nexport function getRuntimeInstanceTelemetryInfo(\n options: CreateCopilotRuntimeServerOptions,\n): RuntimeInstanceCreatedInfo {\n const runtime = options.runtime;\n const remoteEndpoints = runtime.params?.remoteEndpoints ?? [];\n const endpointsInfo = remoteEndpoints.reduce(\n (acc, endpoint) => {\n let info = { ...acc };\n\n const endpointType = resolveEndpointType(endpoint);\n if (!info.endpointTypes.includes(endpointType)) {\n info = {\n ...info,\n endpointTypes: [...info.endpointTypes, endpointType],\n };\n }\n\n if (endpointType === EndpointType.LangGraphPlatform) {\n // When type is resolved, recreating a const with casting of type\n const ep = endpoint as LangGraphPlatformEndpoint;\n info = {\n ...info,\n agentsAmount: ep.agents.length,\n hashedKey: ep.langsmithApiKey\n ? createHash(\"sha256\").update(ep.langsmithApiKey).digest(\"hex\")\n : null,\n };\n }\n\n return info;\n },\n { endpointTypes: [], agentsAmount: null, hashedKey: null },\n );\n\n // Get public API key from options.cloud.publicApiKey\n const publicApiKey = options.cloud?.publicApiKey;\n const apiKeyProvided = !!publicApiKey && publicApiKey.trim().length > 0;\n\n return {\n actionsAmount: runtime.params?.actions?.length ?? 0,\n endpointsAmount: remoteEndpoints.length,\n endpointTypes: endpointsInfo.endpointTypes,\n agentsAmount:
|
|
1
|
+
{"version":3,"file":"telemetry-client.mjs","names":[],"sources":["../../../src/v1-deprecated/lib/telemetry-client.ts"],"sourcesContent":["import { TelemetryClient } from \"@copilotkit/shared/telemetry\";\nimport { createHash } from \"node:crypto\";\nimport { CopilotRuntime, resolveEndpointType } from \"./runtime/copilot-runtime\";\nimport type { RuntimeInstanceCreatedInfo } from \"@copilotkit/shared/src/telemetry/events\";\nimport type { CreateCopilotRuntimeServerOptions } from \"./integrations/shared\";\nimport type { LangGraphPlatformEndpoint } from \"./runtime/types\";\nimport { EndpointType } from \"./runtime/types\";\nconst packageJson = require(\"../../../package.json\");\n\nconst telemetryClient = new TelemetryClient({\n packageName: packageJson.name,\n packageVersion: packageJson.version,\n});\n\n/**\n * The configured agents, counted without touching `runtime.instance`. Every\n * v1 endpoint captures telemetry before it calls `handleServiceAdapter`, and\n * reading the instance there builds the v2 runtime with these agents, so the\n * per-request factory `handleServiceAdapter` installs afterwards was never\n * used and no v1 `actions` or `mcpServers` tool reached an agent.\n */\nfunction countConfiguredAgents(agents: unknown): number {\n if (!agents || typeof agents !== \"object\" || \"then\" in agents) {\n return 0;\n }\n return Object.keys(agents).length;\n}\n\nexport function getRuntimeInstanceTelemetryInfo(\n options: CreateCopilotRuntimeServerOptions,\n): RuntimeInstanceCreatedInfo {\n const runtime = options.runtime;\n const remoteEndpoints = runtime.params?.remoteEndpoints ?? [];\n const endpointsInfo = remoteEndpoints.reduce(\n (acc, endpoint) => {\n let info = { ...acc };\n\n const endpointType = resolveEndpointType(endpoint);\n if (!info.endpointTypes.includes(endpointType)) {\n info = {\n ...info,\n endpointTypes: [...info.endpointTypes, endpointType],\n };\n }\n\n if (endpointType === EndpointType.LangGraphPlatform) {\n // When type is resolved, recreating a const with casting of type\n const ep = endpoint as LangGraphPlatformEndpoint;\n info = {\n ...info,\n agentsAmount: ep.agents.length,\n hashedKey: ep.langsmithApiKey\n ? createHash(\"sha256\").update(ep.langsmithApiKey).digest(\"hex\")\n : null,\n };\n }\n\n return info;\n },\n { endpointTypes: [], agentsAmount: null, hashedKey: null },\n );\n\n // Get public API key from options.cloud.publicApiKey\n const publicApiKey = options.cloud?.publicApiKey;\n const apiKeyProvided = !!publicApiKey && publicApiKey.trim().length > 0;\n\n return {\n actionsAmount: runtime.params?.actions?.length ?? 0,\n endpointsAmount: remoteEndpoints.length,\n endpointTypes: endpointsInfo.endpointTypes,\n agentsAmount: countConfiguredAgents(runtime.params?.agents),\n hashedLgcKey: endpointsInfo.hashedKey,\n \"cloud.api_key_provided\": apiKeyProvided,\n ...(apiKeyProvided ? { \"cloud.public_api_key\": publicApiKey } : {}),\n ...(options.cloud?.baseUrl\n ? { \"cloud.base_url\": options.cloud.baseUrl }\n : {}),\n } as RuntimeInstanceCreatedInfo;\n}\n\nexport default telemetryClient;\n"],"mappings":";;;;;;;;AAOA,MAAM;AAEN,MAAM,kBAAkB,IAAI,gBAAgB;CAC1C,aAAa,YAAY;CACzB,gBAAgB,YAAY;CAC7B,CAAC;;;;;;;;AASF,SAAS,sBAAsB,QAAyB;AACtD,KAAI,CAAC,UAAU,OAAO,WAAW,YAAY,UAAU,OACrD,QAAO;AAET,QAAO,OAAO,KAAK,OAAO,CAAC;;AAG7B,SAAgB,gCACd,SAC4B;CAC5B,MAAM,UAAU,QAAQ;CACxB,MAAM,kBAAkB,QAAQ,QAAQ,mBAAmB,EAAE;CAC7D,MAAM,gBAAgB,gBAAgB,QACnC,KAAK,aAAa;EACjB,IAAI,OAAO,EAAE,GAAG,KAAK;EAErB,MAAM,eAAe,oBAAoB,SAAS;AAClD,MAAI,CAAC,KAAK,cAAc,SAAS,aAAa,CAC5C,QAAO;GACL,GAAG;GACH,eAAe,CAAC,GAAG,KAAK,eAAe,aAAa;GACrD;AAGH,MAAI,iBAAiB,aAAa,mBAAmB;GAEnD,MAAM,KAAK;AACX,UAAO;IACL,GAAG;IACH,cAAc,GAAG,OAAO;IACxB,WAAW,GAAG,kBACV,WAAW,SAAS,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,MAAM,GAC7D;IACL;;AAGH,SAAO;IAET;EAAE,eAAe,EAAE;EAAE,cAAc;EAAM,WAAW;EAAM,CAC3D;CAGD,MAAM,eAAe,QAAQ,OAAO;CACpC,MAAM,iBAAiB,CAAC,CAAC,gBAAgB,aAAa,MAAM,CAAC,SAAS;AAEtE,QAAO;EACL,eAAe,QAAQ,QAAQ,SAAS,UAAU;EAClD,iBAAiB,gBAAgB;EACjC,eAAe,cAAc;EAC7B,cAAc,sBAAsB,QAAQ,QAAQ,OAAO;EAC3D,cAAc,cAAc;EAC5B,0BAA0B;EAC1B,GAAI,iBAAiB,EAAE,wBAAwB,cAAc,GAAG,EAAE;EAClE,GAAI,QAAQ,OAAO,UACf,EAAE,kBAAkB,QAAQ,MAAM,SAAS,GAC3C,EAAE;EACP"}
|
package/dist/package.cjs
CHANGED
|
@@ -5,7 +5,7 @@ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
|
|
|
5
5
|
var require_package = /* @__PURE__ */ require_runtime.__commonJSMin(((exports, module) => {
|
|
6
6
|
module.exports = {
|
|
7
7
|
"name": "@copilotkit/runtime",
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.82.0",
|
|
9
9
|
"private": false,
|
|
10
10
|
"keywords": [
|
|
11
11
|
"ai",
|
|
@@ -77,7 +77,7 @@ var require_package = /* @__PURE__ */ require_runtime.__commonJSMin(((exports, m
|
|
|
77
77
|
"generate-graphql-schema": "node -e \"const fs=require('fs');fs.rmSync('__snapshots__',{recursive:true,force:true})\" && ts-node --transpile-only ./scripts/generate-gql-schema.ts",
|
|
78
78
|
"link:global": "pnpm link --global",
|
|
79
79
|
"unlink:global": "pnpm unlink --global",
|
|
80
|
-
"check-dts": "tsx ../../scripts/validate-dts-ambient.ts dist && tsx ../../scripts/validate-dts-imports.ts dist && tsx ../../scripts/validate-optional-peer-entries.ts . && tsx ../../scripts/validate-module-scope-create-require.ts . && tsc --noEmit -p type-fixtures/express4/tsconfig.json && tsc --noEmit -p type-fixtures/express5/tsconfig.json",
|
|
80
|
+
"check-dts": "tsx ../../scripts/validate-dts-ambient.ts dist && tsx ../../scripts/validate-dts-imports.ts dist && tsx ../../scripts/validate-optional-peer-entries.ts . && tsx ../../scripts/validate-module-scope-create-require.ts . && tsc --noEmit -p type-fixtures/express4/tsconfig.json && tsc --noEmit -p type-fixtures/express5/tsconfig.json && tsc --noEmit -p type-fixtures/learning-management/tsconfig.json",
|
|
81
81
|
"publint": "publint .",
|
|
82
82
|
"attw": "attw --pack . --profile node16"
|
|
83
83
|
},
|
package/dist/package.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { __commonJSMin } from "./_virtual/_rolldown/runtime.mjs";
|
|
|
5
5
|
var require_package = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
6
6
|
module.exports = {
|
|
7
7
|
"name": "@copilotkit/runtime",
|
|
8
|
-
"version": "1.
|
|
8
|
+
"version": "1.82.0",
|
|
9
9
|
"private": false,
|
|
10
10
|
"keywords": [
|
|
11
11
|
"ai",
|
|
@@ -77,7 +77,7 @@ var require_package = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
77
77
|
"generate-graphql-schema": "node -e \"const fs=require('fs');fs.rmSync('__snapshots__',{recursive:true,force:true})\" && ts-node --transpile-only ./scripts/generate-gql-schema.ts",
|
|
78
78
|
"link:global": "pnpm link --global",
|
|
79
79
|
"unlink:global": "pnpm unlink --global",
|
|
80
|
-
"check-dts": "tsx ../../scripts/validate-dts-ambient.ts dist && tsx ../../scripts/validate-dts-imports.ts dist && tsx ../../scripts/validate-optional-peer-entries.ts . && tsx ../../scripts/validate-module-scope-create-require.ts . && tsc --noEmit -p type-fixtures/express4/tsconfig.json && tsc --noEmit -p type-fixtures/express5/tsconfig.json",
|
|
80
|
+
"check-dts": "tsx ../../scripts/validate-dts-ambient.ts dist && tsx ../../scripts/validate-dts-imports.ts dist && tsx ../../scripts/validate-optional-peer-entries.ts . && tsx ../../scripts/validate-module-scope-create-require.ts . && tsc --noEmit -p type-fixtures/express4/tsconfig.json && tsc --noEmit -p type-fixtures/express5/tsconfig.json && tsc --noEmit -p type-fixtures/learning-management/tsconfig.json",
|
|
81
81
|
"publint": "publint .",
|
|
82
82
|
"attw": "attw --pack . --profile node16"
|
|
83
83
|
},
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
require("reflect-metadata");
|
|
2
|
+
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
|
|
3
|
+
const require_index = require('../graphql/types/converted/index.cjs');
|
|
2
4
|
let _copilotkit_shared = require("@copilotkit/shared");
|
|
3
5
|
let rxjs = require("rxjs");
|
|
4
6
|
|
|
@@ -22,8 +24,97 @@ let RuntimeMetaEventName = /* @__PURE__ */ function(RuntimeMetaEventName) {
|
|
|
22
24
|
RuntimeMetaEventName["CopilotKitLangGraphInterruptEvent"] = "CopilotKitLangGraphInterruptEvent";
|
|
23
25
|
return RuntimeMetaEventName;
|
|
24
26
|
}({});
|
|
27
|
+
var RuntimeEventSubject = class extends rxjs.ReplaySubject {
|
|
28
|
+
constructor(signal) {
|
|
29
|
+
super();
|
|
30
|
+
this.signal = signal;
|
|
31
|
+
}
|
|
32
|
+
sendTextMessageStart({ messageId, parentMessageId }) {
|
|
33
|
+
this.next({
|
|
34
|
+
type: RuntimeEventTypes.TextMessageStart,
|
|
35
|
+
messageId,
|
|
36
|
+
parentMessageId
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
sendTextMessageContent({ messageId, content }) {
|
|
40
|
+
this.next({
|
|
41
|
+
type: RuntimeEventTypes.TextMessageContent,
|
|
42
|
+
content,
|
|
43
|
+
messageId
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
sendTextMessageEnd({ messageId }) {
|
|
47
|
+
this.next({
|
|
48
|
+
type: RuntimeEventTypes.TextMessageEnd,
|
|
49
|
+
messageId
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
sendTextMessage(messageId, content) {
|
|
53
|
+
this.sendTextMessageStart({ messageId });
|
|
54
|
+
this.sendTextMessageContent({
|
|
55
|
+
messageId,
|
|
56
|
+
content
|
|
57
|
+
});
|
|
58
|
+
this.sendTextMessageEnd({ messageId });
|
|
59
|
+
}
|
|
60
|
+
sendActionExecutionStart({ actionExecutionId, actionName, parentMessageId }) {
|
|
61
|
+
this.next({
|
|
62
|
+
type: RuntimeEventTypes.ActionExecutionStart,
|
|
63
|
+
actionExecutionId,
|
|
64
|
+
actionName,
|
|
65
|
+
parentMessageId
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
sendActionExecutionArgs({ actionExecutionId, args }) {
|
|
69
|
+
this.next({
|
|
70
|
+
type: RuntimeEventTypes.ActionExecutionArgs,
|
|
71
|
+
args,
|
|
72
|
+
actionExecutionId
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
sendActionExecutionEnd({ actionExecutionId }) {
|
|
76
|
+
this.next({
|
|
77
|
+
type: RuntimeEventTypes.ActionExecutionEnd,
|
|
78
|
+
actionExecutionId
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
sendActionExecution({ actionExecutionId, actionName, args, parentMessageId }) {
|
|
82
|
+
this.sendActionExecutionStart({
|
|
83
|
+
actionExecutionId,
|
|
84
|
+
actionName,
|
|
85
|
+
parentMessageId
|
|
86
|
+
});
|
|
87
|
+
this.sendActionExecutionArgs({
|
|
88
|
+
actionExecutionId,
|
|
89
|
+
args
|
|
90
|
+
});
|
|
91
|
+
this.sendActionExecutionEnd({ actionExecutionId });
|
|
92
|
+
}
|
|
93
|
+
sendActionExecutionResult({ actionExecutionId, actionName, result, error }) {
|
|
94
|
+
this.next({
|
|
95
|
+
type: RuntimeEventTypes.ActionExecutionResult,
|
|
96
|
+
actionName,
|
|
97
|
+
actionExecutionId,
|
|
98
|
+
result: require_index.ResultMessage.encodeResult(result, error)
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
sendAgentStateMessage({ threadId, agentName, nodeName, runId, active, role, state, running }) {
|
|
102
|
+
this.next({
|
|
103
|
+
type: RuntimeEventTypes.AgentStateMessage,
|
|
104
|
+
threadId,
|
|
105
|
+
agentName,
|
|
106
|
+
nodeName,
|
|
107
|
+
runId,
|
|
108
|
+
active,
|
|
109
|
+
role,
|
|
110
|
+
state,
|
|
111
|
+
running
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
};
|
|
25
115
|
|
|
26
116
|
//#endregion
|
|
117
|
+
exports.RuntimeEventSubject = RuntimeEventSubject;
|
|
27
118
|
exports.RuntimeEventTypes = RuntimeEventTypes;
|
|
28
119
|
exports.RuntimeMetaEventName = RuntimeMetaEventName;
|
|
29
120
|
//# sourceMappingURL=events.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.cjs","names":[],"sources":["../../../src/v1-deprecated/service-adapters/events.ts"],"sourcesContent":["import {\n Action,\n CopilotKitError,\n CopilotKitErrorCode,\n CopilotKitLowLevelError,\n ensureStructuredError,\n randomId,\n Severity,\n} from \"@copilotkit/shared\";\nimport { plainToInstance } from \"class-transformer\";\nimport {\n catchError,\n concat,\n concatMap,\n EMPTY,\n firstValueFrom,\n from,\n of,\n ReplaySubject,\n scan,\n Subject,\n} from \"rxjs\";\nimport { ActionInput } from \"../graphql/inputs/action.input\";\nimport {\n ActionExecutionMessage,\n ResultMessage,\n TextMessage,\n} from \"../graphql/types/converted\";\nimport { GuardrailsResult } from \"../graphql/types/guardrails-result.type\";\nimport { generateHelpfulErrorMessage } from \"../lib/streaming\";\nimport telemetry from \"../lib/telemetry-client\";\nimport { streamLangChainResponse } from \"./langchain/utils\";\n\nexport enum RuntimeEventTypes {\n TextMessageStart = \"TextMessageStart\",\n TextMessageContent = \"TextMessageContent\",\n TextMessageEnd = \"TextMessageEnd\",\n ActionExecutionStart = \"ActionExecutionStart\",\n ActionExecutionArgs = \"ActionExecutionArgs\",\n ActionExecutionEnd = \"ActionExecutionEnd\",\n ActionExecutionResult = \"ActionExecutionResult\",\n AgentStateMessage = \"AgentStateMessage\",\n MetaEvent = \"MetaEvent\",\n RunError = \"RunError\",\n}\n\nexport enum RuntimeMetaEventName {\n LangGraphInterruptEvent = \"LangGraphInterruptEvent\",\n LangGraphInterruptResumeEvent = \"LangGraphInterruptResumeEvent\",\n CopilotKitLangGraphInterruptEvent = \"CopilotKitLangGraphInterruptEvent\",\n}\n\nexport type RunTimeMetaEvent =\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.LangGraphInterruptEvent;\n value: string;\n }\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.CopilotKitLangGraphInterruptEvent;\n data: {\n value: string;\n messages: (TextMessage | ActionExecutionMessage | ResultMessage)[];\n };\n }\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.LangGraphInterruptResumeEvent;\n data: string;\n };\n\nexport type RuntimeErrorEvent = {\n type: RuntimeEventTypes.RunError;\n message: string;\n code?: string;\n};\n\nexport type RuntimeEvent =\n | {\n type: RuntimeEventTypes.TextMessageStart;\n messageId: string;\n parentMessageId?: string;\n }\n | {\n type: RuntimeEventTypes.TextMessageContent;\n messageId: string;\n content: string;\n }\n | { type: RuntimeEventTypes.TextMessageEnd; messageId: string }\n | {\n type: RuntimeEventTypes.ActionExecutionStart;\n actionExecutionId: string;\n actionName: string;\n parentMessageId?: string;\n }\n | {\n type: RuntimeEventTypes.ActionExecutionArgs;\n actionExecutionId: string;\n args: string;\n }\n | { type: RuntimeEventTypes.ActionExecutionEnd; actionExecutionId: string }\n | {\n type: RuntimeEventTypes.ActionExecutionResult;\n actionName: string;\n actionExecutionId: string;\n result: string;\n }\n | {\n type: RuntimeEventTypes.AgentStateMessage;\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: string;\n state: string;\n running: boolean;\n }\n | RunTimeMetaEvent\n | RuntimeErrorEvent;\n\ninterface RuntimeEventWithState {\n event: RuntimeEvent | null;\n callActionServerSide: boolean;\n action: Action<any> | null;\n actionExecutionId: string | null;\n args: string;\n actionExecutionParentMessageId: string | null;\n}\n\ntype EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;\n\nexport class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {\n constructor() {\n super();\n }\n\n sendTextMessageStart({\n messageId,\n parentMessageId,\n }: {\n messageId: string;\n parentMessageId?: string;\n }) {\n this.next({\n type: RuntimeEventTypes.TextMessageStart,\n messageId,\n parentMessageId,\n });\n }\n\n sendTextMessageContent({\n messageId,\n content,\n }: {\n messageId: string;\n content: string;\n }) {\n this.next({\n type: RuntimeEventTypes.TextMessageContent,\n content,\n messageId,\n });\n }\n\n sendTextMessageEnd({ messageId }: { messageId: string }) {\n this.next({ type: RuntimeEventTypes.TextMessageEnd, messageId });\n }\n\n sendTextMessage(messageId: string, content: string) {\n this.sendTextMessageStart({ messageId });\n this.sendTextMessageContent({ messageId, content });\n this.sendTextMessageEnd({ messageId });\n }\n\n sendActionExecutionStart({\n actionExecutionId,\n actionName,\n parentMessageId,\n }: {\n actionExecutionId: string;\n actionName: string;\n parentMessageId?: string;\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionStart,\n actionExecutionId,\n actionName,\n parentMessageId,\n });\n }\n\n sendActionExecutionArgs({\n actionExecutionId,\n args,\n }: {\n actionExecutionId: string;\n args: string;\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionArgs,\n args,\n actionExecutionId,\n });\n }\n\n sendActionExecutionEnd({ actionExecutionId }: { actionExecutionId: string }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionEnd,\n actionExecutionId,\n });\n }\n\n sendActionExecution({\n actionExecutionId,\n actionName,\n args,\n parentMessageId,\n }: {\n actionExecutionId: string;\n actionName: string;\n args: string;\n parentMessageId?: string;\n }) {\n this.sendActionExecutionStart({\n actionExecutionId,\n actionName,\n parentMessageId,\n });\n this.sendActionExecutionArgs({ actionExecutionId, args });\n this.sendActionExecutionEnd({ actionExecutionId });\n }\n\n sendActionExecutionResult({\n actionExecutionId,\n actionName,\n result,\n error,\n }: {\n actionExecutionId: string;\n actionName: string;\n result?: string;\n error?: { code: string; message: string };\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionResult,\n actionName,\n actionExecutionId,\n result: ResultMessage.encodeResult(result, error),\n });\n }\n\n sendAgentStateMessage({\n threadId,\n agentName,\n nodeName,\n runId,\n active,\n role,\n state,\n running,\n }: {\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: string;\n state: string;\n running: boolean;\n }) {\n this.next({\n type: RuntimeEventTypes.AgentStateMessage,\n threadId,\n agentName,\n nodeName,\n runId,\n active,\n role,\n state,\n running,\n });\n }\n}\n\nexport class RuntimeEventSource {\n private eventStream$ = new RuntimeEventSubject();\n private callback!: EventSourceCallback;\n private errorHandler?: (error: any, context: any) => Promise<void>;\n private errorContext?: any;\n\n constructor(params?: {\n errorHandler?: (error: any, context: any) => Promise<void>;\n errorContext?: any;\n }) {\n this.errorHandler = params?.errorHandler;\n this.errorContext = params?.errorContext;\n }\n\n async stream(callback: EventSourceCallback): Promise<void> {\n this.callback = callback;\n }\n}\n\nfunction convertStreamingErrorToStructured(error: any): CopilotKitError {\n // Determine a more helpful error message based on context\n let helpfulMessage = generateHelpfulErrorMessage(\n error,\n \"event streaming connection\",\n );\n\n // For network-related errors, use CopilotKitLowLevelError to preserve the original error\n if (\n error?.message?.includes(\"fetch failed\") ||\n error?.message?.includes(\"ECONNREFUSED\") ||\n error?.message?.includes(\"ENOTFOUND\") ||\n error?.message?.includes(\"ETIMEDOUT\") ||\n error?.message?.includes(\"terminated\") ||\n error?.cause?.code === \"UND_ERR_SOCKET\" ||\n error?.message?.includes(\"other side closed\") ||\n error?.code === \"UND_ERR_SOCKET\"\n ) {\n return new CopilotKitLowLevelError({\n error: error instanceof Error ? error : new Error(String(error)),\n url: \"event streaming connection\",\n message: helpfulMessage,\n });\n }\n\n // For all other errors, preserve the raw error in a basic CopilotKitError\n return new CopilotKitError({\n message: helpfulMessage,\n code: CopilotKitErrorCode.UNKNOWN,\n severity: Severity.CRITICAL,\n });\n}\n"],"mappings":";;;;;AAiCA,IAAY,gEAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGF,IAAY,sEAAL;AACL;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"events.cjs","names":["ReplaySubject","ResultMessage"],"sources":["../../../src/v1-deprecated/service-adapters/events.ts"],"sourcesContent":["import {\n Action,\n CopilotKitError,\n CopilotKitErrorCode,\n CopilotKitLowLevelError,\n ensureStructuredError,\n randomId,\n Severity,\n} from \"@copilotkit/shared\";\nimport { plainToInstance } from \"class-transformer\";\nimport {\n catchError,\n concat,\n concatMap,\n EMPTY,\n firstValueFrom,\n from,\n of,\n ReplaySubject,\n scan,\n Subject,\n} from \"rxjs\";\nimport { ActionInput } from \"../graphql/inputs/action.input\";\nimport {\n ActionExecutionMessage,\n ResultMessage,\n TextMessage,\n} from \"../graphql/types/converted\";\nimport { GuardrailsResult } from \"../graphql/types/guardrails-result.type\";\nimport { generateHelpfulErrorMessage } from \"../lib/streaming\";\nimport telemetry from \"../lib/telemetry-client\";\nimport { streamLangChainResponse } from \"./langchain/utils\";\n\nexport enum RuntimeEventTypes {\n TextMessageStart = \"TextMessageStart\",\n TextMessageContent = \"TextMessageContent\",\n TextMessageEnd = \"TextMessageEnd\",\n ActionExecutionStart = \"ActionExecutionStart\",\n ActionExecutionArgs = \"ActionExecutionArgs\",\n ActionExecutionEnd = \"ActionExecutionEnd\",\n ActionExecutionResult = \"ActionExecutionResult\",\n AgentStateMessage = \"AgentStateMessage\",\n MetaEvent = \"MetaEvent\",\n RunError = \"RunError\",\n}\n\nexport enum RuntimeMetaEventName {\n LangGraphInterruptEvent = \"LangGraphInterruptEvent\",\n LangGraphInterruptResumeEvent = \"LangGraphInterruptResumeEvent\",\n CopilotKitLangGraphInterruptEvent = \"CopilotKitLangGraphInterruptEvent\",\n}\n\nexport type RunTimeMetaEvent =\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.LangGraphInterruptEvent;\n value: string;\n }\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.CopilotKitLangGraphInterruptEvent;\n data: {\n value: string;\n messages: (TextMessage | ActionExecutionMessage | ResultMessage)[];\n };\n }\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.LangGraphInterruptResumeEvent;\n data: string;\n };\n\nexport type RuntimeErrorEvent = {\n type: RuntimeEventTypes.RunError;\n message: string;\n code?: string;\n};\n\nexport type RuntimeEvent =\n | {\n type: RuntimeEventTypes.TextMessageStart;\n messageId: string;\n parentMessageId?: string;\n }\n | {\n type: RuntimeEventTypes.TextMessageContent;\n messageId: string;\n content: string;\n }\n | { type: RuntimeEventTypes.TextMessageEnd; messageId: string }\n | {\n type: RuntimeEventTypes.ActionExecutionStart;\n actionExecutionId: string;\n actionName: string;\n parentMessageId?: string;\n }\n | {\n type: RuntimeEventTypes.ActionExecutionArgs;\n actionExecutionId: string;\n args: string;\n }\n | { type: RuntimeEventTypes.ActionExecutionEnd; actionExecutionId: string }\n | {\n type: RuntimeEventTypes.ActionExecutionResult;\n actionName: string;\n actionExecutionId: string;\n result: string;\n }\n | {\n type: RuntimeEventTypes.AgentStateMessage;\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: string;\n state: string;\n running: boolean;\n }\n | RunTimeMetaEvent\n | RuntimeErrorEvent;\n\ninterface RuntimeEventWithState {\n event: RuntimeEvent | null;\n callActionServerSide: boolean;\n action: Action<any> | null;\n actionExecutionId: string | null;\n args: string;\n actionExecutionParentMessageId: string | null;\n}\n\ntype EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;\n\nexport class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {\n /**\n * Aborted when the consumer no longer wants events, for example when the\n * user stops the run. A producer that holds a model stream should cancel it.\n */\n readonly signal?: AbortSignal;\n\n constructor(signal?: AbortSignal) {\n super();\n this.signal = signal;\n }\n\n sendTextMessageStart({\n messageId,\n parentMessageId,\n }: {\n messageId: string;\n parentMessageId?: string;\n }) {\n this.next({\n type: RuntimeEventTypes.TextMessageStart,\n messageId,\n parentMessageId,\n });\n }\n\n sendTextMessageContent({\n messageId,\n content,\n }: {\n messageId: string;\n content: string;\n }) {\n this.next({\n type: RuntimeEventTypes.TextMessageContent,\n content,\n messageId,\n });\n }\n\n sendTextMessageEnd({ messageId }: { messageId: string }) {\n this.next({ type: RuntimeEventTypes.TextMessageEnd, messageId });\n }\n\n sendTextMessage(messageId: string, content: string) {\n this.sendTextMessageStart({ messageId });\n this.sendTextMessageContent({ messageId, content });\n this.sendTextMessageEnd({ messageId });\n }\n\n sendActionExecutionStart({\n actionExecutionId,\n actionName,\n parentMessageId,\n }: {\n actionExecutionId: string;\n actionName: string;\n parentMessageId?: string;\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionStart,\n actionExecutionId,\n actionName,\n parentMessageId,\n });\n }\n\n sendActionExecutionArgs({\n actionExecutionId,\n args,\n }: {\n actionExecutionId: string;\n args: string;\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionArgs,\n args,\n actionExecutionId,\n });\n }\n\n sendActionExecutionEnd({ actionExecutionId }: { actionExecutionId: string }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionEnd,\n actionExecutionId,\n });\n }\n\n sendActionExecution({\n actionExecutionId,\n actionName,\n args,\n parentMessageId,\n }: {\n actionExecutionId: string;\n actionName: string;\n args: string;\n parentMessageId?: string;\n }) {\n this.sendActionExecutionStart({\n actionExecutionId,\n actionName,\n parentMessageId,\n });\n this.sendActionExecutionArgs({ actionExecutionId, args });\n this.sendActionExecutionEnd({ actionExecutionId });\n }\n\n sendActionExecutionResult({\n actionExecutionId,\n actionName,\n result,\n error,\n }: {\n actionExecutionId: string;\n actionName: string;\n result?: string;\n error?: { code: string; message: string };\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionResult,\n actionName,\n actionExecutionId,\n result: ResultMessage.encodeResult(result, error),\n });\n }\n\n sendAgentStateMessage({\n threadId,\n agentName,\n nodeName,\n runId,\n active,\n role,\n state,\n running,\n }: {\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: string;\n state: string;\n running: boolean;\n }) {\n this.next({\n type: RuntimeEventTypes.AgentStateMessage,\n threadId,\n agentName,\n nodeName,\n runId,\n active,\n role,\n state,\n running,\n });\n }\n}\n\nexport class RuntimeEventSource {\n private eventStream$ = new RuntimeEventSubject();\n private callback!: EventSourceCallback;\n private errorHandler?: (error: any, context: any) => Promise<void>;\n private errorContext?: any;\n\n constructor(params?: {\n errorHandler?: (error: any, context: any) => Promise<void>;\n errorContext?: any;\n }) {\n this.errorHandler = params?.errorHandler;\n this.errorContext = params?.errorContext;\n }\n\n async stream(callback: EventSourceCallback): Promise<void> {\n this.callback = callback;\n }\n}\n\nfunction convertStreamingErrorToStructured(error: any): CopilotKitError {\n // Determine a more helpful error message based on context\n let helpfulMessage = generateHelpfulErrorMessage(\n error,\n \"event streaming connection\",\n );\n\n // For network-related errors, use CopilotKitLowLevelError to preserve the original error\n if (\n error?.message?.includes(\"fetch failed\") ||\n error?.message?.includes(\"ECONNREFUSED\") ||\n error?.message?.includes(\"ENOTFOUND\") ||\n error?.message?.includes(\"ETIMEDOUT\") ||\n error?.message?.includes(\"terminated\") ||\n error?.cause?.code === \"UND_ERR_SOCKET\" ||\n error?.message?.includes(\"other side closed\") ||\n error?.code === \"UND_ERR_SOCKET\"\n ) {\n return new CopilotKitLowLevelError({\n error: error instanceof Error ? error : new Error(String(error)),\n url: \"event streaming connection\",\n message: helpfulMessage,\n });\n }\n\n // For all other errors, preserve the raw error in a basic CopilotKitError\n return new CopilotKitError({\n message: helpfulMessage,\n code: CopilotKitErrorCode.UNKNOWN,\n severity: Severity.CRITICAL,\n });\n}\n"],"mappings":";;;;;;;AAiCA,IAAY,gEAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGF,IAAY,sEAAL;AACL;AACA;AACA;;;AAoFF,IAAa,sBAAb,cAAyCA,mBAA4B;CAOnE,YAAY,QAAsB;AAChC,SAAO;AACP,OAAK,SAAS;;CAGhB,qBAAqB,EACnB,WACA,mBAIC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACD,CAAC;;CAGJ,uBAAuB,EACrB,WACA,WAIC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACD,CAAC;;CAGJ,mBAAmB,EAAE,aAAoC;AACvD,OAAK,KAAK;GAAE,MAAM,kBAAkB;GAAgB;GAAW,CAAC;;CAGlE,gBAAgB,WAAmB,SAAiB;AAClD,OAAK,qBAAqB,EAAE,WAAW,CAAC;AACxC,OAAK,uBAAuB;GAAE;GAAW;GAAS,CAAC;AACnD,OAAK,mBAAmB,EAAE,WAAW,CAAC;;CAGxC,yBAAyB,EACvB,mBACA,YACA,mBAKC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACA;GACD,CAAC;;CAGJ,wBAAwB,EACtB,mBACA,QAIC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACD,CAAC;;CAGJ,uBAAuB,EAAE,qBAAoD;AAC3E,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACD,CAAC;;CAGJ,oBAAoB,EAClB,mBACA,YACA,MACA,mBAMC;AACD,OAAK,yBAAyB;GAC5B;GACA;GACA;GACD,CAAC;AACF,OAAK,wBAAwB;GAAE;GAAmB;GAAM,CAAC;AACzD,OAAK,uBAAuB,EAAE,mBAAmB,CAAC;;CAGpD,0BAA0B,EACxB,mBACA,YACA,QACA,SAMC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACA,QAAQC,4BAAc,aAAa,QAAQ,MAAM;GAClD,CAAC;;CAGJ,sBAAsB,EACpB,UACA,WACA,UACA,OACA,QACA,MACA,OACA,WAUC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC"}
|
|
@@ -82,7 +82,12 @@ type RuntimeEvent = {
|
|
|
82
82
|
} | RunTimeMetaEvent | RuntimeErrorEvent;
|
|
83
83
|
type EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;
|
|
84
84
|
declare class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {
|
|
85
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Aborted when the consumer no longer wants events, for example when the
|
|
87
|
+
* user stops the run. A producer that holds a model stream should cancel it.
|
|
88
|
+
*/
|
|
89
|
+
readonly signal?: AbortSignal;
|
|
90
|
+
constructor(signal?: AbortSignal);
|
|
86
91
|
sendTextMessageStart({
|
|
87
92
|
messageId,
|
|
88
93
|
parentMessageId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.cts","names":[],"sources":["../../../src/v1-deprecated/service-adapters/events.ts"],"mappings":";;;;;aAiCY,iBAAA;EACV,gBAAA;EACA,kBAAA;EACA,cAAA;EACA,oBAAA;EACA,mBAAA;EACA,kBAAA;EACA,qBAAA;EACA,iBAAA;EACA,SAAA;EACA,QAAA;AAAA;AAAA,aAGU,oBAAA;EACV,uBAAA;EACA,6BAAA;EACA,iCAAA;AAAA;AAAA,KAGU,gBAAA;EAEN,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,uBAAA;EAC3B,KAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,iCAAA;EAC3B,IAAA;IACE,KAAA;IACA,QAAA,GAAW,WAAA,GAAc,sBAAA,GAAyB,aAAA;EAAA;AAAA;EAIpD,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,6BAAA;EAC3B,IAAA;AAAA;AAAA,KAGM,iBAAA;EACV,IAAA,EAAM,iBAAA,CAAkB,QAAA;EACxB,OAAA;EACA,IAAA;AAAA;AAAA,KAGU,YAAA;EAEN,IAAA,EAAM,iBAAA,CAAkB,gBAAA;EACxB,SAAA;EACA,eAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,kBAAA;EACxB,SAAA;EACA,OAAA;AAAA;EAEA,IAAA,EAAM,iBAAA,CAAkB,cAAA;EAAgB,SAAA;AAAA;EAExC,IAAA,EAAM,iBAAA,CAAkB,oBAAA;EACxB,iBAAA;EACA,UAAA;EACA,eAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,mBAAA;EACxB,iBAAA;EACA,IAAA;AAAA;EAEA,IAAA,EAAM,iBAAA,CAAkB,kBAAA;EAAoB,iBAAA;AAAA;EAE5C,IAAA,EAAM,iBAAA,CAAkB,qBAAA;EACxB,UAAA;EACA,iBAAA;EACA,MAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,iBAAA;EACxB,QAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;EACA,OAAA;AAAA,IAEF,gBAAA,GACA,iBAAA;AAAA,KAWC,mBAAA,IAAuB,YAAA,EAAc,mBAAA,KAAwB,OAAA;AAAA,cAErD,mBAAA,SAA4B,aAAA,CAAc,YAAA
|
|
1
|
+
{"version":3,"file":"events.d.cts","names":[],"sources":["../../../src/v1-deprecated/service-adapters/events.ts"],"mappings":";;;;;aAiCY,iBAAA;EACV,gBAAA;EACA,kBAAA;EACA,cAAA;EACA,oBAAA;EACA,mBAAA;EACA,kBAAA;EACA,qBAAA;EACA,iBAAA;EACA,SAAA;EACA,QAAA;AAAA;AAAA,aAGU,oBAAA;EACV,uBAAA;EACA,6BAAA;EACA,iCAAA;AAAA;AAAA,KAGU,gBAAA;EAEN,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,uBAAA;EAC3B,KAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,iCAAA;EAC3B,IAAA;IACE,KAAA;IACA,QAAA,GAAW,WAAA,GAAc,sBAAA,GAAyB,aAAA;EAAA;AAAA;EAIpD,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,6BAAA;EAC3B,IAAA;AAAA;AAAA,KAGM,iBAAA;EACV,IAAA,EAAM,iBAAA,CAAkB,QAAA;EACxB,OAAA;EACA,IAAA;AAAA;AAAA,KAGU,YAAA;EAEN,IAAA,EAAM,iBAAA,CAAkB,gBAAA;EACxB,SAAA;EACA,eAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,kBAAA;EACxB,SAAA;EACA,OAAA;AAAA;EAEA,IAAA,EAAM,iBAAA,CAAkB,cAAA;EAAgB,SAAA;AAAA;EAExC,IAAA,EAAM,iBAAA,CAAkB,oBAAA;EACxB,iBAAA;EACA,UAAA;EACA,eAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,mBAAA;EACxB,iBAAA;EACA,IAAA;AAAA;EAEA,IAAA,EAAM,iBAAA,CAAkB,kBAAA;EAAoB,iBAAA;AAAA;EAE5C,IAAA,EAAM,iBAAA,CAAkB,qBAAA;EACxB,UAAA;EACA,iBAAA;EACA,MAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,iBAAA;EACxB,QAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;EACA,OAAA;AAAA,IAEF,gBAAA,GACA,iBAAA;AAAA,KAWC,mBAAA,IAAuB,YAAA,EAAc,mBAAA,KAAwB,OAAA;AAAA,cAErD,mBAAA,SAA4B,aAAA,CAAc,YAAA;EA1DjD;AAGN;;;EAHM,SA+DK,MAAA,GAAS,WAAA;cAEN,MAAA,GAAS,WAAA;EAKrB,oBAAA,CAAA;IACE,SAAA;IACA;EAAA;IAEA,SAAA;IACA,eAAA;EAAA;EASF,sBAAA,CAAA;IACE,SAAA;IACA;EAAA;IAEA,SAAA;IACA,OAAA;EAAA;EASF,kBAAA,CAAA;IAAqB;EAAA;IAAe,SAAA;EAAA;EAIpC,eAAA,CAAgB,SAAA,UAAmB,OAAA;EAMnC,wBAAA,CAAA;IACE,iBAAA;IACA,UAAA;IACA;EAAA;IAEA,iBAAA;IACA,UAAA;IACA,eAAA;EAAA;EAUF,uBAAA,CAAA;IACE,iBAAA;IACA;EAAA;IAEA,iBAAA;IACA,IAAA;EAAA;EASF,sBAAA,CAAA;IAAyB;EAAA;IAAuB,iBAAA;EAAA;EAOhD,mBAAA,CAAA;IACE,iBAAA;IACA,UAAA;IACA,IAAA;IACA;EAAA;IAEA,iBAAA;IACA,UAAA;IACA,IAAA;IACA,eAAA;EAAA;EAWF,yBAAA,CAAA;IACE,iBAAA;IACA,UAAA;IACA,MAAA;IACA;EAAA;IAEA,iBAAA;IACA,UAAA;IACA,MAAA;IACA,KAAA;MAAU,IAAA;MAAc,OAAA;IAAA;EAAA;EAU1B,qBAAA,CAAA;IACE,QAAA;IACA,SAAA;IACA,QAAA;IACA,KAAA;IACA,MAAA;IACA,IAAA;IACA,KAAA;IACA;EAAA;IAEA,QAAA;IACA,SAAA;IACA,QAAA;IACA,KAAA;IACA,MAAA;IACA,IAAA;IACA,KAAA;IACA,OAAA;EAAA;AAAA;AAAA,cAgBS,kBAAA;EAAA,QACH,YAAA;EAAA,QACA,QAAA;EAAA,QACA,YAAA;EAAA,QACA,YAAA;cAEI,MAAA;IACV,YAAA,IAAgB,KAAA,OAAY,OAAA,UAAiB,OAAA;IAC7C,YAAA;EAAA;EAMI,MAAA,CAAO,QAAA,EAAU,mBAAA,GAAsB,OAAA;AAAA"}
|
|
@@ -82,7 +82,12 @@ type RuntimeEvent = {
|
|
|
82
82
|
} | RunTimeMetaEvent | RuntimeErrorEvent;
|
|
83
83
|
type EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;
|
|
84
84
|
declare class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {
|
|
85
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Aborted when the consumer no longer wants events, for example when the
|
|
87
|
+
* user stops the run. A producer that holds a model stream should cancel it.
|
|
88
|
+
*/
|
|
89
|
+
readonly signal?: AbortSignal;
|
|
90
|
+
constructor(signal?: AbortSignal);
|
|
86
91
|
sendTextMessageStart({
|
|
87
92
|
messageId,
|
|
88
93
|
parentMessageId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.mts","names":[],"sources":["../../../src/v1-deprecated/service-adapters/events.ts"],"mappings":";;;;;aAiCY,iBAAA;EACV,gBAAA;EACA,kBAAA;EACA,cAAA;EACA,oBAAA;EACA,mBAAA;EACA,kBAAA;EACA,qBAAA;EACA,iBAAA;EACA,SAAA;EACA,QAAA;AAAA;AAAA,aAGU,oBAAA;EACV,uBAAA;EACA,6BAAA;EACA,iCAAA;AAAA;AAAA,KAGU,gBAAA;EAEN,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,uBAAA;EAC3B,KAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,iCAAA;EAC3B,IAAA;IACE,KAAA;IACA,QAAA,GAAW,WAAA,GAAc,sBAAA,GAAyB,aAAA;EAAA;AAAA;EAIpD,IAAA,EAAM,iBAAA,CAAkB,SAAA;EACxB,IAAA,EAAM,oBAAA,CAAqB,6BAAA;EAC3B,IAAA;AAAA;AAAA,KAGM,iBAAA;EACV,IAAA,EAAM,iBAAA,CAAkB,QAAA;EACxB,OAAA;EACA,IAAA;AAAA;AAAA,KAGU,YAAA;EAEN,IAAA,EAAM,iBAAA,CAAkB,gBAAA;EACxB,SAAA;EACA,eAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,kBAAA;EACxB,SAAA;EACA,OAAA;AAAA;EAEA,IAAA,EAAM,iBAAA,CAAkB,cAAA;EAAgB,SAAA;AAAA;EAExC,IAAA,EAAM,iBAAA,CAAkB,oBAAA;EACxB,iBAAA;EACA,UAAA;EACA,eAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,mBAAA;EACxB,iBAAA;EACA,IAAA;AAAA;EAEA,IAAA,EAAM,iBAAA,CAAkB,kBAAA;EAAoB,iBAAA;AAAA;EAE5C,IAAA,EAAM,iBAAA,CAAkB,qBAAA;EACxB,UAAA;EACA,iBAAA;EACA,MAAA;AAAA;EAGA,IAAA,EAAM,iBAAA,CAAkB,iBAAA;EACxB,QAAA;EACA,SAAA;EACA,QAAA;EACA,KAAA;EACA,MAAA;EACA,IAAA;EACA,KAAA;EACA,OAAA;AAAA,IAEF,gBAAA,GACA,iBAAA;AAAA,KAWC,mBAAA,IAAuB,YAAA,EAAc,mBAAA,KAAwB,OAAA;AAAA,cAErD,mBAAA,SAA4B,aAAA,CAAc,YAAA
|
|
1
|
+
{"version":3,"file":"events.d.mts","names":[],"sources":["../../../src/v1-deprecated/service-adapters/events.ts"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
+
import { ResultMessage } from "../graphql/types/converted/index.mjs";
|
|
2
3
|
import { CopilotKitError, CopilotKitErrorCode, CopilotKitLowLevelError } from "@copilotkit/shared";
|
|
3
4
|
import { ReplaySubject } from "rxjs";
|
|
4
5
|
|
|
@@ -22,7 +23,95 @@ let RuntimeMetaEventName = /* @__PURE__ */ function(RuntimeMetaEventName) {
|
|
|
22
23
|
RuntimeMetaEventName["CopilotKitLangGraphInterruptEvent"] = "CopilotKitLangGraphInterruptEvent";
|
|
23
24
|
return RuntimeMetaEventName;
|
|
24
25
|
}({});
|
|
26
|
+
var RuntimeEventSubject = class extends ReplaySubject {
|
|
27
|
+
constructor(signal) {
|
|
28
|
+
super();
|
|
29
|
+
this.signal = signal;
|
|
30
|
+
}
|
|
31
|
+
sendTextMessageStart({ messageId, parentMessageId }) {
|
|
32
|
+
this.next({
|
|
33
|
+
type: RuntimeEventTypes.TextMessageStart,
|
|
34
|
+
messageId,
|
|
35
|
+
parentMessageId
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
sendTextMessageContent({ messageId, content }) {
|
|
39
|
+
this.next({
|
|
40
|
+
type: RuntimeEventTypes.TextMessageContent,
|
|
41
|
+
content,
|
|
42
|
+
messageId
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
sendTextMessageEnd({ messageId }) {
|
|
46
|
+
this.next({
|
|
47
|
+
type: RuntimeEventTypes.TextMessageEnd,
|
|
48
|
+
messageId
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
sendTextMessage(messageId, content) {
|
|
52
|
+
this.sendTextMessageStart({ messageId });
|
|
53
|
+
this.sendTextMessageContent({
|
|
54
|
+
messageId,
|
|
55
|
+
content
|
|
56
|
+
});
|
|
57
|
+
this.sendTextMessageEnd({ messageId });
|
|
58
|
+
}
|
|
59
|
+
sendActionExecutionStart({ actionExecutionId, actionName, parentMessageId }) {
|
|
60
|
+
this.next({
|
|
61
|
+
type: RuntimeEventTypes.ActionExecutionStart,
|
|
62
|
+
actionExecutionId,
|
|
63
|
+
actionName,
|
|
64
|
+
parentMessageId
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
sendActionExecutionArgs({ actionExecutionId, args }) {
|
|
68
|
+
this.next({
|
|
69
|
+
type: RuntimeEventTypes.ActionExecutionArgs,
|
|
70
|
+
args,
|
|
71
|
+
actionExecutionId
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
sendActionExecutionEnd({ actionExecutionId }) {
|
|
75
|
+
this.next({
|
|
76
|
+
type: RuntimeEventTypes.ActionExecutionEnd,
|
|
77
|
+
actionExecutionId
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
sendActionExecution({ actionExecutionId, actionName, args, parentMessageId }) {
|
|
81
|
+
this.sendActionExecutionStart({
|
|
82
|
+
actionExecutionId,
|
|
83
|
+
actionName,
|
|
84
|
+
parentMessageId
|
|
85
|
+
});
|
|
86
|
+
this.sendActionExecutionArgs({
|
|
87
|
+
actionExecutionId,
|
|
88
|
+
args
|
|
89
|
+
});
|
|
90
|
+
this.sendActionExecutionEnd({ actionExecutionId });
|
|
91
|
+
}
|
|
92
|
+
sendActionExecutionResult({ actionExecutionId, actionName, result, error }) {
|
|
93
|
+
this.next({
|
|
94
|
+
type: RuntimeEventTypes.ActionExecutionResult,
|
|
95
|
+
actionName,
|
|
96
|
+
actionExecutionId,
|
|
97
|
+
result: ResultMessage.encodeResult(result, error)
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
sendAgentStateMessage({ threadId, agentName, nodeName, runId, active, role, state, running }) {
|
|
101
|
+
this.next({
|
|
102
|
+
type: RuntimeEventTypes.AgentStateMessage,
|
|
103
|
+
threadId,
|
|
104
|
+
agentName,
|
|
105
|
+
nodeName,
|
|
106
|
+
runId,
|
|
107
|
+
active,
|
|
108
|
+
role,
|
|
109
|
+
state,
|
|
110
|
+
running
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
};
|
|
25
114
|
|
|
26
115
|
//#endregion
|
|
27
|
-
export { RuntimeEventTypes, RuntimeMetaEventName };
|
|
116
|
+
export { RuntimeEventSubject, RuntimeEventTypes, RuntimeMetaEventName };
|
|
28
117
|
//# sourceMappingURL=events.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.mjs","names":[],"sources":["../../../src/v1-deprecated/service-adapters/events.ts"],"sourcesContent":["import {\n Action,\n CopilotKitError,\n CopilotKitErrorCode,\n CopilotKitLowLevelError,\n ensureStructuredError,\n randomId,\n Severity,\n} from \"@copilotkit/shared\";\nimport { plainToInstance } from \"class-transformer\";\nimport {\n catchError,\n concat,\n concatMap,\n EMPTY,\n firstValueFrom,\n from,\n of,\n ReplaySubject,\n scan,\n Subject,\n} from \"rxjs\";\nimport { ActionInput } from \"../graphql/inputs/action.input\";\nimport {\n ActionExecutionMessage,\n ResultMessage,\n TextMessage,\n} from \"../graphql/types/converted\";\nimport { GuardrailsResult } from \"../graphql/types/guardrails-result.type\";\nimport { generateHelpfulErrorMessage } from \"../lib/streaming\";\nimport telemetry from \"../lib/telemetry-client\";\nimport { streamLangChainResponse } from \"./langchain/utils\";\n\nexport enum RuntimeEventTypes {\n TextMessageStart = \"TextMessageStart\",\n TextMessageContent = \"TextMessageContent\",\n TextMessageEnd = \"TextMessageEnd\",\n ActionExecutionStart = \"ActionExecutionStart\",\n ActionExecutionArgs = \"ActionExecutionArgs\",\n ActionExecutionEnd = \"ActionExecutionEnd\",\n ActionExecutionResult = \"ActionExecutionResult\",\n AgentStateMessage = \"AgentStateMessage\",\n MetaEvent = \"MetaEvent\",\n RunError = \"RunError\",\n}\n\nexport enum RuntimeMetaEventName {\n LangGraphInterruptEvent = \"LangGraphInterruptEvent\",\n LangGraphInterruptResumeEvent = \"LangGraphInterruptResumeEvent\",\n CopilotKitLangGraphInterruptEvent = \"CopilotKitLangGraphInterruptEvent\",\n}\n\nexport type RunTimeMetaEvent =\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.LangGraphInterruptEvent;\n value: string;\n }\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.CopilotKitLangGraphInterruptEvent;\n data: {\n value: string;\n messages: (TextMessage | ActionExecutionMessage | ResultMessage)[];\n };\n }\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.LangGraphInterruptResumeEvent;\n data: string;\n };\n\nexport type RuntimeErrorEvent = {\n type: RuntimeEventTypes.RunError;\n message: string;\n code?: string;\n};\n\nexport type RuntimeEvent =\n | {\n type: RuntimeEventTypes.TextMessageStart;\n messageId: string;\n parentMessageId?: string;\n }\n | {\n type: RuntimeEventTypes.TextMessageContent;\n messageId: string;\n content: string;\n }\n | { type: RuntimeEventTypes.TextMessageEnd; messageId: string }\n | {\n type: RuntimeEventTypes.ActionExecutionStart;\n actionExecutionId: string;\n actionName: string;\n parentMessageId?: string;\n }\n | {\n type: RuntimeEventTypes.ActionExecutionArgs;\n actionExecutionId: string;\n args: string;\n }\n | { type: RuntimeEventTypes.ActionExecutionEnd; actionExecutionId: string }\n | {\n type: RuntimeEventTypes.ActionExecutionResult;\n actionName: string;\n actionExecutionId: string;\n result: string;\n }\n | {\n type: RuntimeEventTypes.AgentStateMessage;\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: string;\n state: string;\n running: boolean;\n }\n | RunTimeMetaEvent\n | RuntimeErrorEvent;\n\ninterface RuntimeEventWithState {\n event: RuntimeEvent | null;\n callActionServerSide: boolean;\n action: Action<any> | null;\n actionExecutionId: string | null;\n args: string;\n actionExecutionParentMessageId: string | null;\n}\n\ntype EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;\n\nexport class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {\n constructor() {\n super();\n }\n\n sendTextMessageStart({\n messageId,\n parentMessageId,\n }: {\n messageId: string;\n parentMessageId?: string;\n }) {\n this.next({\n type: RuntimeEventTypes.TextMessageStart,\n messageId,\n parentMessageId,\n });\n }\n\n sendTextMessageContent({\n messageId,\n content,\n }: {\n messageId: string;\n content: string;\n }) {\n this.next({\n type: RuntimeEventTypes.TextMessageContent,\n content,\n messageId,\n });\n }\n\n sendTextMessageEnd({ messageId }: { messageId: string }) {\n this.next({ type: RuntimeEventTypes.TextMessageEnd, messageId });\n }\n\n sendTextMessage(messageId: string, content: string) {\n this.sendTextMessageStart({ messageId });\n this.sendTextMessageContent({ messageId, content });\n this.sendTextMessageEnd({ messageId });\n }\n\n sendActionExecutionStart({\n actionExecutionId,\n actionName,\n parentMessageId,\n }: {\n actionExecutionId: string;\n actionName: string;\n parentMessageId?: string;\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionStart,\n actionExecutionId,\n actionName,\n parentMessageId,\n });\n }\n\n sendActionExecutionArgs({\n actionExecutionId,\n args,\n }: {\n actionExecutionId: string;\n args: string;\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionArgs,\n args,\n actionExecutionId,\n });\n }\n\n sendActionExecutionEnd({ actionExecutionId }: { actionExecutionId: string }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionEnd,\n actionExecutionId,\n });\n }\n\n sendActionExecution({\n actionExecutionId,\n actionName,\n args,\n parentMessageId,\n }: {\n actionExecutionId: string;\n actionName: string;\n args: string;\n parentMessageId?: string;\n }) {\n this.sendActionExecutionStart({\n actionExecutionId,\n actionName,\n parentMessageId,\n });\n this.sendActionExecutionArgs({ actionExecutionId, args });\n this.sendActionExecutionEnd({ actionExecutionId });\n }\n\n sendActionExecutionResult({\n actionExecutionId,\n actionName,\n result,\n error,\n }: {\n actionExecutionId: string;\n actionName: string;\n result?: string;\n error?: { code: string; message: string };\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionResult,\n actionName,\n actionExecutionId,\n result: ResultMessage.encodeResult(result, error),\n });\n }\n\n sendAgentStateMessage({\n threadId,\n agentName,\n nodeName,\n runId,\n active,\n role,\n state,\n running,\n }: {\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: string;\n state: string;\n running: boolean;\n }) {\n this.next({\n type: RuntimeEventTypes.AgentStateMessage,\n threadId,\n agentName,\n nodeName,\n runId,\n active,\n role,\n state,\n running,\n });\n }\n}\n\nexport class RuntimeEventSource {\n private eventStream$ = new RuntimeEventSubject();\n private callback!: EventSourceCallback;\n private errorHandler?: (error: any, context: any) => Promise<void>;\n private errorContext?: any;\n\n constructor(params?: {\n errorHandler?: (error: any, context: any) => Promise<void>;\n errorContext?: any;\n }) {\n this.errorHandler = params?.errorHandler;\n this.errorContext = params?.errorContext;\n }\n\n async stream(callback: EventSourceCallback): Promise<void> {\n this.callback = callback;\n }\n}\n\nfunction convertStreamingErrorToStructured(error: any): CopilotKitError {\n // Determine a more helpful error message based on context\n let helpfulMessage = generateHelpfulErrorMessage(\n error,\n \"event streaming connection\",\n );\n\n // For network-related errors, use CopilotKitLowLevelError to preserve the original error\n if (\n error?.message?.includes(\"fetch failed\") ||\n error?.message?.includes(\"ECONNREFUSED\") ||\n error?.message?.includes(\"ENOTFOUND\") ||\n error?.message?.includes(\"ETIMEDOUT\") ||\n error?.message?.includes(\"terminated\") ||\n error?.cause?.code === \"UND_ERR_SOCKET\" ||\n error?.message?.includes(\"other side closed\") ||\n error?.code === \"UND_ERR_SOCKET\"\n ) {\n return new CopilotKitLowLevelError({\n error: error instanceof Error ? error : new Error(String(error)),\n url: \"event streaming connection\",\n message: helpfulMessage,\n });\n }\n\n // For all other errors, preserve the raw error in a basic CopilotKitError\n return new CopilotKitError({\n message: helpfulMessage,\n code: CopilotKitErrorCode.UNKNOWN,\n severity: Severity.CRITICAL,\n });\n}\n"],"mappings":";;;;;AAiCA,IAAY,gEAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGF,IAAY,sEAAL;AACL;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"events.mjs","names":[],"sources":["../../../src/v1-deprecated/service-adapters/events.ts"],"sourcesContent":["import {\n Action,\n CopilotKitError,\n CopilotKitErrorCode,\n CopilotKitLowLevelError,\n ensureStructuredError,\n randomId,\n Severity,\n} from \"@copilotkit/shared\";\nimport { plainToInstance } from \"class-transformer\";\nimport {\n catchError,\n concat,\n concatMap,\n EMPTY,\n firstValueFrom,\n from,\n of,\n ReplaySubject,\n scan,\n Subject,\n} from \"rxjs\";\nimport { ActionInput } from \"../graphql/inputs/action.input\";\nimport {\n ActionExecutionMessage,\n ResultMessage,\n TextMessage,\n} from \"../graphql/types/converted\";\nimport { GuardrailsResult } from \"../graphql/types/guardrails-result.type\";\nimport { generateHelpfulErrorMessage } from \"../lib/streaming\";\nimport telemetry from \"../lib/telemetry-client\";\nimport { streamLangChainResponse } from \"./langchain/utils\";\n\nexport enum RuntimeEventTypes {\n TextMessageStart = \"TextMessageStart\",\n TextMessageContent = \"TextMessageContent\",\n TextMessageEnd = \"TextMessageEnd\",\n ActionExecutionStart = \"ActionExecutionStart\",\n ActionExecutionArgs = \"ActionExecutionArgs\",\n ActionExecutionEnd = \"ActionExecutionEnd\",\n ActionExecutionResult = \"ActionExecutionResult\",\n AgentStateMessage = \"AgentStateMessage\",\n MetaEvent = \"MetaEvent\",\n RunError = \"RunError\",\n}\n\nexport enum RuntimeMetaEventName {\n LangGraphInterruptEvent = \"LangGraphInterruptEvent\",\n LangGraphInterruptResumeEvent = \"LangGraphInterruptResumeEvent\",\n CopilotKitLangGraphInterruptEvent = \"CopilotKitLangGraphInterruptEvent\",\n}\n\nexport type RunTimeMetaEvent =\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.LangGraphInterruptEvent;\n value: string;\n }\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.CopilotKitLangGraphInterruptEvent;\n data: {\n value: string;\n messages: (TextMessage | ActionExecutionMessage | ResultMessage)[];\n };\n }\n | {\n type: RuntimeEventTypes.MetaEvent;\n name: RuntimeMetaEventName.LangGraphInterruptResumeEvent;\n data: string;\n };\n\nexport type RuntimeErrorEvent = {\n type: RuntimeEventTypes.RunError;\n message: string;\n code?: string;\n};\n\nexport type RuntimeEvent =\n | {\n type: RuntimeEventTypes.TextMessageStart;\n messageId: string;\n parentMessageId?: string;\n }\n | {\n type: RuntimeEventTypes.TextMessageContent;\n messageId: string;\n content: string;\n }\n | { type: RuntimeEventTypes.TextMessageEnd; messageId: string }\n | {\n type: RuntimeEventTypes.ActionExecutionStart;\n actionExecutionId: string;\n actionName: string;\n parentMessageId?: string;\n }\n | {\n type: RuntimeEventTypes.ActionExecutionArgs;\n actionExecutionId: string;\n args: string;\n }\n | { type: RuntimeEventTypes.ActionExecutionEnd; actionExecutionId: string }\n | {\n type: RuntimeEventTypes.ActionExecutionResult;\n actionName: string;\n actionExecutionId: string;\n result: string;\n }\n | {\n type: RuntimeEventTypes.AgentStateMessage;\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: string;\n state: string;\n running: boolean;\n }\n | RunTimeMetaEvent\n | RuntimeErrorEvent;\n\ninterface RuntimeEventWithState {\n event: RuntimeEvent | null;\n callActionServerSide: boolean;\n action: Action<any> | null;\n actionExecutionId: string | null;\n args: string;\n actionExecutionParentMessageId: string | null;\n}\n\ntype EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;\n\nexport class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {\n /**\n * Aborted when the consumer no longer wants events, for example when the\n * user stops the run. A producer that holds a model stream should cancel it.\n */\n readonly signal?: AbortSignal;\n\n constructor(signal?: AbortSignal) {\n super();\n this.signal = signal;\n }\n\n sendTextMessageStart({\n messageId,\n parentMessageId,\n }: {\n messageId: string;\n parentMessageId?: string;\n }) {\n this.next({\n type: RuntimeEventTypes.TextMessageStart,\n messageId,\n parentMessageId,\n });\n }\n\n sendTextMessageContent({\n messageId,\n content,\n }: {\n messageId: string;\n content: string;\n }) {\n this.next({\n type: RuntimeEventTypes.TextMessageContent,\n content,\n messageId,\n });\n }\n\n sendTextMessageEnd({ messageId }: { messageId: string }) {\n this.next({ type: RuntimeEventTypes.TextMessageEnd, messageId });\n }\n\n sendTextMessage(messageId: string, content: string) {\n this.sendTextMessageStart({ messageId });\n this.sendTextMessageContent({ messageId, content });\n this.sendTextMessageEnd({ messageId });\n }\n\n sendActionExecutionStart({\n actionExecutionId,\n actionName,\n parentMessageId,\n }: {\n actionExecutionId: string;\n actionName: string;\n parentMessageId?: string;\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionStart,\n actionExecutionId,\n actionName,\n parentMessageId,\n });\n }\n\n sendActionExecutionArgs({\n actionExecutionId,\n args,\n }: {\n actionExecutionId: string;\n args: string;\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionArgs,\n args,\n actionExecutionId,\n });\n }\n\n sendActionExecutionEnd({ actionExecutionId }: { actionExecutionId: string }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionEnd,\n actionExecutionId,\n });\n }\n\n sendActionExecution({\n actionExecutionId,\n actionName,\n args,\n parentMessageId,\n }: {\n actionExecutionId: string;\n actionName: string;\n args: string;\n parentMessageId?: string;\n }) {\n this.sendActionExecutionStart({\n actionExecutionId,\n actionName,\n parentMessageId,\n });\n this.sendActionExecutionArgs({ actionExecutionId, args });\n this.sendActionExecutionEnd({ actionExecutionId });\n }\n\n sendActionExecutionResult({\n actionExecutionId,\n actionName,\n result,\n error,\n }: {\n actionExecutionId: string;\n actionName: string;\n result?: string;\n error?: { code: string; message: string };\n }) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionResult,\n actionName,\n actionExecutionId,\n result: ResultMessage.encodeResult(result, error),\n });\n }\n\n sendAgentStateMessage({\n threadId,\n agentName,\n nodeName,\n runId,\n active,\n role,\n state,\n running,\n }: {\n threadId: string;\n agentName: string;\n nodeName: string;\n runId: string;\n active: boolean;\n role: string;\n state: string;\n running: boolean;\n }) {\n this.next({\n type: RuntimeEventTypes.AgentStateMessage,\n threadId,\n agentName,\n nodeName,\n runId,\n active,\n role,\n state,\n running,\n });\n }\n}\n\nexport class RuntimeEventSource {\n private eventStream$ = new RuntimeEventSubject();\n private callback!: EventSourceCallback;\n private errorHandler?: (error: any, context: any) => Promise<void>;\n private errorContext?: any;\n\n constructor(params?: {\n errorHandler?: (error: any, context: any) => Promise<void>;\n errorContext?: any;\n }) {\n this.errorHandler = params?.errorHandler;\n this.errorContext = params?.errorContext;\n }\n\n async stream(callback: EventSourceCallback): Promise<void> {\n this.callback = callback;\n }\n}\n\nfunction convertStreamingErrorToStructured(error: any): CopilotKitError {\n // Determine a more helpful error message based on context\n let helpfulMessage = generateHelpfulErrorMessage(\n error,\n \"event streaming connection\",\n );\n\n // For network-related errors, use CopilotKitLowLevelError to preserve the original error\n if (\n error?.message?.includes(\"fetch failed\") ||\n error?.message?.includes(\"ECONNREFUSED\") ||\n error?.message?.includes(\"ENOTFOUND\") ||\n error?.message?.includes(\"ETIMEDOUT\") ||\n error?.message?.includes(\"terminated\") ||\n error?.cause?.code === \"UND_ERR_SOCKET\" ||\n error?.message?.includes(\"other side closed\") ||\n error?.code === \"UND_ERR_SOCKET\"\n ) {\n return new CopilotKitLowLevelError({\n error: error instanceof Error ? error : new Error(String(error)),\n url: \"event streaming connection\",\n message: helpfulMessage,\n });\n }\n\n // For all other errors, preserve the raw error in a basic CopilotKitError\n return new CopilotKitError({\n message: helpfulMessage,\n code: CopilotKitErrorCode.UNKNOWN,\n severity: Severity.CRITICAL,\n });\n}\n"],"mappings":";;;;;;AAiCA,IAAY,gEAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGF,IAAY,sEAAL;AACL;AACA;AACA;;;AAoFF,IAAa,sBAAb,cAAyC,cAA4B;CAOnE,YAAY,QAAsB;AAChC,SAAO;AACP,OAAK,SAAS;;CAGhB,qBAAqB,EACnB,WACA,mBAIC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACD,CAAC;;CAGJ,uBAAuB,EACrB,WACA,WAIC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACD,CAAC;;CAGJ,mBAAmB,EAAE,aAAoC;AACvD,OAAK,KAAK;GAAE,MAAM,kBAAkB;GAAgB;GAAW,CAAC;;CAGlE,gBAAgB,WAAmB,SAAiB;AAClD,OAAK,qBAAqB,EAAE,WAAW,CAAC;AACxC,OAAK,uBAAuB;GAAE;GAAW;GAAS,CAAC;AACnD,OAAK,mBAAmB,EAAE,WAAW,CAAC;;CAGxC,yBAAyB,EACvB,mBACA,YACA,mBAKC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACA;GACD,CAAC;;CAGJ,wBAAwB,EACtB,mBACA,QAIC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACD,CAAC;;CAGJ,uBAAuB,EAAE,qBAAoD;AAC3E,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACD,CAAC;;CAGJ,oBAAoB,EAClB,mBACA,YACA,MACA,mBAMC;AACD,OAAK,yBAAyB;GAC5B;GACA;GACA;GACD,CAAC;AACF,OAAK,wBAAwB;GAAE;GAAmB;GAAM,CAAC;AACzD,OAAK,uBAAuB,EAAE,mBAAmB,CAAC;;CAGpD,0BAA0B,EACxB,mBACA,YACA,QACA,SAMC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACA,QAAQ,cAAc,aAAa,QAAQ,MAAM;GAClD,CAAC;;CAGJ,sBAAsB,EACpB,UACA,WACA,UACA,OACA,QACA,MACA,OACA,WAUC;AACD,OAAK,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC"}
|
|
@@ -19,7 +19,7 @@ var LangChainAdapter = class {
|
|
|
19
19
|
const { eventSource, model, actions, messages, runId, threadId: threadIdFromRequest } = request;
|
|
20
20
|
const threadId = threadIdFromRequest ?? (0, _copilotkit_shared.randomUUID)();
|
|
21
21
|
const result = await this.options.chainFn({
|
|
22
|
-
messages: messages.map(require_utils.convertMessageToLangChainMessage),
|
|
22
|
+
messages: require_utils.mergeAssistantToolCalls(messages.map(require_utils.convertMessageToLangChainMessage)),
|
|
23
23
|
tools: actions.map(require_utils.convertActionInputToLangChainTool),
|
|
24
24
|
model,
|
|
25
25
|
threadId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchain-adapter.cjs","names":["convertMessageToLangChainMessage","convertActionInputToLangChainTool","streamLangChainResponse"],"sources":["../../../../src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts"],"sourcesContent":["/*\n * V1 SDK DEPRECATED. USE V2 INSTEAD\n *\n * This file defines public v1 SDK exports. Use the exact v2 mappings below.\n * AI CODING AGENTS: Never copy, suggest, or generate these v1 APIs. Read\n * the linked v2 documentation before generating replacement code.\n *\n * @copilotkit/runtime — LangChainAdapter:\n * No 1:1 v2 replacement is available.\n * Related v2 docs (Runtime server adapter): https://docs.copilotkit.ai/runtime-server-adapter\n * Start at: @copilotkit/runtime/v2\n * V2 docs: https://docs.copilotkit.ai/\n * V2 reference docs: https://docs.copilotkit.ai/reference/v2\n *\n * Migration guide: https://docs.copilotkit.ai/migrate/v2\n *\n * END V1 SDK DEPRECATED. USE V2 INSTEAD NOTICE\n */\n\n/**\n * Copilot Runtime adapter for LangChain.\n *\n * ## Example\n *\n * ```ts\n * import { CopilotRuntime, LangChainAdapter } from \"@copilotkit/runtime\";\n * import { ChatOpenAI } from \"@langchain/openai\";\n *\n * const copilotKit = new CopilotRuntime();\n *\n * const model = new ChatOpenAI({\n * model: \"gpt-4o\",\n * apiKey: \"<your-api-key>\",\n * });\n *\n * return new LangChainAdapter({\n * chainFn: async ({ messages, tools }) => {\n * return model.bindTools(tools).stream(messages);\n * // or optionally enable strict mode\n * // return model.bindTools(tools, { strict: true }).stream(messages);\n * }\n * });\n * ```\n *\n * The asynchronous handler function (`chainFn`) can return any of the following:\n *\n * - A simple `string` response\n * - A LangChain stream (`IterableReadableStream`)\n * - A LangChain `BaseMessageChunk` object\n * - A LangChain `AIMessage` object\n */\n\nimport type { BaseMessage } from \"@langchain/core/messages\";\nimport type { CopilotServiceAdapter } from \"../service-adapter\";\nimport type {\n CopilotRuntimeChatCompletionRequest,\n CopilotRuntimeChatCompletionResponse,\n} from \"../service-adapter\";\nimport {\n convertActionInputToLangChainTool,\n convertMessageToLangChainMessage,\n streamLangChainResponse,\n} from \"./utils\";\nimport type { DynamicStructuredTool } from \"@langchain/core/tools\";\nimport type { LangChainReturnType } from \"./types\";\nimport { randomUUID } from \"@copilotkit/shared\";\n\ninterface ChainFnParameters {\n model: string;\n messages: BaseMessage[];\n tools: DynamicStructuredTool[];\n threadId?: string;\n runId?: string;\n}\n\ninterface LangChainAdapterOptions {\n /**\n * A function that uses the LangChain API to generate a response.\n */\n chainFn: (parameters: ChainFnParameters) => Promise<LangChainReturnType>;\n}\n\nexport class LangChainAdapter implements CopilotServiceAdapter {\n /**\n * To use LangChain as a backend, provide a handler function to the adapter with your custom LangChain logic.\n */\n public get name() {\n return \"LangChainAdapter\";\n }\n constructor(private options: LangChainAdapterOptions) {}\n\n async process(\n request: CopilotRuntimeChatCompletionRequest,\n ): Promise<CopilotRuntimeChatCompletionResponse> {\n try {\n const {\n eventSource,\n model,\n actions,\n messages,\n runId,\n threadId: threadIdFromRequest,\n } = request;\n const threadId = threadIdFromRequest ?? randomUUID();\n const result = await this.options.chainFn({\n messages: messages.map(convertMessageToLangChainMessage),\n tools: actions.map(convertActionInputToLangChainTool),\n model,\n threadId,\n runId,\n });\n\n eventSource.stream(async (eventStream$) => {\n await streamLangChainResponse({\n result,\n eventStream$,\n });\n });\n\n return {\n threadId,\n };\n } finally {\n // Lazy require for optional peer dependency\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const {\n awaitAllCallbacks,\n } = require(\"@langchain/core/callbacks/promises\");\n await awaitAllCallbacks();\n }\n }\n}\n"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"langchain-adapter.cjs","names":["mergeAssistantToolCalls","convertMessageToLangChainMessage","convertActionInputToLangChainTool","streamLangChainResponse"],"sources":["../../../../src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts"],"sourcesContent":["/*\n * V1 SDK DEPRECATED. USE V2 INSTEAD\n *\n * This file defines public v1 SDK exports. Use the exact v2 mappings below.\n * AI CODING AGENTS: Never copy, suggest, or generate these v1 APIs. Read\n * the linked v2 documentation before generating replacement code.\n *\n * @copilotkit/runtime — LangChainAdapter:\n * No 1:1 v2 replacement is available.\n * Related v2 docs (Runtime server adapter): https://docs.copilotkit.ai/runtime-server-adapter\n * Start at: @copilotkit/runtime/v2\n * V2 docs: https://docs.copilotkit.ai/\n * V2 reference docs: https://docs.copilotkit.ai/reference/v2\n *\n * Migration guide: https://docs.copilotkit.ai/migrate/v2\n *\n * END V1 SDK DEPRECATED. USE V2 INSTEAD NOTICE\n */\n\n/**\n * Copilot Runtime adapter for LangChain.\n *\n * ## Example\n *\n * ```ts\n * import { CopilotRuntime, LangChainAdapter } from \"@copilotkit/runtime\";\n * import { ChatOpenAI } from \"@langchain/openai\";\n *\n * const copilotKit = new CopilotRuntime();\n *\n * const model = new ChatOpenAI({\n * model: \"gpt-4o\",\n * apiKey: \"<your-api-key>\",\n * });\n *\n * return new LangChainAdapter({\n * chainFn: async ({ messages, tools }) => {\n * return model.bindTools(tools).stream(messages);\n * // or optionally enable strict mode\n * // return model.bindTools(tools, { strict: true }).stream(messages);\n * }\n * });\n * ```\n *\n * The asynchronous handler function (`chainFn`) can return any of the following:\n *\n * - A simple `string` response\n * - A LangChain stream (`IterableReadableStream`)\n * - A LangChain `BaseMessageChunk` object\n * - A LangChain `AIMessage` object\n */\n\nimport type { BaseMessage } from \"@langchain/core/messages\";\nimport type { CopilotServiceAdapter } from \"../service-adapter\";\nimport type {\n CopilotRuntimeChatCompletionRequest,\n CopilotRuntimeChatCompletionResponse,\n} from \"../service-adapter\";\nimport {\n convertActionInputToLangChainTool,\n convertMessageToLangChainMessage,\n mergeAssistantToolCalls,\n streamLangChainResponse,\n} from \"./utils\";\nimport type { DynamicStructuredTool } from \"@langchain/core/tools\";\nimport type { LangChainReturnType } from \"./types\";\nimport { randomUUID } from \"@copilotkit/shared\";\n\ninterface ChainFnParameters {\n model: string;\n messages: BaseMessage[];\n tools: DynamicStructuredTool[];\n threadId?: string;\n runId?: string;\n}\n\ninterface LangChainAdapterOptions {\n /**\n * A function that uses the LangChain API to generate a response.\n */\n chainFn: (parameters: ChainFnParameters) => Promise<LangChainReturnType>;\n}\n\nexport class LangChainAdapter implements CopilotServiceAdapter {\n /**\n * To use LangChain as a backend, provide a handler function to the adapter with your custom LangChain logic.\n */\n public get name() {\n return \"LangChainAdapter\";\n }\n constructor(private options: LangChainAdapterOptions) {}\n\n async process(\n request: CopilotRuntimeChatCompletionRequest,\n ): Promise<CopilotRuntimeChatCompletionResponse> {\n try {\n const {\n eventSource,\n model,\n actions,\n messages,\n runId,\n threadId: threadIdFromRequest,\n } = request;\n const threadId = threadIdFromRequest ?? randomUUID();\n const result = await this.options.chainFn({\n messages: mergeAssistantToolCalls(\n messages.map(convertMessageToLangChainMessage),\n ),\n tools: actions.map(convertActionInputToLangChainTool),\n model,\n threadId,\n runId,\n });\n\n eventSource.stream(async (eventStream$) => {\n await streamLangChainResponse({\n result,\n eventStream$,\n });\n });\n\n return {\n threadId,\n };\n } finally {\n // Lazy require for optional peer dependency\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const {\n awaitAllCallbacks,\n } = require(\"@langchain/core/callbacks/promises\");\n await awaitAllCallbacks();\n }\n }\n}\n"],"mappings":";;;;;;AAmFA,IAAa,mBAAb,MAA+D;;;;CAI7D,IAAW,OAAO;AAChB,SAAO;;CAET,YAAY,AAAQ,SAAkC;EAAlC;;CAEpB,MAAM,QACJ,SAC+C;AAC/C,MAAI;GACF,MAAM,EACJ,aACA,OACA,SACA,UACA,OACA,UAAU,wBACR;GACJ,MAAM,WAAW,2DAAmC;GACpD,MAAM,SAAS,MAAM,KAAK,QAAQ,QAAQ;IACxC,UAAUA,sCACR,SAAS,IAAIC,+CAAiC,CAC/C;IACD,OAAO,QAAQ,IAAIC,gDAAkC;IACrD;IACA;IACA;IACD,CAAC;AAEF,eAAY,OAAO,OAAO,iBAAiB;AACzC,UAAMC,sCAAwB;KAC5B;KACA;KACD,CAAC;KACF;AAEF,UAAO,EACL,UACD;YACO;GAGR,MAAM,EACJ,sBACE,QAAQ,qCAAqC;AACjD,SAAM,mBAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchain-adapter.d.cts","names":[],"sources":["../../../../src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"langchain-adapter.d.cts","names":[],"sources":["../../../../src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts"],"mappings":";;;;;;;UAoEU,iBAAA;EACR,KAAA;EACA,QAAA,EAAU,WAAA;EACV,KAAA,EAAO,qBAAA;EACP,QAAA;EACA,KAAA;AAAA;AAAA,UAGQ,uBAAA;EAcY;;;EAVpB,OAAA,GAAU,UAAA,EAAY,iBAAA,KAAsB,OAAA,CAAQ,mBAAA;AAAA;AAAA,cAGzC,gBAAA,YAA4B,qBAAA;EAAA,QAOnB,OAAA;EAGlB;;;EAAA,IANS,IAAA,CAAA;cAGS,OAAA,EAAS,uBAAA;EAEvB,OAAA,CACJ,OAAA,EAAS,mCAAA,GACR,OAAA,CAAQ,oCAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchain-adapter.d.mts","names":[],"sources":["../../../../src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"langchain-adapter.d.mts","names":[],"sources":["../../../../src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts"],"mappings":";;;;;;;UAoEU,iBAAA;EACR,KAAA;EACA,QAAA,EAAU,WAAA;EACV,KAAA,EAAO,qBAAA;EACP,QAAA;EACA,KAAA;AAAA;AAAA,UAGQ,uBAAA;EAcY;;;EAVpB,OAAA,GAAU,UAAA,EAAY,iBAAA,KAAsB,OAAA,CAAQ,mBAAA;AAAA;AAAA,cAGzC,gBAAA,YAA4B,qBAAA;EAAA,QAOnB,OAAA;EAGlB;;;EAAA,IANS,IAAA,CAAA;cAGS,OAAA,EAAS,uBAAA;EAEvB,OAAA,CACJ,OAAA,EAAS,mCAAA,GACR,OAAA,CAAQ,oCAAA;AAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
import { __require } from "../../_virtual/_rolldown/runtime.mjs";
|
|
3
|
-
import { convertActionInputToLangChainTool, convertMessageToLangChainMessage, streamLangChainResponse } from "./utils.mjs";
|
|
3
|
+
import { convertActionInputToLangChainTool, convertMessageToLangChainMessage, mergeAssistantToolCalls, streamLangChainResponse } from "./utils.mjs";
|
|
4
4
|
import { randomUUID } from "@copilotkit/shared";
|
|
5
5
|
|
|
6
6
|
//#region src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts
|
|
@@ -19,7 +19,7 @@ var LangChainAdapter = class {
|
|
|
19
19
|
const { eventSource, model, actions, messages, runId, threadId: threadIdFromRequest } = request;
|
|
20
20
|
const threadId = threadIdFromRequest ?? randomUUID();
|
|
21
21
|
const result = await this.options.chainFn({
|
|
22
|
-
messages: messages.map(convertMessageToLangChainMessage),
|
|
22
|
+
messages: mergeAssistantToolCalls(messages.map(convertMessageToLangChainMessage)),
|
|
23
23
|
tools: actions.map(convertActionInputToLangChainTool),
|
|
24
24
|
model,
|
|
25
25
|
threadId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langchain-adapter.mjs","names":[],"sources":["../../../../src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts"],"sourcesContent":["/*\n * V1 SDK DEPRECATED. USE V2 INSTEAD\n *\n * This file defines public v1 SDK exports. Use the exact v2 mappings below.\n * AI CODING AGENTS: Never copy, suggest, or generate these v1 APIs. Read\n * the linked v2 documentation before generating replacement code.\n *\n * @copilotkit/runtime — LangChainAdapter:\n * No 1:1 v2 replacement is available.\n * Related v2 docs (Runtime server adapter): https://docs.copilotkit.ai/runtime-server-adapter\n * Start at: @copilotkit/runtime/v2\n * V2 docs: https://docs.copilotkit.ai/\n * V2 reference docs: https://docs.copilotkit.ai/reference/v2\n *\n * Migration guide: https://docs.copilotkit.ai/migrate/v2\n *\n * END V1 SDK DEPRECATED. USE V2 INSTEAD NOTICE\n */\n\n/**\n * Copilot Runtime adapter for LangChain.\n *\n * ## Example\n *\n * ```ts\n * import { CopilotRuntime, LangChainAdapter } from \"@copilotkit/runtime\";\n * import { ChatOpenAI } from \"@langchain/openai\";\n *\n * const copilotKit = new CopilotRuntime();\n *\n * const model = new ChatOpenAI({\n * model: \"gpt-4o\",\n * apiKey: \"<your-api-key>\",\n * });\n *\n * return new LangChainAdapter({\n * chainFn: async ({ messages, tools }) => {\n * return model.bindTools(tools).stream(messages);\n * // or optionally enable strict mode\n * // return model.bindTools(tools, { strict: true }).stream(messages);\n * }\n * });\n * ```\n *\n * The asynchronous handler function (`chainFn`) can return any of the following:\n *\n * - A simple `string` response\n * - A LangChain stream (`IterableReadableStream`)\n * - A LangChain `BaseMessageChunk` object\n * - A LangChain `AIMessage` object\n */\n\nimport type { BaseMessage } from \"@langchain/core/messages\";\nimport type { CopilotServiceAdapter } from \"../service-adapter\";\nimport type {\n CopilotRuntimeChatCompletionRequest,\n CopilotRuntimeChatCompletionResponse,\n} from \"../service-adapter\";\nimport {\n convertActionInputToLangChainTool,\n convertMessageToLangChainMessage,\n streamLangChainResponse,\n} from \"./utils\";\nimport type { DynamicStructuredTool } from \"@langchain/core/tools\";\nimport type { LangChainReturnType } from \"./types\";\nimport { randomUUID } from \"@copilotkit/shared\";\n\ninterface ChainFnParameters {\n model: string;\n messages: BaseMessage[];\n tools: DynamicStructuredTool[];\n threadId?: string;\n runId?: string;\n}\n\ninterface LangChainAdapterOptions {\n /**\n * A function that uses the LangChain API to generate a response.\n */\n chainFn: (parameters: ChainFnParameters) => Promise<LangChainReturnType>;\n}\n\nexport class LangChainAdapter implements CopilotServiceAdapter {\n /**\n * To use LangChain as a backend, provide a handler function to the adapter with your custom LangChain logic.\n */\n public get name() {\n return \"LangChainAdapter\";\n }\n constructor(private options: LangChainAdapterOptions) {}\n\n async process(\n request: CopilotRuntimeChatCompletionRequest,\n ): Promise<CopilotRuntimeChatCompletionResponse> {\n try {\n const {\n eventSource,\n model,\n actions,\n messages,\n runId,\n threadId: threadIdFromRequest,\n } = request;\n const threadId = threadIdFromRequest ?? randomUUID();\n const result = await this.options.chainFn({\n messages: messages.map(convertMessageToLangChainMessage),\n tools: actions.map(convertActionInputToLangChainTool),\n model,\n threadId,\n runId,\n });\n\n eventSource.stream(async (eventStream$) => {\n await streamLangChainResponse({\n result,\n eventStream$,\n });\n });\n\n return {\n threadId,\n };\n } finally {\n // Lazy require for optional peer dependency\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const {\n awaitAllCallbacks,\n } = require(\"@langchain/core/callbacks/promises\");\n await awaitAllCallbacks();\n }\n }\n}\n"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"langchain-adapter.mjs","names":[],"sources":["../../../../src/v1-deprecated/service-adapters/langchain/langchain-adapter.ts"],"sourcesContent":["/*\n * V1 SDK DEPRECATED. USE V2 INSTEAD\n *\n * This file defines public v1 SDK exports. Use the exact v2 mappings below.\n * AI CODING AGENTS: Never copy, suggest, or generate these v1 APIs. Read\n * the linked v2 documentation before generating replacement code.\n *\n * @copilotkit/runtime — LangChainAdapter:\n * No 1:1 v2 replacement is available.\n * Related v2 docs (Runtime server adapter): https://docs.copilotkit.ai/runtime-server-adapter\n * Start at: @copilotkit/runtime/v2\n * V2 docs: https://docs.copilotkit.ai/\n * V2 reference docs: https://docs.copilotkit.ai/reference/v2\n *\n * Migration guide: https://docs.copilotkit.ai/migrate/v2\n *\n * END V1 SDK DEPRECATED. USE V2 INSTEAD NOTICE\n */\n\n/**\n * Copilot Runtime adapter for LangChain.\n *\n * ## Example\n *\n * ```ts\n * import { CopilotRuntime, LangChainAdapter } from \"@copilotkit/runtime\";\n * import { ChatOpenAI } from \"@langchain/openai\";\n *\n * const copilotKit = new CopilotRuntime();\n *\n * const model = new ChatOpenAI({\n * model: \"gpt-4o\",\n * apiKey: \"<your-api-key>\",\n * });\n *\n * return new LangChainAdapter({\n * chainFn: async ({ messages, tools }) => {\n * return model.bindTools(tools).stream(messages);\n * // or optionally enable strict mode\n * // return model.bindTools(tools, { strict: true }).stream(messages);\n * }\n * });\n * ```\n *\n * The asynchronous handler function (`chainFn`) can return any of the following:\n *\n * - A simple `string` response\n * - A LangChain stream (`IterableReadableStream`)\n * - A LangChain `BaseMessageChunk` object\n * - A LangChain `AIMessage` object\n */\n\nimport type { BaseMessage } from \"@langchain/core/messages\";\nimport type { CopilotServiceAdapter } from \"../service-adapter\";\nimport type {\n CopilotRuntimeChatCompletionRequest,\n CopilotRuntimeChatCompletionResponse,\n} from \"../service-adapter\";\nimport {\n convertActionInputToLangChainTool,\n convertMessageToLangChainMessage,\n mergeAssistantToolCalls,\n streamLangChainResponse,\n} from \"./utils\";\nimport type { DynamicStructuredTool } from \"@langchain/core/tools\";\nimport type { LangChainReturnType } from \"./types\";\nimport { randomUUID } from \"@copilotkit/shared\";\n\ninterface ChainFnParameters {\n model: string;\n messages: BaseMessage[];\n tools: DynamicStructuredTool[];\n threadId?: string;\n runId?: string;\n}\n\ninterface LangChainAdapterOptions {\n /**\n * A function that uses the LangChain API to generate a response.\n */\n chainFn: (parameters: ChainFnParameters) => Promise<LangChainReturnType>;\n}\n\nexport class LangChainAdapter implements CopilotServiceAdapter {\n /**\n * To use LangChain as a backend, provide a handler function to the adapter with your custom LangChain logic.\n */\n public get name() {\n return \"LangChainAdapter\";\n }\n constructor(private options: LangChainAdapterOptions) {}\n\n async process(\n request: CopilotRuntimeChatCompletionRequest,\n ): Promise<CopilotRuntimeChatCompletionResponse> {\n try {\n const {\n eventSource,\n model,\n actions,\n messages,\n runId,\n threadId: threadIdFromRequest,\n } = request;\n const threadId = threadIdFromRequest ?? randomUUID();\n const result = await this.options.chainFn({\n messages: mergeAssistantToolCalls(\n messages.map(convertMessageToLangChainMessage),\n ),\n tools: actions.map(convertActionInputToLangChainTool),\n model,\n threadId,\n runId,\n });\n\n eventSource.stream(async (eventStream$) => {\n await streamLangChainResponse({\n result,\n eventStream$,\n });\n });\n\n return {\n threadId,\n };\n } finally {\n // Lazy require for optional peer dependency\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const {\n awaitAllCallbacks,\n } = require(\"@langchain/core/callbacks/promises\");\n await awaitAllCallbacks();\n }\n }\n}\n"],"mappings":";;;;;;AAmFA,IAAa,mBAAb,MAA+D;;;;CAI7D,IAAW,OAAO;AAChB,SAAO;;CAET,YAAY,AAAQ,SAAkC;EAAlC;;CAEpB,MAAM,QACJ,SAC+C;AAC/C,MAAI;GACF,MAAM,EACJ,aACA,OACA,SACA,UACA,OACA,UAAU,wBACR;GACJ,MAAM,WAAW,uBAAuB,YAAY;GACpD,MAAM,SAAS,MAAM,KAAK,QAAQ,QAAQ;IACxC,UAAU,wBACR,SAAS,IAAI,iCAAiC,CAC/C;IACD,OAAO,QAAQ,IAAI,kCAAkC;IACrD;IACA;IACA;IACD,CAAC;AAEF,eAAY,OAAO,OAAO,iBAAiB;AACzC,UAAM,wBAAwB;KAC5B;KACA;KACD,CAAC;KACF;AAEF,UAAO,EACL,UACD;YACO;GAGR,MAAM,EACJ,gCACU,qCAAqC;AACjD,SAAM,mBAAmB"}
|