@copilotkit/runtime 1.1.1-feat-runtime-remote-actions.0 → 1.1.2
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/CHANGELOG.md +14 -3
- package/__snapshots__/schema/schema.graphql +0 -22
- package/dist/{chunk-4AJIFDOJ.mjs → chunk-6PAC74F2.mjs} +2 -2
- package/dist/{chunk-JMW74TAS.mjs → chunk-74B76SMO.mjs} +2 -2
- package/dist/{chunk-4MRXXS22.mjs → chunk-CUVWSISN.mjs} +3 -3
- package/dist/{chunk-KOC3ZRO4.mjs → chunk-GEIBJJQ4.mjs} +2 -12
- package/dist/chunk-GEIBJJQ4.mjs.map +1 -0
- package/dist/{chunk-MISUYYBG.mjs → chunk-MKV3LEJ6.mjs} +28 -356
- package/dist/chunk-MKV3LEJ6.mjs.map +1 -0
- package/dist/{chunk-CC3J37S6.mjs → chunk-NPCP4YZB.mjs} +2 -2
- package/dist/{chunk-CSIQEWDR.mjs → chunk-RDEOIOQR.mjs} +12 -101
- package/dist/chunk-RDEOIOQR.mjs.map +1 -0
- package/dist/{chunk-UTUNGR2L.mjs → chunk-URMISMK2.mjs} +2 -2
- package/dist/graphql/types/converted/index.d.ts +1 -1
- package/dist/graphql/types/converted/index.js +0 -11
- package/dist/graphql/types/converted/index.js.map +1 -1
- package/dist/graphql/types/converted/index.mjs +1 -3
- package/dist/{groq-adapter-35a54596.d.ts → groq-adapter-675b30c6.d.ts} +1 -1
- package/dist/{index-9cfb4d1f.d.ts → index-aa091e3c.d.ts} +1 -18
- package/dist/index.d.ts +8 -8
- package/dist/index.js +31 -451
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -8
- package/dist/{langserve-b97a6817.d.ts → langserve-a54438c6.d.ts} +2 -11
- package/dist/lib/index.d.ts +8 -8
- package/dist/lib/index.js +31 -451
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +8 -8
- package/dist/lib/integrations/index.d.ts +7 -7
- package/dist/lib/integrations/index.js +14 -132
- package/dist/lib/integrations/index.js.map +1 -1
- package/dist/lib/integrations/index.mjs +6 -6
- package/dist/lib/integrations/nest/index.d.ts +5 -5
- package/dist/lib/integrations/nest/index.js +14 -132
- package/dist/lib/integrations/nest/index.js.map +1 -1
- package/dist/lib/integrations/nest/index.mjs +4 -4
- package/dist/lib/integrations/node-express/index.d.ts +5 -5
- package/dist/lib/integrations/node-express/index.js +14 -132
- package/dist/lib/integrations/node-express/index.js.map +1 -1
- package/dist/lib/integrations/node-express/index.mjs +4 -4
- package/dist/lib/integrations/node-http/index.d.ts +5 -5
- package/dist/lib/integrations/node-http/index.js +14 -132
- package/dist/lib/integrations/node-http/index.js.map +1 -1
- package/dist/lib/integrations/node-http/index.mjs +3 -3
- package/dist/{pages-router-df63122a.d.ts → pages-router-df82c666.d.ts} +1 -1
- package/dist/service-adapters/index.d.ts +3 -3
- package/dist/service-adapters/index.js.map +1 -1
- package/dist/service-adapters/index.mjs +3 -3
- package/dist/{copilot-runtime-40b55575.d.ts → shared-ec6c7db5.d.ts} +35 -47
- package/package.json +4 -4
- package/src/graphql/inputs/message.input.ts +0 -24
- package/src/graphql/resolvers/copilot.resolver.ts +7 -40
- package/src/graphql/types/converted/index.ts +0 -10
- package/src/graphql/types/copilot-response.type.ts +0 -23
- package/src/lib/{runtime/copilot-runtime.ts → copilot-runtime.ts} +14 -123
- package/src/lib/index.ts +1 -1
- package/src/lib/integrations/shared.ts +1 -1
- package/src/service-adapters/conversion.ts +0 -14
- package/src/service-adapters/events.ts +8 -49
- package/dist/chunk-CSIQEWDR.mjs.map +0 -1
- package/dist/chunk-KOC3ZRO4.mjs.map +0 -1
- package/dist/chunk-MISUYYBG.mjs.map +0 -1
- package/src/agents/langgraph/event-source.ts +0 -29
- package/src/agents/langgraph/events.ts +0 -295
- package/src/lib/runtime/remote-actions.ts +0 -271
- /package/dist/{chunk-4AJIFDOJ.mjs.map → chunk-6PAC74F2.mjs.map} +0 -0
- /package/dist/{chunk-JMW74TAS.mjs.map → chunk-74B76SMO.mjs.map} +0 -0
- /package/dist/{chunk-4MRXXS22.mjs.map → chunk-CUVWSISN.mjs.map} +0 -0
- /package/dist/{chunk-CC3J37S6.mjs.map → chunk-NPCP4YZB.mjs.map} +0 -0
- /package/dist/{chunk-UTUNGR2L.mjs.map → chunk-URMISMK2.mjs.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
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/inputs/forwarded-parameters.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/runtime/remote-actions.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.1.1-feat-runtime-remote-actions.0\",\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 --onSuccess \\\"pnpm run generate-graphql-schema\\\"\",\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 && rm -rf __snapshots__\",\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 \"../runtime/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 {\n ActionExecutionMessage,\n AgentMessage,\n Message,\n ResultMessage,\n TextMessage,\n} 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 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 if (properties) {\n logger.debug(\"Properties provided, merging with context properties\");\n ctx.properties = { ...ctx.properties, ...properties };\n }\n\n const copilotRuntime = ctx._copilotkit.runtime;\n const serviceAdapter = ctx._copilotkit.serviceAdapter;\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 outputMessagesPromise,\n graphqlContext: ctx,\n forwardedParameters: data.forwardedParameters,\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 // AgentMessage\n ////////////////////////////////\n case RuntimeEventTypes.AgentMessage:\n logger.debug({ event }, \"Agent message event received\");\n pushMessage({\n id: randomId(),\n status: new SuccessMessageStatus(),\n threadId: event.threadId,\n agentName: event.agentName,\n nodeName: event.nodeName,\n state: JSON.stringify(event.state),\n running: event.running,\n role: MessageRole.assistant,\n createdAt: new Date(),\n });\n outputMessages.push(\n plainToInstance(AgentMessage, {\n id: randomId(),\n threadId: event.threadId,\n agentName: event.agentName,\n nodeName: event.nodeName,\n state: JSON.stringify(event.state),\n running: event.running,\n role: MessageRole.assistant,\n createdAt: new Date(),\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\";\nimport { ForwardedParametersInput } from \"./forwarded-parameters.input\";\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 @Field(() => ForwardedParametersInput, { nullable: true })\n forwardedParameters?: ForwardedParametersInput;\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 @Field(() => AgentMessageInput, { nullable: true })\n agentMessage?: AgentMessageInput;\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\n@InputType()\nexport class AgentMessageInput {\n @Field(() => String)\n threadId: string;\n\n @Field(() => String)\n agentName: string;\n\n @Field(() => MessageRole)\n role: MessageRole;\n\n @Field(() => String)\n state: string;\n\n @Field(() => Boolean)\n running: boolean;\n\n @Field(() => String)\n nodeName: 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, InputType } from \"type-graphql\";\n\n@InputType()\nexport class ForwardedParametersInput {\n @Field(() => String, { nullable: true })\n model?: string;\n\n @Field(() => Number, { nullable: true })\n maxTokens?: number;\n\n @Field(() => [String], { nullable: true })\n stop?: string[];\n\n @Field(() => String, { nullable: true })\n toolChoice?: String;\n\n @Field(() => String, { nullable: true })\n toolChoiceFunctionName?: string;\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 } else if (value.hasOwnProperty(\"agentName\")) {\n return AgentMessageOutput;\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({ implements: BaseMessageOutput })\nexport class AgentMessageOutput {\n @Field(() => String)\n threadId: string;\n\n @Field(() => String)\n agentName: string;\n\n @Field(() => String)\n nodeName: string;\n\n @Field(() => MessageRole)\n role: MessageRole;\n\n @Field(() => String)\n state: string;\n\n @Field(() => Boolean)\n running: boolean;\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\";\nimport telemetry from \"../lib/telemetry-client\";\nimport { isAgentResult } from \"../lib/runtime/remote-actions\";\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 AgentMessage = \"AgentMessage\",\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 | {\n type: RuntimeEventTypes.AgentMessage;\n threadId: string;\n agentName: string;\n nodeName: string;\n state: string;\n running: boolean;\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 sendAgentMessage(\n threadId: string,\n agentName: string,\n nodeName: string,\n state: string,\n running: boolean,\n ) {\n this.next({\n type: RuntimeEventTypes.AgentMessage,\n threadId,\n agentName,\n nodeName,\n state,\n running,\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\n telemetry.capture(\"oss.runtime.server_action_executed\", {});\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 if (isAgentResult(result, true)) {\n eventStream$.sendAgentMessage(\n result.threadId,\n result.name,\n result.nodeName,\n result.state,\n result.running,\n );\n eventStream$.complete();\n } else {\n await streamLangChainResponse({\n result,\n eventStream$,\n actionExecution: {\n name: action.name,\n id: actionExecutionId,\n },\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 { Action } from \"@copilotkit/shared\";\nimport { GraphQLContext } from \"../integrations/shared\";\nimport { Logger } from \"pino\";\nimport telemetry from \"../../lib/telemetry-client\";\n\nexport type AgentResult = {\n threadId: string;\n state: string;\n name: string;\n nodeName: string;\n running: boolean;\n __agentMessage: true;\n};\n\nexport function isAgentResult(\n obj: any,\n checkAgentMessageFlag: boolean = false,\n): obj is AgentResult {\n if (checkAgentMessageFlag) {\n return (\n typeof obj === \"object\" &&\n obj !== null &&\n \"__agentMessage\" in obj &&\n obj.__agentMessage === true\n );\n } else {\n return (\n typeof obj === \"object\" &&\n obj !== null &&\n \"threadId\" in obj &&\n \"state\" in obj &&\n \"running\" in obj &&\n \"name\" in obj\n );\n }\n}\n\nexport type RemoteActionDefinition = {\n url: string;\n onBeforeRequest?: ({ ctx }: { ctx: GraphQLContext }) => {\n headers?: Record<string, string> | undefined;\n };\n};\n\nfunction createHeaders(\n onBeforeRequest: RemoteActionDefinition[\"onBeforeRequest\"],\n graphqlContext: GraphQLContext,\n) {\n const headers = {\n \"Content-Type\": \"application/json\",\n };\n\n if (onBeforeRequest) {\n const { headers: additionalHeaders } = onBeforeRequest({ ctx: graphqlContext });\n if (additionalHeaders) {\n Object.assign(headers, additionalHeaders);\n }\n }\n\n return headers;\n}\n\nasync function fetchRemoteInfo({\n url,\n onBeforeRequest,\n graphqlContext,\n logger,\n}: {\n url: string;\n onBeforeRequest?: RemoteActionDefinition[\"onBeforeRequest\"];\n graphqlContext: GraphQLContext;\n logger: Logger;\n}): Promise<any[]> {\n logger.debug({ url }, \"Fetching actions from url\");\n const headers = createHeaders(onBeforeRequest, graphqlContext);\n\n const response = await fetch(`${url}/info`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ properties: graphqlContext.properties }),\n });\n\n if (!response.ok) {\n logger.error(\n { url, status: response.status, body: await response.text() },\n \"Failed to fetch actions from url\",\n );\n return [];\n }\n\n const json = await response.json();\n logger.debug({ json }, \"Fetched actions from url\");\n return json;\n}\n\nfunction constructActions({\n json,\n url,\n onBeforeRequest,\n graphqlContext,\n logger,\n}: {\n json: any[];\n url: string;\n onBeforeRequest?: RemoteActionDefinition[\"onBeforeRequest\"];\n graphqlContext: GraphQLContext;\n logger: Logger;\n}): Action<any>[] {\n return json[\"actions\"].map((action) => ({\n name: action.name,\n description: action.description,\n parameters: action.parameters,\n handler: async (args: any) => {\n logger.debug({ actionName: action.name, args }, \"Executing remote action\");\n\n const headers = createHeaders(onBeforeRequest, graphqlContext);\n telemetry.capture(\"oss.runtime.remote_action_executed\", {});\n\n const response = await fetch(`${url}/actions/execute`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n name: action.name,\n parameters: args,\n properties: graphqlContext.properties,\n }),\n });\n\n if (!response.ok) {\n logger.error(\n { url, status: response.status, body: await response.text() },\n \"Failed to execute remote action\",\n );\n return \"Failed to execute remote action\";\n }\n\n const requestResult = await response.json();\n\n if (isAgentResult(requestResult)) {\n logger.debug({ actionName: action.name, result: requestResult }, \"Started agent session\");\n // TODO: instead of __agentMessage, we should use __copilotKit: {type: \"agentMessage\"}\n return { ...requestResult, __agentMessage: true };\n } else {\n const result = requestResult[\"result\"];\n logger.debug({ actionName: action.name, result }, \"Executed remote action\");\n return result;\n }\n },\n }));\n}\n\nexport async function executeAgent({\n agentName,\n nodeName,\n threadId,\n state,\n url,\n onBeforeRequest,\n graphqlContext,\n logger,\n}: {\n agentName: string;\n nodeName: string;\n threadId: string;\n state: string;\n url: string;\n onBeforeRequest?: RemoteActionDefinition[\"onBeforeRequest\"];\n graphqlContext: GraphQLContext;\n logger: Logger;\n}): Promise<AgentResult> {\n logger.debug({ agentName, threadId, state }, \"Executing remote action\");\n\n const headers = createHeaders(onBeforeRequest, graphqlContext);\n telemetry.capture(\"oss.runtime.remote_action_executed\", {});\n\n const response = await fetch(`${url}/actions/execute`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n threadId,\n state,\n name: agentName,\n nodeName,\n }),\n });\n\n if (!response.ok) {\n logger.error(\n { url, status: response.status, body: await response.text() },\n \"Failed to execute remote agent\",\n );\n throw new Error(\"Failed to execute remote agent\");\n }\n\n const requestResult = await response.json();\n logger.debug({ agentName, threadId, state }, \"Executed remote agent\");\n return { ...requestResult, __agentMessage: true };\n}\n\nexport async function setupRemoteActions({\n remoteActionDefinitions,\n graphqlContext,\n}: {\n remoteActionDefinitions: RemoteActionDefinition[];\n graphqlContext: GraphQLContext;\n}): Promise<Action[]> {\n const logger = graphqlContext.logger.child({ component: \"remote-actions.fetchRemoteActions\" });\n logger.debug({ remoteActionDefinitions }, \"Fetching remote actions\");\n\n // Remove duplicates of remoteActionDefinitions.url\n const filtered = remoteActionDefinitions.filter(\n (value, index, self) => index === self.findIndex((t) => t.url === value.url),\n );\n\n const result = await Promise.all(\n filtered.map(async (actionDefinition) => {\n const json = await fetchRemoteInfo({\n url: actionDefinition.url,\n onBeforeRequest: actionDefinition.onBeforeRequest,\n graphqlContext,\n logger: logger.child({ component: \"remote-actions.fetchActionsFromUrl\", actionDefinition }),\n });\n return constructActions({\n json,\n url: actionDefinition.url,\n onBeforeRequest: actionDefinition.onBeforeRequest,\n graphqlContext,\n logger: logger.child({ component: \"remote-actions.constructActions\", actionDefinition }),\n });\n }),\n );\n\n return result.flat();\n}\n\nexport async function fetchRemoteActionLocations({\n remoteActionDefinitions,\n graphqlContext,\n}: {\n remoteActionDefinitions: RemoteActionDefinition[];\n graphqlContext: GraphQLContext;\n}): Promise<Map<string, string>> {\n const logger = graphqlContext.logger.child({\n component: \"remote-actions.fetchRemoteActionLocations\",\n });\n logger.debug({ remoteActionDefinitions }, \"Fetching remote action locations\");\n\n // Remove duplicates of remoteActionDefinitions.url\n const filtered = remoteActionDefinitions.filter(\n (value, index, self) => index === self.findIndex((t) => t.url === value.url),\n );\n\n const result = new Map<string, string>();\n\n await Promise.all(\n filtered.map(async (actionDefinition) => {\n const json = await fetchRemoteInfo({\n url: actionDefinition.url,\n onBeforeRequest: actionDefinition.onBeforeRequest,\n graphqlContext,\n logger: logger.child({ component: \"remote-actions.fetchActionsFromUrl\", actionDefinition }),\n });\n\n json[\"actions\"].forEach((action) => {\n result.set(action.name, actionDefinition.url);\n });\n }),\n );\n\n return result;\n}\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","agentMessage","Field","TextMessageInput","nullable","ActionExecutionMessageInput","ResultMessageInput","AgentMessageInput","InputType","content","role","String","MessageRole","name","arguments","scope","ActionExecutionScope","actionExecutionId","actionName","result","threadId","agentName","state","running","nodeName","Boolean","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","Field","InputType","ForwardedParametersInput","model","maxTokens","stop","toolChoice","toolChoiceFunctionName","Field","String","nullable","Number","InputType","GenerateCopilotResponseMetadataInput","requestType","Field","CopilotRequestType","nullable","InputType","GenerateCopilotResponseInput","metadata","threadId","runId","messages","frontend","cloud","forwardedParameters","String","MessageInput","FrontendInput","CloudInput","ForwardedParametersInput","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","AgentMessageOutput","undefined","role","content","MessageRole","ObjectType","implements","name","scope","arguments","ActionExecutionScope","actionExecutionId","actionName","result","threadId","agentName","nodeName","state","running","Boolean","CopilotResponse","runId","messages","ResponseStatusUnion","nullable","Repeater","of","concat","map","scan","concatMap","ReplaySubject","firstValueFrom","TelemetryClient","packageJson","require","telemetryClient","packageName","name","packageVersion","version","isAgentResult","obj","checkAgentMessageFlag","__agentMessage","createHeaders","onBeforeRequest","graphqlContext","headers","additionalHeaders","ctx","Object","assign","fetchRemoteInfo","url","logger","debug","response","fetch","method","body","JSON","stringify","properties","ok","error","status","text","json","constructActions","map","action","name","description","parameters","handler","args","actionName","telemetry","capture","requestResult","result","executeAgent","agentName","nodeName","threadId","state","Error","setupRemoteActions","remoteActionDefinitions","child","component","filtered","filter","value","index","self","findIndex","t","Promise","all","actionDefinition","flat","fetchRemoteActionLocations","Map","forEach","set","RuntimeEventTypes","RuntimeEventSubject","ReplaySubject","constructor","sendTextMessageStart","messageId","next","type","sendTextMessageContent","content","sendTextMessageEnd","sendTextMessage","sendActionExecutionStart","actionExecutionId","actionName","sendActionExecutionArgs","args","sendActionExecutionEnd","sendActionExecution","toolName","sendActionExecutionResult","result","sendAgentMessage","threadId","agentName","nodeName","state","running","RuntimeEventSource","eventStream$","callback","stream","process","serversideActions","guardrailsResult$","catch","error","console","pipe","map","event","scope","find","action","name","scan","acc","callActionServerSide","concatMap","eventWithState","toolCallEventStream$","executeAction","telemetry","capture","concat","of","actionArguments","status","firstValueFrom","complete","JSON","parse","handler","isAgentResult","streamLangChainResponse","actionExecution","id","GraphQLJSONObject","plainToInstance","GraphQLError","randomId","invokeGuardrails","baseUrl","copilotCloudPublicApiKey","data","onResult","onError","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","graphqlContext","forwardedParameters","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","AgentMessage","agentName","nodeName","state","running","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,29 +0,0 @@
|
|
|
1
|
-
import { map, filter, ReplaySubject } from "rxjs";
|
|
2
|
-
import { LangGraphEvent, LangGraphEventTypes } from "./events";
|
|
3
|
-
import { RuntimeEvent, RuntimeEventTypes } from "../../service-adapters/events";
|
|
4
|
-
|
|
5
|
-
export class LangGraphEventSource {
|
|
6
|
-
private eventStream$ = new ReplaySubject<LangGraphEvent>();
|
|
7
|
-
|
|
8
|
-
processLangGraphEvents() {
|
|
9
|
-
return this.eventStream$.pipe(
|
|
10
|
-
map((event): RuntimeEvent | null => {
|
|
11
|
-
switch (event.event) {
|
|
12
|
-
case LangGraphEventTypes.OnChainStart:
|
|
13
|
-
case LangGraphEventTypes.OnChainEnd:
|
|
14
|
-
return {
|
|
15
|
-
type: RuntimeEventTypes.AgentMessage,
|
|
16
|
-
threadId: "TODO: WHERE TO PUT THIS",
|
|
17
|
-
agentName: "TODO: WHERE TO PUT THIS",
|
|
18
|
-
nodeName: "TODO: WHERE TO PUT THIS",
|
|
19
|
-
state: event.data.input,
|
|
20
|
-
running: true,
|
|
21
|
-
};
|
|
22
|
-
default:
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
}),
|
|
26
|
-
filter((event): event is RuntimeEvent => event !== null),
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
export enum LangGraphEventTypes {
|
|
2
|
-
OnChainStart = "on_chain_start",
|
|
3
|
-
OnChainStream = "on_chain_stream",
|
|
4
|
-
OnChainEnd = "on_chain_end",
|
|
5
|
-
OnChatModelStart = "on_chat_model_start",
|
|
6
|
-
OnChatModelStream = "on_chat_model_stream",
|
|
7
|
-
OnChatModelEnd = "on_chat_model_end",
|
|
8
|
-
OnToolStart = "on_tool_start",
|
|
9
|
-
OnToolEnd = "on_tool_end",
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
type LangGraphOnChainStartEvent = {
|
|
13
|
-
event: LangGraphEventTypes.OnChainStart;
|
|
14
|
-
run_id: string;
|
|
15
|
-
name: string;
|
|
16
|
-
tags: string[];
|
|
17
|
-
metadata: { thread_id: string };
|
|
18
|
-
data: {
|
|
19
|
-
input: any;
|
|
20
|
-
};
|
|
21
|
-
parent_ids: string[];
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
type LangGraphOnChainEndEvent = {
|
|
25
|
-
event: LangGraphEventTypes.OnChainEnd;
|
|
26
|
-
name: string;
|
|
27
|
-
run_id: string;
|
|
28
|
-
tags: string[];
|
|
29
|
-
metadata: {
|
|
30
|
-
thread_id: string;
|
|
31
|
-
langgraph_step: number;
|
|
32
|
-
langgraph_node: string;
|
|
33
|
-
langgraph_triggers: string[];
|
|
34
|
-
langgraph_task_idx: number;
|
|
35
|
-
thread_ts: string;
|
|
36
|
-
};
|
|
37
|
-
data: {
|
|
38
|
-
input: any;
|
|
39
|
-
output: any;
|
|
40
|
-
};
|
|
41
|
-
parent_ids: string[];
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
type LangGraphOnChatModelStartEvent = {
|
|
45
|
-
event: LangGraphEventTypes.OnChatModelStart;
|
|
46
|
-
name: string;
|
|
47
|
-
run_id: string;
|
|
48
|
-
tags: string[];
|
|
49
|
-
metadata: {
|
|
50
|
-
thread_id: string;
|
|
51
|
-
langgraph_step: number;
|
|
52
|
-
langgraph_node: string;
|
|
53
|
-
langgraph_triggers: string[];
|
|
54
|
-
langgraph_task_idx: number;
|
|
55
|
-
thread_ts: string;
|
|
56
|
-
ls_provider: string;
|
|
57
|
-
ls_model_name: string;
|
|
58
|
-
ls_model_type: string;
|
|
59
|
-
ls_temperature: number;
|
|
60
|
-
};
|
|
61
|
-
data: {
|
|
62
|
-
input: {
|
|
63
|
-
messages: {
|
|
64
|
-
lc: number;
|
|
65
|
-
type: string;
|
|
66
|
-
id: string[];
|
|
67
|
-
kwargs: {
|
|
68
|
-
content: string;
|
|
69
|
-
type: string;
|
|
70
|
-
id: string;
|
|
71
|
-
};
|
|
72
|
-
}[][];
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
parent_ids: string[];
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
type LangGraphOnChatModelStreamEvent = {
|
|
79
|
-
event: LangGraphEventTypes.OnChatModelStream;
|
|
80
|
-
name: string;
|
|
81
|
-
run_id: string;
|
|
82
|
-
tags: string[];
|
|
83
|
-
metadata: {
|
|
84
|
-
thread_id: string;
|
|
85
|
-
langgraph_step: number;
|
|
86
|
-
langgraph_node: string;
|
|
87
|
-
langgraph_triggers: string[];
|
|
88
|
-
langgraph_task_idx: number;
|
|
89
|
-
thread_ts: string;
|
|
90
|
-
ls_provider: string;
|
|
91
|
-
ls_model_name: string;
|
|
92
|
-
ls_model_type: string;
|
|
93
|
-
ls_temperature: number;
|
|
94
|
-
};
|
|
95
|
-
data: {
|
|
96
|
-
chunk: {
|
|
97
|
-
lc: number;
|
|
98
|
-
type: string;
|
|
99
|
-
id: string[];
|
|
100
|
-
kwargs: {
|
|
101
|
-
content: string;
|
|
102
|
-
additional_kwargs: {
|
|
103
|
-
tool_calls: {
|
|
104
|
-
index: number;
|
|
105
|
-
id: string;
|
|
106
|
-
function: { arguments: string; name: string };
|
|
107
|
-
type: string;
|
|
108
|
-
}[];
|
|
109
|
-
};
|
|
110
|
-
type: string;
|
|
111
|
-
id: string;
|
|
112
|
-
tool_calls: { name: string; args: {}; id: string; type: string }[];
|
|
113
|
-
tool_call_chunks: {
|
|
114
|
-
name: string;
|
|
115
|
-
args: string;
|
|
116
|
-
id: string;
|
|
117
|
-
index: number;
|
|
118
|
-
type: string;
|
|
119
|
-
}[];
|
|
120
|
-
invalid_tool_calls: any[];
|
|
121
|
-
};
|
|
122
|
-
};
|
|
123
|
-
};
|
|
124
|
-
parent_ids: string[];
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
type LangGraphOnChatModelEndEvent = {
|
|
128
|
-
event: LangGraphEventTypes.OnChatModelEnd;
|
|
129
|
-
name: string;
|
|
130
|
-
run_id: string;
|
|
131
|
-
tags: string[];
|
|
132
|
-
metadata: {
|
|
133
|
-
thread_id: string;
|
|
134
|
-
langgraph_step: number;
|
|
135
|
-
langgraph_node: string;
|
|
136
|
-
langgraph_triggers: string[];
|
|
137
|
-
langgraph_task_idx: number;
|
|
138
|
-
thread_ts: string;
|
|
139
|
-
ls_provider: string;
|
|
140
|
-
ls_model_name: string;
|
|
141
|
-
ls_model_type: string;
|
|
142
|
-
ls_temperature: number;
|
|
143
|
-
};
|
|
144
|
-
data: {
|
|
145
|
-
input: any;
|
|
146
|
-
output: {
|
|
147
|
-
generations: {
|
|
148
|
-
text: string;
|
|
149
|
-
generation_info: {
|
|
150
|
-
finish_reason: string;
|
|
151
|
-
model_name: string;
|
|
152
|
-
system_fingerprint: string;
|
|
153
|
-
};
|
|
154
|
-
type: string;
|
|
155
|
-
message: {
|
|
156
|
-
lc: number;
|
|
157
|
-
type: string;
|
|
158
|
-
id: string[];
|
|
159
|
-
kwargs: {
|
|
160
|
-
content: string;
|
|
161
|
-
additional_kwargs: {
|
|
162
|
-
tool_calls: {
|
|
163
|
-
index: number;
|
|
164
|
-
id: string;
|
|
165
|
-
function: { arguments: string; name: string };
|
|
166
|
-
type: string;
|
|
167
|
-
}[];
|
|
168
|
-
};
|
|
169
|
-
response_metadata: {
|
|
170
|
-
finish_reason: string;
|
|
171
|
-
model_name: string;
|
|
172
|
-
system_fingerprint: string;
|
|
173
|
-
};
|
|
174
|
-
type: string;
|
|
175
|
-
id: string;
|
|
176
|
-
tool_calls: { name: string; args: { query: string }; id: string; type: string }[];
|
|
177
|
-
invalid_tool_calls: any[];
|
|
178
|
-
};
|
|
179
|
-
};
|
|
180
|
-
}[][];
|
|
181
|
-
llm_output: any;
|
|
182
|
-
run: any;
|
|
183
|
-
};
|
|
184
|
-
};
|
|
185
|
-
parent_ids: string[];
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
type LangGraphOnChainStreamEvent = {
|
|
189
|
-
event: LangGraphEventTypes.OnChainStream;
|
|
190
|
-
name: string;
|
|
191
|
-
run_id: string;
|
|
192
|
-
tags: string[];
|
|
193
|
-
metadata: {
|
|
194
|
-
thread_id: string;
|
|
195
|
-
langgraph_step?: number;
|
|
196
|
-
langgraph_node?: string;
|
|
197
|
-
langgraph_triggers?: string[];
|
|
198
|
-
langgraph_task_idx?: number;
|
|
199
|
-
thread_ts?: string;
|
|
200
|
-
};
|
|
201
|
-
data: {
|
|
202
|
-
chunk: {
|
|
203
|
-
messages: {
|
|
204
|
-
lc: number;
|
|
205
|
-
type: string;
|
|
206
|
-
id: string[];
|
|
207
|
-
kwargs: {
|
|
208
|
-
content: string;
|
|
209
|
-
additional_kwargs?: {
|
|
210
|
-
tool_calls?: {
|
|
211
|
-
index: number;
|
|
212
|
-
id: string;
|
|
213
|
-
function: { arguments: string; name: string };
|
|
214
|
-
type: string;
|
|
215
|
-
}[];
|
|
216
|
-
};
|
|
217
|
-
response_metadata?: {
|
|
218
|
-
finish_reason: string;
|
|
219
|
-
model_name: string;
|
|
220
|
-
system_fingerprint: string;
|
|
221
|
-
};
|
|
222
|
-
type: string;
|
|
223
|
-
id: string;
|
|
224
|
-
tool_calls?: { name: string; args: { query: string }; id: string; type: string }[];
|
|
225
|
-
invalid_tool_calls?: any[];
|
|
226
|
-
};
|
|
227
|
-
}[];
|
|
228
|
-
};
|
|
229
|
-
};
|
|
230
|
-
parent_ids: string[];
|
|
231
|
-
};
|
|
232
|
-
|
|
233
|
-
type LangGraphOnToolStartEvent = {
|
|
234
|
-
event: LangGraphEventTypes.OnToolStart;
|
|
235
|
-
name: string;
|
|
236
|
-
run_id: string;
|
|
237
|
-
tags: string[];
|
|
238
|
-
metadata: {
|
|
239
|
-
thread_id: string;
|
|
240
|
-
langgraph_step: number;
|
|
241
|
-
langgraph_node: string;
|
|
242
|
-
langgraph_triggers: string[];
|
|
243
|
-
langgraph_task_idx: number;
|
|
244
|
-
thread_ts: string;
|
|
245
|
-
};
|
|
246
|
-
data: {
|
|
247
|
-
input: {
|
|
248
|
-
query: string;
|
|
249
|
-
};
|
|
250
|
-
};
|
|
251
|
-
parent_ids: string[];
|
|
252
|
-
};
|
|
253
|
-
|
|
254
|
-
type LangGraphOnToolEndEvent = {
|
|
255
|
-
event: LangGraphEventTypes.OnToolEnd;
|
|
256
|
-
name: string;
|
|
257
|
-
run_id: string;
|
|
258
|
-
tags: string[];
|
|
259
|
-
metadata: {
|
|
260
|
-
thread_id: string;
|
|
261
|
-
langgraph_step: number;
|
|
262
|
-
langgraph_node: string;
|
|
263
|
-
langgraph_triggers: string[];
|
|
264
|
-
langgraph_task_idx: number;
|
|
265
|
-
thread_ts: string;
|
|
266
|
-
};
|
|
267
|
-
data: {
|
|
268
|
-
input: {
|
|
269
|
-
query: string;
|
|
270
|
-
};
|
|
271
|
-
output: {
|
|
272
|
-
lc: number;
|
|
273
|
-
type: string;
|
|
274
|
-
id: string[];
|
|
275
|
-
kwargs: {
|
|
276
|
-
content: string[];
|
|
277
|
-
type: string;
|
|
278
|
-
name: string;
|
|
279
|
-
tool_call_id: string;
|
|
280
|
-
status: string;
|
|
281
|
-
};
|
|
282
|
-
};
|
|
283
|
-
};
|
|
284
|
-
parent_ids: string[];
|
|
285
|
-
};
|
|
286
|
-
|
|
287
|
-
export type LangGraphEvent =
|
|
288
|
-
| LangGraphOnChainStartEvent
|
|
289
|
-
| LangGraphOnChainStreamEvent
|
|
290
|
-
| LangGraphOnChainEndEvent
|
|
291
|
-
| LangGraphOnChatModelStartEvent
|
|
292
|
-
| LangGraphOnChatModelStreamEvent
|
|
293
|
-
| LangGraphOnChatModelEndEvent
|
|
294
|
-
| LangGraphOnToolStartEvent
|
|
295
|
-
| LangGraphOnToolEndEvent;
|