@copilotkit/runtime 1.0.6 → 1.0.7

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 (37) hide show
  1. package/.turbo/turbo-build.log +47 -47
  2. package/CHANGELOG.md +8 -0
  3. package/dist/{chunk-ZA7P76V6.mjs → chunk-74N2ME6S.mjs} +16 -2
  4. package/dist/chunk-74N2ME6S.mjs.map +1 -0
  5. package/dist/{chunk-XXDXWPU2.mjs → chunk-W7VNHFVP.mjs} +2 -2
  6. package/dist/{chunk-KZ4CQTGH.mjs → chunk-XUJZPK4P.mjs} +2 -2
  7. package/dist/{chunk-A2K4XX7Q.mjs → chunk-YNH6B4QZ.mjs} +14 -2
  8. package/dist/chunk-YNH6B4QZ.mjs.map +1 -0
  9. package/dist/{chunk-FI5ULODX.mjs → chunk-Z2G5OVBH.mjs} +2 -2
  10. package/dist/index.js +27 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +5 -5
  13. package/dist/lib/index.js +27 -1
  14. package/dist/lib/index.js.map +1 -1
  15. package/dist/lib/index.mjs +5 -5
  16. package/dist/lib/integrations/index.js +27 -1
  17. package/dist/lib/integrations/index.js.map +1 -1
  18. package/dist/lib/integrations/index.mjs +4 -4
  19. package/dist/lib/integrations/nest/index.js +15 -1
  20. package/dist/lib/integrations/nest/index.js.map +1 -1
  21. package/dist/lib/integrations/nest/index.mjs +2 -2
  22. package/dist/lib/integrations/node-express/index.js +15 -1
  23. package/dist/lib/integrations/node-express/index.js.map +1 -1
  24. package/dist/lib/integrations/node-express/index.mjs +2 -2
  25. package/dist/lib/integrations/node-http/index.js +15 -1
  26. package/dist/lib/integrations/node-http/index.js.map +1 -1
  27. package/dist/lib/integrations/node-http/index.mjs +1 -1
  28. package/package.json +2 -2
  29. package/src/lib/integrations/nextjs/app-router.ts +6 -0
  30. package/src/lib/integrations/nextjs/pages-router.ts +6 -0
  31. package/src/lib/integrations/node-http/index.ts +6 -0
  32. package/src/lib/integrations/shared.ts +8 -0
  33. package/dist/chunk-A2K4XX7Q.mjs.map +0 -1
  34. package/dist/chunk-ZA7P76V6.mjs.map +0 -1
  35. /package/dist/{chunk-XXDXWPU2.mjs.map → chunk-W7VNHFVP.mjs.map} +0 -0
  36. /package/dist/{chunk-KZ4CQTGH.mjs.map → chunk-XUJZPK4P.mjs.map} +0 -0
  37. /package/dist/{chunk-FI5ULODX.mjs.map → chunk-Z2G5OVBH.mjs.map} +0 -0
@@ -1,5 +1,5 @@
1
1
 
2
- > @copilotkit/runtime@1.0.6 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/runtime
2
+ > @copilotkit/runtime@1.0.7 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/runtime
3
3
  > tsup --clean
4
4
 
5
5
  CLI Building entry: src/index.ts, src/lib/index.ts, src/service-adapters/index.ts, src/utils/index.ts, src/lib/cloud/index.ts, src/lib/integrations/index.ts, src/graphql/types/base/index.ts, src/graphql/types/converted/index.ts, src/lib/integrations/nest/index.ts, src/lib/integrations/node-express/index.ts, src/lib/integrations/node-http/index.ts
@@ -10,76 +10,76 @@
10
10
  CLI Cleaning output folder
11
11
  ESM Build start
12
12
  CJS Build start
13
- ESM dist/lib/integrations/nest/index.mjs 379.00 B
14
- ESM dist/lib/integrations/node-express/index.mjs 393.00 B
15
- ESM dist/lib/integrations/node-http/index.mjs 349.00 B
16
13
  ESM dist/index.mjs 1.43 KB
17
- ESM dist/lib/index.mjs 1.19 KB
18
- ESM dist/chunk-KZ4CQTGH.mjs 4.67 KB
19
14
  ESM dist/service-adapters/index.mjs 459.00 B
20
- ESM dist/chunk-JA2IRWRL.mjs 21.85 KB
21
15
  ESM dist/utils/index.mjs 315.00 B
22
- ESM dist/lib/cloud/index.mjs 34.00 B
23
- ESM dist/lib/integrations/index.mjs 884.00 B
24
- ESM dist/chunk-A2K4XX7Q.mjs 1.80 KB
25
- ESM dist/chunk-XXDXWPU2.mjs 611.00 B
26
- ESM dist/chunk-FI5ULODX.mjs 655.00 B
16
+ ESM dist/chunk-XUJZPK4P.mjs 4.67 KB
17
+ ESM dist/chunk-JA2IRWRL.mjs 21.85 KB
18
+ ESM dist/chunk-YNH6B4QZ.mjs 2.18 KB
19
+ ESM dist/chunk-Z2G5OVBH.mjs 655.00 B
20
+ ESM dist/chunk-W7VNHFVP.mjs 611.00 B
21
+ ESM dist/chunk-74N2ME6S.mjs 49.40 KB
27
22
  ESM dist/chunk-URMISMK2.mjs 7.87 KB
28
- ESM dist/chunk-ZA7P76V6.mjs 49.01 KB
29
23
  ESM dist/chunk-U3V2BCGI.mjs 4.91 KB
30
24
  ESM dist/chunk-GEIBJJQ4.mjs 645.00 B
31
25
  ESM dist/chunk-RMZWGQ46.mjs 1.36 KB
32
26
  ESM dist/chunk-44O2JGUY.mjs 418.00 B
33
- ESM dist/graphql/types/converted/index.mjs 283.00 B
27
+ ESM dist/lib/cloud/index.mjs 34.00 B
28
+ ESM dist/lib/integrations/index.mjs 884.00 B
29
+ ESM dist/lib/index.mjs 1.19 KB
34
30
  ESM dist/graphql/types/base/index.mjs 159.00 B
35
- ESM dist/lib/integrations/nest/index.mjs.map 71.00 B
36
- ESM dist/lib/integrations/node-http/index.mjs.map 71.00 B
37
- ESM dist/lib/integrations/node-express/index.mjs.map 71.00 B
38
31
  ESM dist/index.mjs.map 222.00 B
39
- ESM dist/lib/index.mjs.map 71.00 B
40
- ESM dist/chunk-KZ4CQTGH.mjs.map 13.94 KB
41
32
  ESM dist/service-adapters/index.mjs.map 71.00 B
42
- ESM dist/chunk-JA2IRWRL.mjs.map 47.43 KB
43
33
  ESM dist/utils/index.mjs.map 71.00 B
44
- ESM dist/lib/cloud/index.mjs.map 71.00 B
45
- ESM dist/lib/integrations/index.mjs.map 71.00 B
46
- ESM dist/chunk-A2K4XX7Q.mjs.map 3.55 KB
47
- ESM dist/chunk-XXDXWPU2.mjs.map 901.00 B
48
- ESM dist/chunk-FI5ULODX.mjs.map 931.00 B
34
+ ESM dist/lib/integrations/nest/index.mjs 379.00 B
35
+ ESM dist/lib/integrations/node-express/index.mjs 393.00 B
36
+ ESM dist/lib/integrations/node-http/index.mjs 349.00 B
37
+ ESM dist/chunk-XUJZPK4P.mjs.map 13.94 KB
38
+ ESM dist/chunk-JA2IRWRL.mjs.map 47.43 KB
39
+ ESM dist/chunk-YNH6B4QZ.mjs.map 4.09 KB
40
+ ESM dist/chunk-Z2G5OVBH.mjs.map 931.00 B
41
+ ESM dist/chunk-W7VNHFVP.mjs.map 901.00 B
42
+ ESM dist/chunk-74N2ME6S.mjs.map 65.64 KB
49
43
  ESM dist/chunk-URMISMK2.mjs.map 14.79 KB
50
- ESM dist/chunk-ZA7P76V6.mjs.map 65.06 KB
51
- ESM dist/chunk-RMZWGQ46.mjs.map 645.00 B
44
+ ESM dist/chunk-U3V2BCGI.mjs.map 5.63 KB
45
+ ESM dist/graphql/types/converted/index.mjs 283.00 B
52
46
  ESM dist/chunk-GEIBJJQ4.mjs.map 1.18 KB
47
+ ESM dist/chunk-RMZWGQ46.mjs.map 645.00 B
53
48
  ESM dist/chunk-44O2JGUY.mjs.map 71.00 B
54
- ESM dist/chunk-U3V2BCGI.mjs.map 5.63 KB
55
- ESM dist/graphql/types/converted/index.mjs.map 71.00 B
49
+ ESM dist/lib/cloud/index.mjs.map 71.00 B
50
+ ESM dist/lib/integrations/index.mjs.map 71.00 B
51
+ ESM dist/lib/index.mjs.map 71.00 B
56
52
  ESM dist/graphql/types/base/index.mjs.map 71.00 B
57
- ESM ⚡️ Build success in 237ms
58
- CJS dist/index.js 96.46 KB
59
- CJS dist/service-adapters/index.js 33.23 KB
53
+ ESM dist/lib/integrations/nest/index.mjs.map 71.00 B
54
+ ESM dist/lib/integrations/node-express/index.mjs.map 71.00 B
55
+ ESM dist/lib/integrations/node-http/index.mjs.map 71.00 B
56
+ ESM dist/graphql/types/converted/index.mjs.map 71.00 B
57
+ ESM ⚡️ Build success in 324ms
58
+ CJS dist/index.js 97.23 KB
59
+ CJS dist/lib/index.js 96.87 KB
60
60
  CJS dist/utils/index.js 6.32 KB
61
- CJS dist/lib/index.js 96.10 KB
62
61
  CJS dist/lib/cloud/index.js 787.00 B
63
- CJS dist/lib/integrations/index.js 58.59 KB
64
- CJS dist/lib/integrations/nest/index.js 55.97 KB
65
- CJS dist/lib/integrations/node-express/index.js 56.05 KB
66
- CJS dist/lib/integrations/node-http/index.js 55.59 KB
62
+ CJS dist/service-adapters/index.js 33.23 KB
67
63
  CJS dist/graphql/types/base/index.js 2.44 KB
68
- CJS dist/service-adapters/index.js.map 64.23 KB
69
- CJS dist/index.js.map 150.42 KB
64
+ CJS dist/graphql/types/converted/index.js 3.04 KB
65
+ CJS dist/lib/integrations/index.js 59.36 KB
66
+ CJS dist/lib/integrations/nest/index.js 56.36 KB
67
+ CJS dist/lib/integrations/node-express/index.js 56.45 KB
68
+ CJS dist/lib/integrations/node-http/index.js 55.98 KB
69
+ CJS dist/index.js.map 151.55 KB
70
70
  CJS dist/utils/index.js.map 5.63 KB
71
+ CJS dist/lib/index.js.map 151.90 KB
71
72
  CJS dist/lib/cloud/index.js.map 217.00 B
72
- CJS dist/lib/integrations/index.js.map 74.14 KB
73
- CJS dist/lib/index.js.map 150.77 KB
74
- CJS dist/lib/integrations/nest/index.js.map 69.60 KB
75
- CJS dist/lib/integrations/node-express/index.js.map 69.63 KB
76
- CJS dist/lib/integrations/node-http/index.js.map 68.78 KB
77
- CJS dist/graphql/types/converted/index.js 3.04 KB
73
+ CJS dist/service-adapters/index.js.map 64.23 KB
78
74
  CJS dist/graphql/types/base/index.js.map 645.00 B
79
75
  CJS dist/graphql/types/converted/index.js.map 1.76 KB
80
- CJS ⚡️ Build success in 239ms
76
+ CJS dist/lib/integrations/index.js.map 75.27 KB
77
+ CJS dist/lib/integrations/nest/index.js.map 70.18 KB
78
+ CJS dist/lib/integrations/node-express/index.js.map 70.21 KB
79
+ CJS dist/lib/integrations/node-http/index.js.map 69.36 KB
80
+ CJS ⚡️ Build success in 345ms
81
81
  DTS Build start
82
- DTS ⚡️ Build success in 8300ms
82
+ DTS ⚡️ Build success in 8616ms
83
83
  DTS dist/index.d.ts 1.50 KB
84
84
  DTS dist/lib/integrations/node-http/index.d.ts 586.00 B
85
85
  DTS dist/lib/integrations/node-express/index.d.ts 592.00 B
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @copilotkit/runtime
2
2
 
3
+ ## 1.0.7
4
+
5
+ ### Patch Changes
6
+
7
+ - Add \_copilotkit internal properties to runtime
8
+ - Updated dependencies
9
+ - @copilotkit/shared@1.0.7
10
+
3
11
  ## 1.0.6
4
12
 
5
13
  ### Patch Changes
@@ -35,7 +35,7 @@ var require_package = __commonJS({
35
35
  publishConfig: {
36
36
  access: "public"
37
37
  },
38
- version: "1.0.6",
38
+ version: "1.0.7",
39
39
  sideEffects: false,
40
40
  main: "./dist/index.js",
41
41
  module: "./dist/index.mjs",
@@ -1349,6 +1349,7 @@ function buildSchema(options = {}) {
1349
1349
  }
1350
1350
  __name(buildSchema, "buildSchema");
1351
1351
  function getCommonConfig(options) {
1352
+ var _a;
1352
1353
  const logLevel = process.env.LOG_LEVEL || options.logLevel || "error";
1353
1354
  const logger2 = createLogger({
1354
1355
  level: logLevel,
@@ -1363,6 +1364,13 @@ function getCommonConfig(options) {
1363
1364
  baseUrl: options.cloud.baseUrl
1364
1365
  });
1365
1366
  }
1367
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
1368
+ telemetry_client_default.setGlobalProperties({
1369
+ _copilotkit: {
1370
+ ...options.properties._copilotkit
1371
+ }
1372
+ });
1373
+ }
1366
1374
  telemetry_client_default.setGlobalProperties({
1367
1375
  runtime: {
1368
1376
  serviceAdapter: options.serviceAdapter.constructor.name
@@ -1384,12 +1392,18 @@ __name(getCommonConfig, "getCommonConfig");
1384
1392
 
1385
1393
  // src/lib/integrations/node-http/index.ts
1386
1394
  function copilotRuntimeNodeHttpEndpoint(options) {
1395
+ var _a;
1387
1396
  const commonConfig = getCommonConfig(options);
1388
1397
  telemetry_client_default.setGlobalProperties({
1389
1398
  runtime: {
1390
1399
  framework: "node-http"
1391
1400
  }
1392
1401
  });
1402
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
1403
+ telemetry_client_default.setGlobalProperties({
1404
+ _copilotkit: options.properties._copilotkit
1405
+ });
1406
+ }
1393
1407
  telemetry_client_default.capture("oss.runtime.instance_created", {});
1394
1408
  const logger2 = commonConfig.logging;
1395
1409
  logger2.debug("Creating Node HTTP endpoint");
@@ -1409,4 +1423,4 @@ export {
1409
1423
  getCommonConfig,
1410
1424
  copilotRuntimeNodeHttpEndpoint
1411
1425
  };
1412
- //# sourceMappingURL=chunk-ZA7P76V6.mjs.map
1426
+ //# sourceMappingURL=chunk-74N2ME6S.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../package.json","../src/lib/integrations/node-http/index.ts","../src/lib/integrations/shared.ts","../src/graphql/resolvers/copilot.resolver.ts","../src/graphql/inputs/generate-copilot-response.input.ts","../src/graphql/inputs/message.input.ts","../src/graphql/types/enums.ts","../src/graphql/inputs/frontend.input.ts","../src/graphql/inputs/action.input.ts","../src/graphql/inputs/cloud.input.ts","../src/graphql/inputs/cloud-guardrails.input.ts","../src/graphql/types/copilot-response.type.ts","../src/graphql/types/message-status.type.ts","../src/service-adapters/events.ts","../src/lib/telemetry-client.ts","../src/lib/logger.ts"],"sourcesContent":["{\n \"name\": \"@copilotkit/runtime\",\n \"private\": false,\n \"homepage\": \"https://github.com/CopilotKit/CopilotKit\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/CopilotKit/CopilotKit.git\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"version\": \"1.0.7\",\n \"sideEffects\": false,\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.mjs\",\n \"exports\": {\n \".\": \"./dist/index.js\"\n },\n \"types\": \"./dist/index.d.ts\",\n \"license\": \"MIT\",\n \"scripts\": {\n \"build\": \"tsup --clean\",\n \"dev\": \"tsup --watch --onSuccess \\\"pnpm run generate-graphql-schema\\\"\",\n \"test\": \"jest --passWithNoTests\",\n \"check-types\": \"tsc --noEmit\",\n \"clean\": \"rm -rf .turbo && rm -rf node_modules && rm -rf dist && rm -rf .next\",\n \"generate-graphql-schema\": \"rm -rf __snapshots__ && ts-node ./scripts/generate-gql-schema.ts\"\n },\n \"devDependencies\": {\n \"@swc/core\": \"1.5.28\",\n \"@types/express\": \"^4.17.21\",\n \"@types/jest\": \"^29.5.4\",\n \"@types/node\": \"^18.11.17\",\n \"@whatwg-node/server\": \"^0.9.34\",\n \"eslint\": \"^8.56.0\",\n \"eslint-config-custom\": \"workspace:*\",\n \"jest\": \"^29.6.4\",\n \"nodemon\": \"^3.1.3\",\n \"ts-jest\": \"^29.1.1\",\n \"ts-node\": \"^10.9.2\",\n \"tsconfig\": \"workspace:*\",\n \"tsup\": \"^6.7.0\",\n \"typescript\": \"^5.2.3\"\n },\n \"dependencies\": {\n \"@copilotkit/shared\": \"workspace:*\",\n \"@google/generative-ai\": \"^0.11.2\",\n \"@graphql-yoga/plugin-defer-stream\": \"^3.3.1\",\n \"@langchain/community\": \"^0.0.53\",\n \"@langchain/core\": \"^0.1.61\",\n \"@langchain/openai\": \"^0.0.28\",\n \"class-transformer\": \"^0.5.1\",\n \"express\": \"^4.19.2\",\n \"graphql\": \"^16.8.1\",\n \"graphql-scalars\": \"^1.23.0\",\n \"graphql-yoga\": \"^5.3.1\",\n \"groq-sdk\": \"^0.5.0\",\n \"langchain\": \"^0.1.36\",\n \"openai\": \"^4.50.0\",\n \"pino\": \"^9.2.0\",\n \"pino-pretty\": \"^11.2.1\",\n \"reflect-metadata\": \"^0.2.2\",\n \"rxjs\": \"^7.8.1\",\n \"type-graphql\": \"2.0.0-rc.1\",\n \"zod\": \"^3.23.3\"\n },\n \"keywords\": [\n \"copilotkit\",\n \"copilot\",\n \"react\",\n \"nextjs\",\n \"nodejs\",\n \"ai\",\n \"assistant\",\n \"javascript\",\n \"automation\",\n \"textarea\"\n ]\n}\n","import { createYoga } from \"graphql-yoga\";\nimport { CreateCopilotRuntimeServerOptions, getCommonConfig } from \"../shared\";\nimport telemetry from \"../../telemetry-client\";\n\nexport function copilotRuntimeNodeHttpEndpoint(options: CreateCopilotRuntimeServerOptions) {\n const commonConfig = getCommonConfig(options);\n\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"node-http\",\n },\n });\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: options.properties._copilotkit,\n });\n }\n\n telemetry.capture(\"oss.runtime.instance_created\", {});\n\n const logger = commonConfig.logging;\n logger.debug(\"Creating Node HTTP endpoint\");\n\n const yoga = createYoga({\n ...commonConfig,\n graphqlEndpoint: options.endpoint,\n });\n\n return yoga;\n}\n","import { YogaInitialContext } from \"graphql-yoga\";\nimport { buildSchemaSync } from \"type-graphql\";\nimport { CopilotResolver } from \"../../graphql/resolvers/copilot.resolver\";\nimport { useDeferStream } from \"@graphql-yoga/plugin-defer-stream\";\nimport { CopilotRuntime } from \"../copilot-runtime\";\nimport { CopilotServiceAdapter } from \"../../service-adapters\";\nimport { CopilotCloudOptions } from \"../cloud\";\nimport { LogLevel, createLogger } from \"../../lib/logger\";\nimport { createYoga } from \"graphql-yoga\";\nimport telemetry from \"../telemetry-client\";\n\nconst logger = createLogger();\n\ntype AnyPrimitive = string | boolean | number | null;\nexport type CopilotRequestContextProperties = Record<\n string,\n AnyPrimitive | Record<string, AnyPrimitive>\n>;\n\nexport type GraphQLContext = YogaInitialContext & {\n _copilotkit: CreateCopilotRuntimeServerOptions;\n properties: CopilotRequestContextProperties;\n logger: typeof logger;\n};\n\nexport interface CreateCopilotRuntimeServerOptions {\n runtime: CopilotRuntime<any>;\n serviceAdapter: CopilotServiceAdapter;\n endpoint: string;\n baseUrl?: string;\n cloud?: CopilotCloudOptions;\n properties?: CopilotRequestContextProperties;\n logLevel?: LogLevel;\n}\n\nexport async function createContext(\n initialContext: YogaInitialContext,\n copilotKitContext: CreateCopilotRuntimeServerOptions,\n contextLogger: typeof logger,\n properties: CopilotRequestContextProperties = {},\n): Promise<Partial<GraphQLContext>> {\n logger.debug({ copilotKitContext }, \"Creating GraphQL context\");\n const ctx: GraphQLContext = {\n ...initialContext,\n _copilotkit: {\n ...copilotKitContext,\n },\n properties: { ...properties },\n logger: contextLogger,\n };\n return ctx;\n}\n\nexport function buildSchema(\n options: {\n emitSchemaFile?: string;\n } = {},\n) {\n logger.debug(\"Building GraphQL schema...\");\n const schema = buildSchemaSync({\n resolvers: [CopilotResolver],\n emitSchemaFile: options.emitSchemaFile,\n });\n logger.debug(\"GraphQL schema built successfully\");\n return schema;\n}\n\nexport type CommonConfig = {\n logging: typeof logger;\n schema: ReturnType<typeof buildSchema>;\n plugins: Parameters<typeof createYoga>[0][\"plugins\"];\n context: (ctx: YogaInitialContext) => Promise<Partial<GraphQLContext>>;\n};\n\nexport function getCommonConfig(options: CreateCopilotRuntimeServerOptions): CommonConfig {\n const logLevel = (process.env.LOG_LEVEL as LogLevel) || (options.logLevel as LogLevel) || \"error\";\n const logger = createLogger({ level: logLevel, component: \"getCommonConfig\" });\n\n const contextLogger = createLogger({ level: logLevel });\n\n if (options.cloud) {\n telemetry.setCloudConfiguration({\n publicApiKey: options.cloud.publicApiKey,\n baseUrl: options.cloud.baseUrl,\n });\n }\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: {\n ...(options.properties._copilotkit as Record<string, any>),\n },\n });\n }\n\n telemetry.setGlobalProperties({\n runtime: {\n serviceAdapter: options.serviceAdapter.constructor.name,\n },\n });\n\n return {\n logging: createLogger({ component: \"Yoga GraphQL\", level: logLevel }),\n schema: buildSchema(),\n plugins: [useDeferStream()],\n context: (ctx: YogaInitialContext): Promise<Partial<GraphQLContext>> =>\n createContext(ctx, options, contextLogger, options.properties),\n };\n}\n","import { Arg, Ctx, Mutation, Query, Resolver } from \"type-graphql\";\nimport {\n ReplaySubject,\n Subject,\n Subscription,\n finalize,\n firstValueFrom,\n shareReplay,\n skipWhile,\n take,\n takeWhile,\n tap,\n} from \"rxjs\";\nimport { GenerateCopilotResponseInput } from \"../inputs/generate-copilot-response.input\";\nimport { CopilotResponse } from \"../types/copilot-response.type\";\nimport { MessageRole } from \"../types/enums\";\nimport { Repeater } from \"graphql-yoga\";\nimport type { CopilotRequestContextProperties, GraphQLContext } from \"../../lib/integrations\";\nimport { RuntimeEvent, RuntimeEventTypes } from \"../../service-adapters/events\";\nimport {\n FailedMessageStatus,\n MessageStatusUnion,\n SuccessMessageStatus,\n} from \"../types/message-status.type\";\nimport { ResponseStatusUnion, SuccessResponseStatus } from \"../types/response-status.type\";\nimport { GraphQLJSONObject } from \"graphql-scalars\";\nimport { plainToInstance } from \"class-transformer\";\nimport { GuardrailsResult } from \"../types/guardrails-result.type\";\nimport { GraphQLError } from \"graphql\";\nimport {\n GuardrailsValidationFailureResponse,\n MessageStreamInterruptedResponse,\n UnknownErrorResponse,\n} from \"../../utils\";\nimport { ActionExecutionMessage, Message, ResultMessage, TextMessage } from \"../types/converted\";\nimport telemetry from \"../../lib/telemetry-client\";\nimport { randomId } from \"@copilotkit/shared\";\n\nconst invokeGuardrails = async ({\n baseUrl,\n copilotCloudPublicApiKey,\n data,\n onResult,\n onError,\n}: {\n baseUrl: string;\n copilotCloudPublicApiKey: string;\n data: GenerateCopilotResponseInput;\n onResult: (result: GuardrailsResult) => void;\n onError: (err: Error) => void;\n}) => {\n console.log(\"invokeGuardrails.baseUrl\", baseUrl);\n\n if (\n data.messages.length &&\n data.messages[data.messages.length - 1].textMessage?.role === MessageRole.user\n ) {\n const messages = data.messages\n .filter(\n (m) =>\n m.textMessage !== undefined &&\n (m.textMessage.role === MessageRole.user || m.textMessage.role === MessageRole.assistant),\n )\n .map((m) => ({\n role: m.textMessage!.role,\n content: m.textMessage.content,\n }));\n\n const lastMessage = messages[messages.length - 1];\n const restOfMessages = messages.slice(0, -1);\n\n const body = {\n input: lastMessage.content,\n validTopics: data.cloud.guardrails.inputValidationRules.allowList,\n invalidTopics: data.cloud.guardrails.inputValidationRules.denyList,\n messages: restOfMessages,\n };\n\n const guardrailsResult = await fetch(`${baseUrl}/guardrails/validate`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CopilotCloud-Public-API-Key\": copilotCloudPublicApiKey,\n },\n body: JSON.stringify(body),\n });\n\n if (guardrailsResult.ok) {\n const resultJson: GuardrailsResult = await guardrailsResult.json();\n onResult(resultJson);\n } else {\n onError(await guardrailsResult.json());\n }\n }\n};\n\n@Resolver(() => CopilotResponse)\nexport class CopilotResolver {\n @Query(() => String)\n async hello() {\n return \"Hello World\";\n }\n\n @Mutation(() => CopilotResponse)\n async generateCopilotResponse(\n @Ctx() ctx: GraphQLContext,\n @Arg(\"data\") data: GenerateCopilotResponseInput,\n @Arg(\"properties\", () => GraphQLJSONObject, { nullable: true })\n properties?: CopilotRequestContextProperties,\n ) {\n telemetry.capture(\"oss.runtime.copilot_request_created\", {\n \"cloud.guardrails.enabled\": data.cloud?.guardrails !== undefined,\n requestType: data.metadata.requestType,\n });\n\n let logger = ctx.logger.child({ component: \"CopilotResolver.generateCopilotResponse\" });\n logger.debug({ data }, \"Generating Copilot response\");\n\n const copilotRuntime = ctx._copilotkit.runtime;\n const serviceAdapter = ctx._copilotkit.serviceAdapter;\n\n if (properties) {\n logger.debug(\"Properties provided, merging with context properties\");\n ctx.properties = { ...ctx.properties, ...properties };\n }\n\n let copilotCloudPublicApiKey: string | null = null;\n let copilotCloudBaseUrl: string;\n\n if (data.cloud) {\n logger = logger.child({ cloud: true });\n logger.debug(\"Cloud configuration provided, checking for public API key in headers\");\n const key = ctx.request.headers.get(\"x-copilotcloud-public-api-key\");\n if (key) {\n logger.debug(\"Public API key found in headers\");\n copilotCloudPublicApiKey = key;\n } else {\n logger.error(\"Public API key not found in headers\");\n throw new GraphQLError(\"X-CopilotCloud-Public-API-Key header is required\");\n }\n\n if (process.env.COPILOT_CLOUD_BASE_URL) {\n copilotCloudBaseUrl = process.env.COPILOT_CLOUD_BASE_URL;\n } else if (ctx._copilotkit.cloud?.baseUrl) {\n copilotCloudBaseUrl = ctx._copilotkit.cloud?.baseUrl;\n } else {\n copilotCloudBaseUrl = \"https://api.cloud.copilotkit.ai\";\n }\n\n logger = logger.child({ copilotCloudBaseUrl });\n }\n\n logger.debug(\"Setting up subjects\");\n const responseStatus$ = new ReplaySubject<typeof ResponseStatusUnion>();\n const interruptStreaming$ = new ReplaySubject<{ reason: string; messageId?: string }>();\n const guardrailsResult$ = new ReplaySubject<GuardrailsResult>();\n\n let outputMessages: Message[] = [];\n let resolveOutputMessagesPromise: (messages: Message[]) => void;\n let rejectOutputMessagesPromise: (err: Error) => void;\n\n const outputMessagesPromise = new Promise<Message[]>((resolve, reject) => {\n resolveOutputMessagesPromise = resolve;\n rejectOutputMessagesPromise = reject;\n });\n\n logger.debug(\"Processing\");\n const {\n eventSource,\n threadId = randomId(),\n runId,\n actions,\n } = await copilotRuntime.process({\n serviceAdapter,\n messages: data.messages,\n actions: data.frontend.actions,\n threadId: data.threadId,\n runId: data.runId,\n publicApiKey: undefined,\n properties: ctx.properties || {},\n outputMessagesPromise,\n });\n\n logger.debug(\"Event source created, creating response\");\n\n const response = {\n threadId,\n runId,\n status: firstValueFrom(responseStatus$),\n messages: new Repeater(async (pushMessage, stopStreamingMessages) => {\n logger.debug(\"Messages repeater created\");\n\n if (data.cloud?.guardrails) {\n logger = logger.child({ guardrails: true });\n logger.debug(\"Guardrails is enabled, validating input\");\n\n invokeGuardrails({\n baseUrl: copilotCloudBaseUrl,\n copilotCloudPublicApiKey,\n data,\n onResult: (result) => {\n logger.debug({ status: result.status }, \"Guardrails validation done\");\n guardrailsResult$.next(result);\n\n // Guardrails validation failed\n if (result.status === \"denied\") {\n // send the reason to the client and interrupt streaming\n responseStatus$.next(\n new GuardrailsValidationFailureResponse({ guardrailsReason: result.reason }),\n );\n interruptStreaming$.next({\n reason: `Interrupted due to Guardrails validation failure. Reason: ${result.reason}`,\n });\n\n // resolve messages promise to the middleware\n outputMessages = [\n plainToInstance(TextMessage, {\n id: randomId(),\n createdAt: new Date(),\n content: result.reason,\n role: MessageRole.assistant,\n }),\n ];\n resolveOutputMessagesPromise(outputMessages);\n }\n },\n onError: (err) => {\n logger.error({ err }, \"Error in guardrails validation\");\n responseStatus$.next(\n new UnknownErrorResponse({\n description: `An unknown error has occurred in the guardrails validation`,\n }),\n );\n interruptStreaming$.next({\n reason: `Interrupted due to unknown error in guardrails validation`,\n });\n\n // reject the middleware promise\n rejectOutputMessagesPromise(err);\n },\n });\n }\n\n let eventStreamSubscription: Subscription;\n\n // run and process the event stream\n const eventStream = eventSource\n .process({\n serversideActions: actions,\n guardrailsResult$: data.cloud?.guardrails ? guardrailsResult$ : null,\n })\n .pipe(\n // shareReplay() ensures that later subscribers will see the whole stream instead of\n // just the events that were emitted after the subscriber was added.\n shareReplay(),\n finalize(() => {\n logger.debug(\"Event stream finalized\");\n }),\n );\n\n logger.debug(\"Event stream created, subscribing to event stream\");\n\n eventStreamSubscription = eventStream.subscribe({\n next: async (event) => {\n switch (event.type) {\n ////////////////////////////////\n // TextMessageStart\n ////////////////////////////////\n case RuntimeEventTypes.TextMessageStart:\n // create a sub stream that contains the message content\n const textMessageContentStream = eventStream.pipe(\n // skip until this message start event\n skipWhile((e) => e !== event),\n // take until the message end event\n takeWhile((e) => e.type != RuntimeEventTypes.TextMessageEnd),\n );\n\n // signal when we are done streaming\n const streamingTextStatus = new Subject<typeof MessageStatusUnion>();\n\n const messageId = randomId();\n\n // push the new message\n pushMessage({\n id: messageId,\n status: firstValueFrom(streamingTextStatus),\n createdAt: new Date(),\n role: MessageRole.assistant,\n content: new Repeater(async (pushTextChunk, stopStreamingText) => {\n logger.debug(\"Text message content repeater created\");\n\n const textChunks: string[] = [];\n let textSubscription: Subscription;\n\n interruptStreaming$\n .pipe(\n shareReplay(),\n take(1),\n tap(({ reason, messageId }) => {\n logger.debug({ reason, messageId }, \"Text streaming interrupted\");\n\n streamingTextStatus.next(\n plainToInstance(FailedMessageStatus, { reason }),\n );\n\n responseStatus$.next(new MessageStreamInterruptedResponse({ messageId }));\n stopStreamingText();\n textSubscription?.unsubscribe();\n }),\n )\n .subscribe();\n\n logger.debug(\"Subscribing to text message content stream\");\n\n textSubscription = textMessageContentStream.subscribe({\n next: async (e: RuntimeEvent) => {\n if (e.type == RuntimeEventTypes.TextMessageContent) {\n await pushTextChunk(e.content);\n textChunks.push(e.content);\n }\n },\n error: (err) => {\n logger.error({ err }, \"Error in text message content stream\");\n interruptStreaming$.next({\n reason: \"Error streaming message content\",\n messageId,\n });\n stopStreamingText();\n textSubscription?.unsubscribe();\n },\n complete: () => {\n logger.debug(\"Text message content stream completed\");\n streamingTextStatus.next(new SuccessMessageStatus());\n stopStreamingText();\n textSubscription?.unsubscribe();\n\n outputMessages.push(\n plainToInstance(TextMessage, {\n id: messageId,\n createdAt: new Date(),\n content: textChunks.join(\"\"),\n role: MessageRole.assistant,\n }),\n );\n },\n });\n }),\n });\n break;\n ////////////////////////////////\n // ActionExecutionStart\n ////////////////////////////////\n case RuntimeEventTypes.ActionExecutionStart:\n logger.debug(\"Action execution start event received\");\n const actionExecutionArgumentStream = eventStream.pipe(\n skipWhile((e) => e !== event),\n takeWhile((e) => e.type != RuntimeEventTypes.ActionExecutionEnd),\n );\n const streamingArgumentsStatus = new Subject<typeof MessageStatusUnion>();\n pushMessage({\n id: event.actionExecutionId,\n status: firstValueFrom(streamingArgumentsStatus),\n createdAt: new Date(),\n name: event.actionName,\n scope: event.scope!,\n arguments: new Repeater(async (pushArgumentsChunk, stopStreamingArguments) => {\n logger.debug(\"Action execution argument stream created\");\n\n const argumentChunks: string[] = [];\n let actionExecutionArgumentSubscription: Subscription;\n\n actionExecutionArgumentSubscription = actionExecutionArgumentStream.subscribe({\n next: async (e: RuntimeEvent) => {\n if (e.type == RuntimeEventTypes.ActionExecutionArgs) {\n await pushArgumentsChunk(e.args);\n argumentChunks.push(e.args);\n }\n },\n error: (err) => {\n logger.error({ err }, \"Error in action execution argument stream\");\n streamingArgumentsStatus.next(\n plainToInstance(FailedMessageStatus, {\n reason:\n \"An unknown error has occurred in the action execution argument stream\",\n }),\n );\n stopStreamingArguments();\n actionExecutionArgumentSubscription?.unsubscribe();\n },\n complete: () => {\n logger.debug(\"Action execution argument stream completed\");\n streamingArgumentsStatus.next(new SuccessMessageStatus());\n stopStreamingArguments();\n actionExecutionArgumentSubscription?.unsubscribe();\n\n outputMessages.push(\n plainToInstance(ActionExecutionMessage, {\n id: event.actionExecutionId,\n createdAt: new Date(),\n name: event.actionName,\n scope: event.scope!,\n arguments: argumentChunks.join(\"\"),\n }),\n );\n },\n });\n }),\n });\n break;\n ////////////////////////////////\n // ActionExecutionResult\n ////////////////////////////////\n case RuntimeEventTypes.ActionExecutionResult:\n logger.debug({ result: event.result }, \"Action execution result event received\");\n pushMessage({\n id: randomId(),\n status: new SuccessMessageStatus(),\n createdAt: new Date(),\n actionExecutionId: event.actionExecutionId,\n actionName: event.actionName,\n result: event.result,\n });\n\n outputMessages.push(\n plainToInstance(ResultMessage, {\n id: randomId(),\n createdAt: new Date(),\n actionExecutionId: event.actionExecutionId,\n actionName: event.actionName,\n result: event.result,\n }),\n );\n break;\n }\n },\n error: (err) => {\n logger.error({ err }, \"Error in event stream\");\n responseStatus$.next(\n new UnknownErrorResponse({\n description: `An unknown error has occurred in the event stream`,\n }),\n );\n eventStreamSubscription?.unsubscribe();\n stopStreamingMessages();\n\n rejectOutputMessagesPromise(err);\n },\n complete: async () => {\n logger.debug(\"Event stream completed\");\n if (data.cloud?.guardrails) {\n logger.debug(\"Guardrails is enabled, waiting for guardrails result\");\n await firstValueFrom(guardrailsResult$);\n }\n responseStatus$.next(new SuccessResponseStatus());\n eventStreamSubscription?.unsubscribe();\n stopStreamingMessages();\n\n resolveOutputMessagesPromise(outputMessages);\n },\n });\n }),\n };\n\n return response;\n }\n}\n","import { Field, InputType } from \"type-graphql\";\nimport { MessageInput } from \"./message.input\";\nimport { FrontendInput } from \"./frontend.input\";\nimport { CloudInput } from \"./cloud.input\";\nimport { CopilotRequestType } from \"../types/enums\";\n\n@InputType()\nexport class GenerateCopilotResponseMetadataInput {\n @Field(() => CopilotRequestType, { nullable: true })\n requestType: CopilotRequestType;\n}\n\n@InputType()\nexport class GenerateCopilotResponseInput {\n @Field(() => GenerateCopilotResponseMetadataInput, { nullable: false })\n metadata: GenerateCopilotResponseMetadataInput;\n\n @Field(() => String, { nullable: true })\n threadId?: string;\n\n @Field(() => String, { nullable: true })\n runId?: string;\n\n @Field(() => [MessageInput])\n messages: MessageInput[];\n\n @Field(() => FrontendInput)\n frontend: FrontendInput;\n\n @Field(() => CloudInput, { nullable: true })\n cloud?: CloudInput;\n}\n","import { Field, InputType } from \"type-graphql\";\nimport { MessageRole, ActionExecutionScope } from \"../types/enums\";\nimport { BaseMessage } from \"../types/base\";\n\n// GraphQL does not support union types in inputs, so we need to use\n// optional fields for the different subtypes.\n@InputType()\nexport class MessageInput extends BaseMessage {\n @Field(() => TextMessageInput, { nullable: true })\n textMessage?: TextMessageInput;\n\n @Field(() => ActionExecutionMessageInput, { nullable: true })\n actionExecutionMessage?: ActionExecutionMessageInput;\n\n @Field(() => ResultMessageInput, { nullable: true })\n resultMessage?: ResultMessageInput;\n}\n\n@InputType()\nexport class TextMessageInput {\n @Field(() => String)\n content: string;\n\n @Field(() => MessageRole)\n role: MessageRole;\n}\n\n@InputType()\nexport class ActionExecutionMessageInput {\n @Field(() => String)\n name: string;\n\n @Field(() => String)\n arguments: string;\n\n @Field(() => ActionExecutionScope)\n scope: ActionExecutionScope;\n}\n\n@InputType()\nexport class ResultMessageInput {\n @Field(() => String)\n actionExecutionId: string;\n\n @Field(() => String)\n actionName: string;\n\n @Field(() => String)\n result: string;\n}\n","import { registerEnumType } from \"type-graphql\";\n\nexport enum MessageRole {\n user = \"user\",\n assistant = \"assistant\",\n system = \"system\",\n}\n\nexport enum ActionExecutionScope {\n server = \"server\",\n client = \"client\",\n}\n\nexport enum CopilotRequestType {\n Chat = \"Chat\",\n Task = \"Task\",\n TextareaCompletion = \"TextareaCompletion\",\n TextareaPopover = \"TextareaPopover\",\n Suggestion = \"Suggestion\",\n}\n\nregisterEnumType(MessageRole, {\n name: \"MessageRole\",\n description: \"The role of the message\",\n});\n\nregisterEnumType(ActionExecutionScope, {\n name: \"ActionExecutionScope\",\n description: \"The scope of the action\",\n});\n\nregisterEnumType(CopilotRequestType, {\n name: \"CopilotRequestType\",\n description: \"The type of Copilot request\",\n});\n","import { Field, InputType } from \"type-graphql\";\nimport { ActionInput } from \"./action.input\";\n\n@InputType()\nexport class FrontendInput {\n @Field(() => String, { nullable: true })\n toDeprecate_fullContext?: string;\n\n @Field(() => [ActionInput])\n actions: ActionInput[];\n}\n","import { Field, InputType } from \"type-graphql\";\n\n@InputType()\nexport class ActionInput {\n @Field(() => String)\n name: string;\n\n @Field(() => String)\n description: string;\n\n @Field(() => String)\n jsonSchema: string;\n}\n","import { Field, InputType } from \"type-graphql\";\nimport { GuardrailsInput } from \"./cloud-guardrails.input\";\n\n@InputType()\nexport class CloudInput {\n @Field(() => GuardrailsInput, { nullable: true })\n guardrails?: GuardrailsInput;\n}\n","import { Field, InputType } from \"type-graphql\";\n\n@InputType()\nexport class GuardrailsRuleInput {\n @Field(() => [String], { nullable: true })\n allowList?: string[] = [];\n\n @Field(() => [String], { nullable: true })\n denyList?: string[] = [];\n}\n\n@InputType()\nexport class GuardrailsInput {\n @Field(() => GuardrailsRuleInput, { nullable: false })\n inputValidationRules: GuardrailsRuleInput;\n}\n","import { Field, InterfaceType, ObjectType } from \"type-graphql\";\nimport { MessageRole, ActionExecutionScope } from \"./enums\";\nimport { MessageStatusUnion } from \"./message-status.type\";\nimport { ResponseStatusUnion } from \"./response-status.type\";\n\n@InterfaceType({\n resolveType(value) {\n if (value.hasOwnProperty(\"content\")) {\n return TextMessageOutput;\n } else if (value.hasOwnProperty(\"name\")) {\n return ActionExecutionMessageOutput;\n } else if (value.hasOwnProperty(\"result\")) {\n return ResultMessageOutput;\n }\n return undefined;\n },\n})\nabstract class BaseMessageOutput {\n @Field(() => String)\n id: string;\n\n @Field(() => Date)\n createdAt: Date;\n\n @Field(() => MessageStatusUnion)\n status: typeof MessageStatusUnion;\n}\n\n@ObjectType({ implements: BaseMessageOutput })\nexport class TextMessageOutput {\n @Field(() => MessageRole)\n role: MessageRole;\n\n @Field(() => [String])\n content: string[];\n}\n\n@ObjectType({ implements: BaseMessageOutput })\nexport class ActionExecutionMessageOutput {\n @Field(() => String)\n name: string;\n\n @Field(() => ActionExecutionScope)\n scope: ActionExecutionScope;\n\n @Field(() => [String])\n arguments: string[];\n}\n\n@ObjectType({ implements: BaseMessageOutput })\nexport class ResultMessageOutput {\n @Field(() => String)\n actionExecutionId: string;\n\n @Field(() => String)\n actionName: string;\n\n @Field(() => String)\n result: string;\n}\n\n@ObjectType()\nexport class CopilotResponse {\n @Field(() => String)\n threadId!: string;\n\n @Field(() => ResponseStatusUnion)\n status: typeof ResponseStatusUnion;\n\n @Field({ nullable: true })\n runId?: string;\n\n @Field(() => [BaseMessageOutput])\n messages: (typeof BaseMessageOutput)[];\n}\n","import { Field, ObjectType, createUnionType, registerEnumType } from \"type-graphql\";\n\nexport enum MessageStatusCode {\n Pending = \"pending\",\n Success = \"success\",\n Failed = \"failed\",\n}\n\nregisterEnumType(MessageStatusCode, {\n name: \"MessageStatusCode\",\n});\n\n@ObjectType()\nclass BaseMessageStatus {\n @Field(() => MessageStatusCode)\n code: MessageStatusCode;\n}\n\n@ObjectType()\nexport class PendingMessageStatus extends BaseMessageStatus {\n code: MessageStatusCode = MessageStatusCode.Pending;\n}\n\n@ObjectType()\nexport class SuccessMessageStatus extends BaseMessageStatus {\n code: MessageStatusCode = MessageStatusCode.Success;\n}\n\n@ObjectType()\nexport class FailedMessageStatus extends BaseMessageStatus {\n code: MessageStatusCode = MessageStatusCode.Failed;\n\n @Field(() => String)\n reason: string;\n}\n\nexport const MessageStatusUnion = createUnionType({\n name: \"MessageStatus\",\n types: () => [PendingMessageStatus, SuccessMessageStatus, FailedMessageStatus] as const,\n});\n","import { Action } from \"@copilotkit/shared\";\nimport { of, concat, map, scan, concatMap, ReplaySubject, Subject, firstValueFrom } from \"rxjs\";\nimport { streamLangChainResponse } from \"./langchain/utils\";\nimport { GuardrailsResult } from \"../graphql/types/guardrails-result.type\";\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}\n\ntype FunctionCallScope = \"client\" | \"server\";\n\nexport type RuntimeEvent =\n | { type: RuntimeEventTypes.TextMessageStart; messageId: string }\n | {\n type: RuntimeEventTypes.TextMessageContent;\n content: string;\n }\n | { type: RuntimeEventTypes.TextMessageEnd }\n | {\n type: RuntimeEventTypes.ActionExecutionStart;\n actionExecutionId: string;\n actionName: string;\n scope?: FunctionCallScope;\n }\n | { type: RuntimeEventTypes.ActionExecutionArgs; args: string }\n | { type: RuntimeEventTypes.ActionExecutionEnd }\n | {\n type: RuntimeEventTypes.ActionExecutionResult;\n actionName: string;\n actionExecutionId: string;\n result: string;\n };\n\ninterface RuntimeEventWithState {\n event: RuntimeEvent | null;\n callActionServerSide: boolean;\n action: Action<any> | null;\n actionExecutionId: string | null;\n args: string;\n}\n\ntype EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;\n\nexport class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {\n constructor() {\n super();\n }\n\n sendTextMessageStart(messageId: string) {\n this.next({ type: RuntimeEventTypes.TextMessageStart, messageId });\n }\n\n sendTextMessageContent(content: string) {\n this.next({ type: RuntimeEventTypes.TextMessageContent, content });\n }\n\n sendTextMessageEnd() {\n this.next({ type: RuntimeEventTypes.TextMessageEnd });\n }\n\n sendTextMessage(messageId: string, content: string) {\n this.sendTextMessageStart(messageId);\n this.sendTextMessageContent(content);\n this.sendTextMessageEnd();\n }\n\n sendActionExecutionStart(actionExecutionId: string, actionName: string) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionStart,\n actionExecutionId,\n actionName,\n });\n }\n\n sendActionExecutionArgs(args: string) {\n this.next({ type: RuntimeEventTypes.ActionExecutionArgs, args });\n }\n\n sendActionExecutionEnd() {\n this.next({ type: RuntimeEventTypes.ActionExecutionEnd });\n }\n\n sendActionExecution(actionExecutionId: string, toolName: string, args: string) {\n this.sendActionExecutionStart(actionExecutionId, toolName);\n this.sendActionExecutionArgs(args);\n this.sendActionExecutionEnd();\n }\n\n sendActionExecutionResult(actionExecutionId: string, actionName: string, result: string) {\n this.next({\n type: RuntimeEventTypes.ActionExecutionResult,\n actionName,\n actionExecutionId,\n result,\n });\n }\n}\n\nexport class RuntimeEventSource {\n private eventStream$ = new RuntimeEventSubject();\n private callback!: EventSourceCallback;\n\n async stream(callback: EventSourceCallback): Promise<void> {\n this.callback = callback;\n }\n\n process({\n serversideActions,\n guardrailsResult$,\n }: {\n serversideActions: Action<any>[];\n guardrailsResult$?: Subject<GuardrailsResult>;\n }) {\n this.callback(this.eventStream$).catch((error) => {\n console.error(\"Error in event source callback\", error);\n });\n return this.eventStream$.pipe(\n // mark tools for server side execution\n map((event) => {\n if (event.type === RuntimeEventTypes.ActionExecutionStart) {\n event.scope = serversideActions.find((action) => action.name === event.actionName)\n ? \"server\"\n : \"client\";\n }\n return event;\n }),\n // track state\n scan(\n (acc, event) => {\n if (event.type === RuntimeEventTypes.ActionExecutionStart) {\n acc.callActionServerSide = event.scope === \"server\";\n acc.args = \"\";\n acc.actionExecutionId = event.actionExecutionId;\n if (acc.callActionServerSide) {\n acc.action = serversideActions.find((action) => action.name === event.actionName);\n }\n } else if (event.type === RuntimeEventTypes.ActionExecutionArgs) {\n acc.args += event.args;\n }\n\n acc.event = event;\n return acc;\n },\n {\n event: null,\n callActionServerSide: false,\n args: \"\",\n actionExecutionId: null,\n action: null,\n } as RuntimeEventWithState,\n ),\n concatMap((eventWithState) => {\n if (\n eventWithState.event!.type === RuntimeEventTypes.ActionExecutionEnd &&\n eventWithState.callActionServerSide\n ) {\n const toolCallEventStream$ = new RuntimeEventSubject();\n executeAction(\n toolCallEventStream$,\n guardrailsResult$ ? guardrailsResult$ : null,\n eventWithState.action!,\n eventWithState.args,\n eventWithState.actionExecutionId,\n ).catch((error) => {\n console.error(error);\n });\n return concat(of(eventWithState.event!), toolCallEventStream$);\n } else {\n return of(eventWithState.event!);\n }\n }),\n );\n }\n}\n\nasync function executeAction(\n eventStream$: RuntimeEventSubject,\n guardrailsResult$: Subject<GuardrailsResult> | null,\n action: Action<any>,\n actionArguments: string,\n actionExecutionId: string,\n) {\n if (guardrailsResult$) {\n const { status } = await firstValueFrom(guardrailsResult$);\n\n if (status === \"denied\") {\n eventStream$.complete();\n return;\n }\n }\n\n // Prepare arguments for function calling\n let args: Record<string, any>[] = [];\n if (actionArguments) {\n args = JSON.parse(actionArguments);\n }\n\n // call the function\n const result = await action.handler(args);\n\n await streamLangChainResponse({\n result,\n eventStream$,\n actionExecution: {\n name: action.name,\n id: actionExecutionId,\n },\n });\n}\n","import { TelemetryClient } from \"@copilotkit/shared\";\nconst packageJson = require(\"../../package.json\");\n\nconst telemetryClient = new TelemetryClient({\n packageName: packageJson.name,\n packageVersion: packageJson.version,\n});\n\nexport default telemetryClient;\n","import createPinoLogger from \"pino\";\nimport pretty from \"pino-pretty\";\n\nexport type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\nexport type CopilotRuntimeLogger = ReturnType<typeof createLogger>;\n\nexport function createLogger(options?: { level?: LogLevel; component?: string }) {\n const { level, component } = options || {};\n const stream = pretty({ colorize: true });\n\n const logger = createPinoLogger(\n {\n level: process.env.LOG_LEVEL || level || \"error\",\n redact: {\n paths: [\"pid\", \"hostname\"],\n remove: true,\n },\n },\n stream,\n );\n\n if (component) {\n return logger.child({ component });\n } else {\n return logger;\n }\n}\n"],"mappings":"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","names":["createYoga","buildSchemaSync","Arg","Ctx","Mutation","Query","Resolver","ReplaySubject","Subject","finalize","firstValueFrom","shareReplay","skipWhile","take","takeWhile","tap","Field","InputType","Field","InputType","registerEnumType","MessageRole","ActionExecutionScope","CopilotRequestType","name","description","MessageInput","BaseMessage","textMessage","actionExecutionMessage","resultMessage","Field","TextMessageInput","nullable","ActionExecutionMessageInput","ResultMessageInput","InputType","content","role","String","MessageRole","name","arguments","scope","ActionExecutionScope","actionExecutionId","actionName","result","Field","InputType","Field","InputType","ActionInput","name","description","jsonSchema","Field","String","InputType","FrontendInput","toDeprecate_fullContext","actions","Field","String","nullable","ActionInput","InputType","Field","InputType","Field","InputType","GuardrailsRuleInput","allowList","denyList","Field","String","nullable","InputType","GuardrailsInput","inputValidationRules","CloudInput","guardrails","Field","GuardrailsInput","nullable","InputType","GenerateCopilotResponseMetadataInput","requestType","Field","CopilotRequestType","nullable","InputType","GenerateCopilotResponseInput","metadata","threadId","runId","messages","frontend","cloud","String","MessageInput","FrontendInput","CloudInput","Field","InterfaceType","ObjectType","Field","ObjectType","createUnionType","registerEnumType","MessageStatusCode","registerEnumType","name","BaseMessageStatus","code","Field","ObjectType","PendingMessageStatus","SuccessMessageStatus","FailedMessageStatus","reason","String","MessageStatusUnion","createUnionType","types","BaseMessageOutput","id","createdAt","status","Field","String","Date","MessageStatusUnion","InterfaceType","resolveType","value","hasOwnProperty","TextMessageOutput","ActionExecutionMessageOutput","ResultMessageOutput","undefined","role","content","MessageRole","ObjectType","implements","name","scope","arguments","ActionExecutionScope","actionExecutionId","actionName","result","CopilotResponse","threadId","runId","messages","ResponseStatusUnion","nullable","Repeater","of","concat","map","scan","concatMap","ReplaySubject","firstValueFrom","RuntimeEventTypes","RuntimeEventSubject","ReplaySubject","constructor","sendTextMessageStart","messageId","next","type","sendTextMessageContent","content","sendTextMessageEnd","sendTextMessage","sendActionExecutionStart","actionExecutionId","actionName","sendActionExecutionArgs","args","sendActionExecutionEnd","sendActionExecution","toolName","sendActionExecutionResult","result","RuntimeEventSource","eventStream$","callback","stream","process","serversideActions","guardrailsResult$","catch","error","console","pipe","map","event","scope","find","action","name","scan","acc","callActionServerSide","concatMap","eventWithState","toolCallEventStream$","executeAction","concat","of","actionArguments","status","firstValueFrom","complete","JSON","parse","handler","streamLangChainResponse","actionExecution","id","GraphQLJSONObject","plainToInstance","GraphQLError","TelemetryClient","packageJson","require","telemetryClient","packageName","name","packageVersion","version","randomId","invokeGuardrails","baseUrl","copilotCloudPublicApiKey","data","onResult","onError","console","log","messages","length","textMessage","role","MessageRole","user","filter","m","undefined","assistant","map","content","lastMessage","restOfMessages","slice","body","input","validTopics","cloud","guardrails","inputValidationRules","allowList","invalidTopics","denyList","guardrailsResult","fetch","method","headers","JSON","stringify","ok","resultJson","json","CopilotResolver","hello","generateCopilotResponse","ctx","properties","telemetry","capture","requestType","metadata","logger","child","component","debug","copilotRuntime","_copilotkit","runtime","serviceAdapter","copilotCloudBaseUrl","key","request","get","error","GraphQLError","process","env","COPILOT_CLOUD_BASE_URL","responseStatus$","ReplaySubject","interruptStreaming$","guardrailsResult$","outputMessages","resolveOutputMessagesPromise","rejectOutputMessagesPromise","outputMessagesPromise","Promise","resolve","reject","eventSource","threadId","randomId","runId","actions","frontend","publicApiKey","response","status","firstValueFrom","Repeater","pushMessage","stopStreamingMessages","result","next","GuardrailsValidationFailureResponse","guardrailsReason","reason","plainToInstance","TextMessage","id","createdAt","Date","err","UnknownErrorResponse","description","eventStreamSubscription","eventStream","serversideActions","pipe","shareReplay","finalize","subscribe","event","type","RuntimeEventTypes","TextMessageStart","textMessageContentStream","skipWhile","e","takeWhile","TextMessageEnd","streamingTextStatus","Subject","messageId","pushTextChunk","stopStreamingText","textChunks","textSubscription","take","tap","FailedMessageStatus","MessageStreamInterruptedResponse","unsubscribe","TextMessageContent","push","complete","SuccessMessageStatus","join","ActionExecutionStart","actionExecutionArgumentStream","ActionExecutionEnd","streamingArgumentsStatus","actionExecutionId","name","actionName","scope","arguments","pushArgumentsChunk","stopStreamingArguments","argumentChunks","actionExecutionArgumentSubscription","ActionExecutionArgs","args","ActionExecutionMessage","ActionExecutionResult","ResultMessage","SuccessResponseStatus","Query","String","Mutation","CopilotResponse","Ctx","Arg","GraphQLJSONObject","nullable","Resolver","useDeferStream","createPinoLogger","pretty","createLogger","options","level","component","stream","pretty","colorize","logger","createPinoLogger","process","env","LOG_LEVEL","redact","paths","remove","child","logger","createLogger","createContext","initialContext","copilotKitContext","contextLogger","properties","debug","ctx","_copilotkit","buildSchema","options","schema","buildSchemaSync","resolvers","CopilotResolver","emitSchemaFile","getCommonConfig","logLevel","process","env","LOG_LEVEL","level","component","cloud","telemetry","setCloudConfiguration","publicApiKey","baseUrl","setGlobalProperties","runtime","serviceAdapter","constructor","name","logging","plugins","useDeferStream","context","copilotRuntimeNodeHttpEndpoint","options","commonConfig","getCommonConfig","telemetry","setGlobalProperties","runtime","framework","properties","_copilotkit","capture","logger","logging","debug","yoga","createYoga","graphqlEndpoint","endpoint"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  copilotRuntimeNodeHttpEndpoint,
3
3
  telemetry_client_default
4
- } from "./chunk-ZA7P76V6.mjs";
4
+ } from "./chunk-74N2ME6S.mjs";
5
5
  import {
6
6
  __name
7
7
  } from "./chunk-44O2JGUY.mjs";
@@ -21,4 +21,4 @@ __name(copilotRuntimeNestEndpoint, "copilotRuntimeNestEndpoint");
21
21
  export {
22
22
  copilotRuntimeNestEndpoint
23
23
  };
24
- //# sourceMappingURL=chunk-XXDXWPU2.mjs.map
24
+ //# sourceMappingURL=chunk-W7VNHFVP.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-JA2IRWRL.mjs";
4
4
  import {
5
5
  RuntimeEventSource
6
- } from "./chunk-ZA7P76V6.mjs";
6
+ } from "./chunk-74N2ME6S.mjs";
7
7
  import {
8
8
  ActionExecutionMessage,
9
9
  ResultMessage,
@@ -151,4 +151,4 @@ export {
151
151
  CopilotRuntime,
152
152
  flattenToolCallsNoDuplicates
153
153
  };
154
- //# sourceMappingURL=chunk-KZ4CQTGH.mjs.map
154
+ //# sourceMappingURL=chunk-XUJZPK4P.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getCommonConfig,
3
3
  telemetry_client_default
4
- } from "./chunk-ZA7P76V6.mjs";
4
+ } from "./chunk-74N2ME6S.mjs";
5
5
  import {
6
6
  __name
7
7
  } from "./chunk-44O2JGUY.mjs";
@@ -9,12 +9,18 @@ import {
9
9
  // src/lib/integrations/nextjs/app-router.ts
10
10
  import { createYoga } from "graphql-yoga";
11
11
  function copilotRuntimeNextJSAppRouterEndpoint(options) {
12
+ var _a;
12
13
  const commonConfig = getCommonConfig(options);
13
14
  telemetry_client_default.setGlobalProperties({
14
15
  runtime: {
15
16
  framework: "nextjs-app-router"
16
17
  }
17
18
  });
19
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
20
+ telemetry_client_default.setGlobalProperties({
21
+ _copilotkit: options.properties._copilotkit
22
+ });
23
+ }
18
24
  telemetry_client_default.capture("oss.runtime.instance_created", {});
19
25
  const logger = commonConfig.logging;
20
26
  logger.debug("Creating NextJS App Router endpoint");
@@ -42,12 +48,18 @@ var config = {
42
48
  }
43
49
  };
44
50
  function copilotRuntimeNextJSPagesRouterEndpoint(options) {
51
+ var _a;
45
52
  const commonConfig = getCommonConfig(options);
46
53
  telemetry_client_default.setGlobalProperties({
47
54
  runtime: {
48
55
  framework: "nextjs-pages-router"
49
56
  }
50
57
  });
58
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
59
+ telemetry_client_default.setGlobalProperties({
60
+ _copilotkit: options.properties._copilotkit
61
+ });
62
+ }
51
63
  telemetry_client_default.capture("oss.runtime.instance_created", {});
52
64
  const logger = commonConfig.logging;
53
65
  logger.debug("Creating NextJS Pages Router endpoint");
@@ -64,4 +76,4 @@ export {
64
76
  config,
65
77
  copilotRuntimeNextJSPagesRouterEndpoint
66
78
  };
67
- //# sourceMappingURL=chunk-A2K4XX7Q.mjs.map
79
+ //# sourceMappingURL=chunk-YNH6B4QZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/integrations/nextjs/app-router.ts","../src/lib/integrations/nextjs/pages-router.ts"],"sourcesContent":["import { createYoga } from \"graphql-yoga\";\nimport { CreateCopilotRuntimeServerOptions, getCommonConfig } from \"../shared\";\nimport telemetry from \"../../telemetry-client\";\n\nexport function copilotRuntimeNextJSAppRouterEndpoint(options: CreateCopilotRuntimeServerOptions) {\n const commonConfig = getCommonConfig(options);\n\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"nextjs-app-router\",\n },\n });\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: options.properties._copilotkit,\n });\n }\n\n telemetry.capture(\"oss.runtime.instance_created\", {});\n\n const logger = commonConfig.logging;\n logger.debug(\"Creating NextJS App Router endpoint\");\n\n const yoga = createYoga({\n ...commonConfig,\n graphqlEndpoint: options.endpoint,\n fetchAPI: { Response: globalThis.Response },\n });\n\n return {\n handleRequest: yoga,\n GET: yoga as any,\n POST: yoga as any,\n OPTIONS: yoga as any,\n };\n}\n","import { YogaServerInstance, createYoga } from \"graphql-yoga\";\nimport { CreateCopilotRuntimeServerOptions, GraphQLContext, getCommonConfig } from \"../shared\";\nimport telemetry from \"../../telemetry-client\";\n\nexport const config = {\n api: {\n bodyParser: false,\n },\n};\n\nexport type CopilotRuntimeServerInstance<T> = YogaServerInstance<T, Partial<GraphQLContext>>;\n\n// This import is needed to fix the type error\n// Fix is currently in TypeScript 5.5 beta, waiting for stable version\n// https://github.com/microsoft/TypeScript/issues/42873#issuecomment-2066874644\nexport type {} from \"@whatwg-node/server\";\n\nexport function copilotRuntimeNextJSPagesRouterEndpoint(\n options: CreateCopilotRuntimeServerOptions,\n): CopilotRuntimeServerInstance<GraphQLContext> {\n const commonConfig = getCommonConfig(options);\n\n telemetry.setGlobalProperties({\n runtime: {\n framework: \"nextjs-pages-router\",\n },\n });\n\n if (options.properties?._copilotkit) {\n telemetry.setGlobalProperties({\n _copilotkit: options.properties._copilotkit,\n });\n }\n\n telemetry.capture(\"oss.runtime.instance_created\", {});\n\n const logger = commonConfig.logging;\n logger.debug(\"Creating NextJS Pages Router endpoint\");\n\n const yoga = createYoga({\n ...commonConfig,\n graphqlEndpoint: options.endpoint,\n });\n\n return yoga;\n}\n"],"mappings":";;;;;;;;;AAAA,SAASA,kBAAkB;AAIpB,SAASC,sCAAsCC,SAA0C;AAJhG;AAKE,QAAMC,eAAeC,gBAAgBF,OAAAA;AAErCG,2BAAUC,oBAAoB;IAC5BC,SAAS;MACPC,WAAW;IACb;EACF,CAAA;AAEA,OAAIN,aAAQO,eAARP,mBAAoBQ,aAAa;AACnCL,6BAAUC,oBAAoB;MAC5BI,aAAaR,QAAQO,WAAWC;IAClC,CAAA;EACF;AAEAL,2BAAUM,QAAQ,gCAAgC,CAAC,CAAA;AAEnD,QAAMC,SAAST,aAAaU;AAC5BD,SAAOE,MAAM,qCAAA;AAEb,QAAMC,OAAOC,WAAW;IACtB,GAAGb;IACHc,iBAAiBf,QAAQgB;IACzBC,UAAU;MAAEC,UAAUC,WAAWD;IAAS;EAC5C,CAAA;AAEA,SAAO;IACLE,eAAeP;IACfQ,KAAKR;IACLS,MAAMT;IACNU,SAASV;EACX;AACF;AAhCgBd;;;ACJhB,SAA6ByB,cAAAA,mBAAkB;AAIxC,IAAMC,SAAS;EACpBC,KAAK;IACHC,YAAY;EACd;AACF;AASO,SAASC,wCACdC,SAA0C;AAlB5C;AAoBE,QAAMC,eAAeC,gBAAgBF,OAAAA;AAErCG,2BAAUC,oBAAoB;IAC5BC,SAAS;MACPC,WAAW;IACb;EACF,CAAA;AAEA,OAAIN,aAAQO,eAARP,mBAAoBQ,aAAa;AACnCL,6BAAUC,oBAAoB;MAC5BI,aAAaR,QAAQO,WAAWC;IAClC,CAAA;EACF;AAEAL,2BAAUM,QAAQ,gCAAgC,CAAC,CAAA;AAEnD,QAAMC,SAAST,aAAaU;AAC5BD,SAAOE,MAAM,uCAAA;AAEb,QAAMC,OAAOC,YAAW;IACtB,GAAGb;IACHc,iBAAiBf,QAAQgB;EAC3B,CAAA;AAEA,SAAOH;AACT;AA5BgBd;","names":["createYoga","copilotRuntimeNextJSAppRouterEndpoint","options","commonConfig","getCommonConfig","telemetry","setGlobalProperties","runtime","framework","properties","_copilotkit","capture","logger","logging","debug","yoga","createYoga","graphqlEndpoint","endpoint","fetchAPI","Response","globalThis","handleRequest","GET","POST","OPTIONS","createYoga","config","api","bodyParser","copilotRuntimeNextJSPagesRouterEndpoint","options","commonConfig","getCommonConfig","telemetry","setGlobalProperties","runtime","framework","properties","_copilotkit","capture","logger","logging","debug","yoga","createYoga","graphqlEndpoint","endpoint"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  copilotRuntimeNodeHttpEndpoint,
3
3
  telemetry_client_default
4
- } from "./chunk-ZA7P76V6.mjs";
4
+ } from "./chunk-74N2ME6S.mjs";
5
5
  import {
6
6
  __name
7
7
  } from "./chunk-44O2JGUY.mjs";
@@ -21,4 +21,4 @@ __name(copilotRuntimeNodeExpressEndpoint, "copilotRuntimeNodeExpressEndpoint");
21
21
  export {
22
22
  copilotRuntimeNodeExpressEndpoint
23
23
  };
24
- //# sourceMappingURL=chunk-FI5ULODX.mjs.map
24
+ //# sourceMappingURL=chunk-Z2G5OVBH.mjs.map
package/dist/index.js CHANGED
@@ -44,7 +44,7 @@ var require_package = __commonJS({
44
44
  publishConfig: {
45
45
  access: "public"
46
46
  },
47
- version: "1.0.6",
47
+ version: "1.0.7",
48
48
  sideEffects: false,
49
49
  main: "./dist/index.js",
50
50
  module: "./dist/index.mjs",
@@ -2566,6 +2566,7 @@ function buildSchema(options = {}) {
2566
2566
  }
2567
2567
  __name(buildSchema, "buildSchema");
2568
2568
  function getCommonConfig(options) {
2569
+ var _a;
2569
2570
  const logLevel = process.env.LOG_LEVEL || options.logLevel || "error";
2570
2571
  const logger2 = createLogger({
2571
2572
  level: logLevel,
@@ -2580,6 +2581,13 @@ function getCommonConfig(options) {
2580
2581
  baseUrl: options.cloud.baseUrl
2581
2582
  });
2582
2583
  }
2584
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
2585
+ telemetry_client_default.setGlobalProperties({
2586
+ _copilotkit: {
2587
+ ...options.properties._copilotkit
2588
+ }
2589
+ });
2590
+ }
2583
2591
  telemetry_client_default.setGlobalProperties({
2584
2592
  runtime: {
2585
2593
  serviceAdapter: options.serviceAdapter.constructor.name
@@ -2602,12 +2610,18 @@ __name(getCommonConfig, "getCommonConfig");
2602
2610
  // src/lib/integrations/nextjs/app-router.ts
2603
2611
  var import_graphql_yoga2 = require("graphql-yoga");
2604
2612
  function copilotRuntimeNextJSAppRouterEndpoint(options) {
2613
+ var _a;
2605
2614
  const commonConfig = getCommonConfig(options);
2606
2615
  telemetry_client_default.setGlobalProperties({
2607
2616
  runtime: {
2608
2617
  framework: "nextjs-app-router"
2609
2618
  }
2610
2619
  });
2620
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
2621
+ telemetry_client_default.setGlobalProperties({
2622
+ _copilotkit: options.properties._copilotkit
2623
+ });
2624
+ }
2611
2625
  telemetry_client_default.capture("oss.runtime.instance_created", {});
2612
2626
  const logger2 = commonConfig.logging;
2613
2627
  logger2.debug("Creating NextJS App Router endpoint");
@@ -2635,12 +2649,18 @@ var config = {
2635
2649
  }
2636
2650
  };
2637
2651
  function copilotRuntimeNextJSPagesRouterEndpoint(options) {
2652
+ var _a;
2638
2653
  const commonConfig = getCommonConfig(options);
2639
2654
  telemetry_client_default.setGlobalProperties({
2640
2655
  runtime: {
2641
2656
  framework: "nextjs-pages-router"
2642
2657
  }
2643
2658
  });
2659
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
2660
+ telemetry_client_default.setGlobalProperties({
2661
+ _copilotkit: options.properties._copilotkit
2662
+ });
2663
+ }
2644
2664
  telemetry_client_default.capture("oss.runtime.instance_created", {});
2645
2665
  const logger2 = commonConfig.logging;
2646
2666
  logger2.debug("Creating NextJS Pages Router endpoint");
@@ -2655,12 +2675,18 @@ __name(copilotRuntimeNextJSPagesRouterEndpoint, "copilotRuntimeNextJSPagesRouter
2655
2675
  // src/lib/integrations/node-http/index.ts
2656
2676
  var import_graphql_yoga4 = require("graphql-yoga");
2657
2677
  function copilotRuntimeNodeHttpEndpoint(options) {
2678
+ var _a;
2658
2679
  const commonConfig = getCommonConfig(options);
2659
2680
  telemetry_client_default.setGlobalProperties({
2660
2681
  runtime: {
2661
2682
  framework: "node-http"
2662
2683
  }
2663
2684
  });
2685
+ if ((_a = options.properties) == null ? void 0 : _a._copilotkit) {
2686
+ telemetry_client_default.setGlobalProperties({
2687
+ _copilotkit: options.properties._copilotkit
2688
+ });
2689
+ }
2664
2690
  telemetry_client_default.capture("oss.runtime.instance_created", {});
2665
2691
  const logger2 = commonConfig.logging;
2666
2692
  logger2.debug("Creating Node HTTP endpoint");