@copilotkit/runtime 1.0.7 → 1.0.8-integrations-unify.1

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 (44) hide show
  1. package/.turbo/turbo-build.log +58 -58
  2. package/CHANGELOG.md +16 -0
  3. package/dist/{chunk-Z2G5OVBH.mjs → chunk-3HW6N3ZT.mjs} +2 -2
  4. package/dist/{chunk-JA2IRWRL.mjs → chunk-J5GIXAC4.mjs} +75 -12
  5. package/dist/{chunk-JA2IRWRL.mjs.map → chunk-J5GIXAC4.mjs.map} +1 -1
  6. package/dist/{chunk-YNH6B4QZ.mjs → chunk-JLCQGNST.mjs} +2 -2
  7. package/dist/{chunk-74N2ME6S.mjs → chunk-MQSKKZ6E.mjs} +2 -2
  8. package/dist/chunk-MQSKKZ6E.mjs.map +1 -0
  9. package/dist/{chunk-XUJZPK4P.mjs → chunk-R2FQNVPT.mjs} +3 -3
  10. package/dist/{chunk-W7VNHFVP.mjs → chunk-Z45IBAWL.mjs} +2 -2
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.js +95 -11
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +9 -7
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/lib/index.d.ts +1 -1
  17. package/dist/lib/index.js +95 -11
  18. package/dist/lib/index.js.map +1 -1
  19. package/dist/lib/index.mjs +9 -7
  20. package/dist/lib/integrations/index.js +1 -1
  21. package/dist/lib/integrations/index.js.map +1 -1
  22. package/dist/lib/integrations/index.mjs +4 -4
  23. package/dist/lib/integrations/nest/index.js +1 -1
  24. package/dist/lib/integrations/nest/index.js.map +1 -1
  25. package/dist/lib/integrations/nest/index.mjs +2 -2
  26. package/dist/lib/integrations/node-express/index.js +1 -1
  27. package/dist/lib/integrations/node-express/index.js.map +1 -1
  28. package/dist/lib/integrations/node-express/index.mjs +2 -2
  29. package/dist/lib/integrations/node-http/index.js +1 -1
  30. package/dist/lib/integrations/node-http/index.js.map +1 -1
  31. package/dist/lib/integrations/node-http/index.mjs +1 -1
  32. package/dist/service-adapters/index.d.ts +1 -48
  33. package/dist/service-adapters/index.js +74 -11
  34. package/dist/service-adapters/index.js.map +1 -1
  35. package/dist/service-adapters/index.mjs +1 -1
  36. package/dist/{langchain-adapter-a02d1d38.d.ts → unify-adapter-8d38c723.d.ts} +13 -1
  37. package/package.json +4 -4
  38. package/src/lib/index.ts +1 -0
  39. package/src/service-adapters/unify/unify-adapter.ts +91 -31
  40. package/dist/chunk-74N2ME6S.mjs.map +0 -1
  41. /package/dist/{chunk-Z2G5OVBH.mjs.map → chunk-3HW6N3ZT.mjs.map} +0 -0
  42. /package/dist/{chunk-YNH6B4QZ.mjs.map → chunk-JLCQGNST.mjs.map} +0 -0
  43. /package/dist/{chunk-XUJZPK4P.mjs.map → chunk-R2FQNVPT.mjs.map} +0 -0
  44. /package/dist/{chunk-W7VNHFVP.mjs.map → chunk-Z45IBAWL.mjs.map} +0 -0
@@ -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.8-integrations-unify.1\",\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,9 +1,9 @@
1
1
  import {
2
2
  RemoteChain
3
- } from "./chunk-JA2IRWRL.mjs";
3
+ } from "./chunk-J5GIXAC4.mjs";
4
4
  import {
5
5
  RuntimeEventSource
6
- } from "./chunk-74N2ME6S.mjs";
6
+ } from "./chunk-MQSKKZ6E.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-XUJZPK4P.mjs.map
154
+ //# sourceMappingURL=chunk-R2FQNVPT.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  copilotRuntimeNodeHttpEndpoint,
3
3
  telemetry_client_default
4
- } from "./chunk-74N2ME6S.mjs";
4
+ } from "./chunk-MQSKKZ6E.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-W7VNHFVP.mjs.map
24
+ //# sourceMappingURL=chunk-Z45IBAWL.mjs.map
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { g as CommonConfig, b as CopilotRequestContextProperties, a as CopilotRuntime, C as CopilotRuntimeConstructorParams, c as CreateCopilotRuntimeServerOptions, G as GraphQLContext, e as buildSchema, d as createContext, f as flattenToolCallsNoDuplicates, h as getCommonConfig } from './shared-48c0f7b8.js';
2
- export { G as GoogleGenerativeAIAdapter, L as LangChainAdapter, a as OpenAIAdapter, O as OpenAIAdapterParams, c as OpenAIAssistantAdapter, b as OpenAIAssistantAdapterParams } from './langchain-adapter-a02d1d38.js';
2
+ export { G as GoogleGenerativeAIAdapter, L as LangChainAdapter, a as OpenAIAdapter, O as OpenAIAdapterParams, c as OpenAIAssistantAdapter, b as OpenAIAssistantAdapterParams, d as UnifyAdapter, U as UnifyAdapterParams } from './unify-adapter-8d38c723.js';
3
3
  export { C as CopilotRuntimeServerInstance, a as config, c as copilotRuntimeNextJSAppRouterEndpoint, b as copilotRuntimeNextJSPagesRouterEndpoint } from './pages-router-24897543.js';
4
4
  export { copilotRuntimeNodeHttpEndpoint } from './lib/integrations/node-http/index.js';
5
5
  export { copilotRuntimeNodeExpressEndpoint } from './lib/integrations/node-express/index.js';
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.7",
47
+ version: "1.0.8-integrations-unify.1",
48
48
  sideEffects: false,
49
49
  main: "./dist/index.js",
50
50
  module: "./dist/index.mjs",
@@ -125,6 +125,7 @@ __export(src_exports, {
125
125
  MessageStreamInterruptedResponse: () => MessageStreamInterruptedResponse,
126
126
  OpenAIAdapter: () => OpenAIAdapter,
127
127
  OpenAIAssistantAdapter: () => OpenAIAssistantAdapter,
128
+ UnifyAdapter: () => UnifyAdapter,
128
129
  UnknownErrorResponse: () => UnknownErrorResponse,
129
130
  buildSchema: () => buildSchema,
130
131
  config: () => config,
@@ -141,7 +142,7 @@ module.exports = __toCommonJS(src_exports);
141
142
  var import_reflect_metadata = require("reflect-metadata");
142
143
 
143
144
  // src/lib/copilot-runtime.ts
144
- var import_shared5 = require("@copilotkit/shared");
145
+ var import_shared6 = require("@copilotkit/shared");
145
146
 
146
147
  // src/service-adapters/openai/openai-adapter.ts
147
148
  var import_openai = __toESM(require("openai"));
@@ -1057,6 +1058,88 @@ var RemoteChain = class {
1057
1058
  };
1058
1059
  __name(RemoteChain, "RemoteChain");
1059
1060
 
1061
+ // src/service-adapters/unify/unify-adapter.ts
1062
+ var import_openai3 = __toESM(require("openai"));
1063
+ var import_shared5 = require("@copilotkit/shared");
1064
+ var UnifyAdapter = class {
1065
+ apiKey;
1066
+ model;
1067
+ start;
1068
+ constructor(options) {
1069
+ if (options == null ? void 0 : options.apiKey) {
1070
+ this.apiKey = options.apiKey;
1071
+ } else {
1072
+ this.apiKey = "UNIFY_API_KEY";
1073
+ }
1074
+ this.model = options == null ? void 0 : options.model;
1075
+ this.start = true;
1076
+ }
1077
+ async process(request) {
1078
+ const tools = request.actions.map(convertActionInputToOpenAITool);
1079
+ const openai = new import_openai3.default({
1080
+ apiKey: this.apiKey,
1081
+ baseURL: "https://api.unify.ai/v0/"
1082
+ });
1083
+ const messages = request.messages.map(convertMessageToOpenAIMessage);
1084
+ const stream = await openai.chat.completions.create({
1085
+ model: this.model,
1086
+ messages,
1087
+ stream: true,
1088
+ ...tools.length > 0 && {
1089
+ tools
1090
+ }
1091
+ });
1092
+ let model = null;
1093
+ request.eventSource.stream(async (eventStream$) => {
1094
+ var _a, _b;
1095
+ let mode = null;
1096
+ for await (const chunk of stream) {
1097
+ if (this.start) {
1098
+ model = chunk.model;
1099
+ eventStream$.sendTextMessageStart((0, import_shared5.randomId)());
1100
+ eventStream$.sendTextMessageContent(`Model used: ${model}
1101
+ `);
1102
+ eventStream$.sendTextMessageEnd();
1103
+ this.start = false;
1104
+ }
1105
+ const toolCall = (_a = chunk.choices[0].delta.tool_calls) == null ? void 0 : _a[0];
1106
+ const content = chunk.choices[0].delta.content;
1107
+ if (mode === "message" && (toolCall == null ? void 0 : toolCall.id)) {
1108
+ mode = null;
1109
+ eventStream$.sendTextMessageEnd();
1110
+ } else if (mode === "function" && (toolCall === void 0 || (toolCall == null ? void 0 : toolCall.id))) {
1111
+ mode = null;
1112
+ eventStream$.sendActionExecutionEnd();
1113
+ }
1114
+ if (mode === null) {
1115
+ if (toolCall == null ? void 0 : toolCall.id) {
1116
+ mode = "function";
1117
+ eventStream$.sendActionExecutionStart(toolCall.id, toolCall.function.name);
1118
+ } else if (content) {
1119
+ mode = "message";
1120
+ eventStream$.sendTextMessageStart(chunk.id);
1121
+ }
1122
+ }
1123
+ if (mode === "message" && content) {
1124
+ eventStream$.sendTextMessageContent(content);
1125
+ } else if (mode === "function" && ((_b = toolCall == null ? void 0 : toolCall.function) == null ? void 0 : _b.arguments)) {
1126
+ eventStream$.sendActionExecutionArgs(toolCall.function.arguments);
1127
+ }
1128
+ }
1129
+ if (mode === "message") {
1130
+ eventStream$.sendTextMessageEnd();
1131
+ } else if (mode === "function") {
1132
+ eventStream$.sendActionExecutionEnd();
1133
+ }
1134
+ eventStream$.complete();
1135
+ });
1136
+ return {
1137
+ threadId: request.threadId || (0, import_shared5.randomId)()
1138
+ };
1139
+ }
1140
+ };
1141
+ __name(UnifyAdapter, "UnifyAdapter");
1142
+
1060
1143
  // src/service-adapters/events.ts
1061
1144
  var import_rxjs = require("rxjs");
1062
1145
  var RuntimeEventTypes;
@@ -1278,7 +1361,7 @@ var CopilotRuntime = class {
1278
1361
  const serverSideActionsInput = actions.map((action) => ({
1279
1362
  name: action.name,
1280
1363
  description: action.description,
1281
- jsonSchema: JSON.stringify((0, import_shared5.actionParametersToJsonSchema)(action.parameters))
1364
+ jsonSchema: JSON.stringify((0, import_shared6.actionParametersToJsonSchema)(action.parameters))
1282
1365
  }));
1283
1366
  const actionInputs = flattenToolCallsNoDuplicates([
1284
1367
  ...serverSideActionsInput,
@@ -2104,16 +2187,16 @@ var UnknownErrorResponse = class extends FailedResponseStatus {
2104
2187
  __name(UnknownErrorResponse, "UnknownErrorResponse");
2105
2188
 
2106
2189
  // src/lib/telemetry-client.ts
2107
- var import_shared6 = require("@copilotkit/shared");
2190
+ var import_shared7 = require("@copilotkit/shared");
2108
2191
  var packageJson = require_package();
2109
- var telemetryClient = new import_shared6.TelemetryClient({
2192
+ var telemetryClient = new import_shared7.TelemetryClient({
2110
2193
  packageName: packageJson.name,
2111
2194
  packageVersion: packageJson.version
2112
2195
  });
2113
2196
  var telemetry_client_default = telemetryClient;
2114
2197
 
2115
2198
  // src/graphql/resolvers/copilot.resolver.ts
2116
- var import_shared7 = require("@copilotkit/shared");
2199
+ var import_shared8 = require("@copilotkit/shared");
2117
2200
  function _ts_decorate11(decorators, target, key, desc) {
2118
2201
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2119
2202
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
@@ -2231,7 +2314,7 @@ var CopilotResolver = class {
2231
2314
  rejectOutputMessagesPromise = reject;
2232
2315
  });
2233
2316
  logger2.debug("Processing");
2234
- const { eventSource, threadId = (0, import_shared7.randomId)(), runId, actions } = await copilotRuntime.process({
2317
+ const { eventSource, threadId = (0, import_shared8.randomId)(), runId, actions } = await copilotRuntime.process({
2235
2318
  serviceAdapter,
2236
2319
  messages: data.messages,
2237
2320
  actions: data.frontend.actions,
@@ -2272,7 +2355,7 @@ var CopilotResolver = class {
2272
2355
  });
2273
2356
  outputMessages = [
2274
2357
  (0, import_class_transformer2.plainToInstance)(TextMessage, {
2275
- id: (0, import_shared7.randomId)(),
2358
+ id: (0, import_shared8.randomId)(),
2276
2359
  createdAt: /* @__PURE__ */ new Date(),
2277
2360
  content: result.reason,
2278
2361
  role: MessageRole.assistant
@@ -2319,7 +2402,7 @@ var CopilotResolver = class {
2319
2402
  (0, import_rxjs2.takeWhile)((e) => e.type != RuntimeEventTypes.TextMessageEnd)
2320
2403
  );
2321
2404
  const streamingTextStatus = new import_rxjs2.Subject();
2322
- const messageId = (0, import_shared7.randomId)();
2405
+ const messageId = (0, import_shared8.randomId)();
2323
2406
  pushMessage({
2324
2407
  id: messageId,
2325
2408
  status: (0, import_rxjs2.firstValueFrom)(streamingTextStatus),
@@ -2431,7 +2514,7 @@ var CopilotResolver = class {
2431
2514
  result: event.result
2432
2515
  }, "Action execution result event received");
2433
2516
  pushMessage({
2434
- id: (0, import_shared7.randomId)(),
2517
+ id: (0, import_shared8.randomId)(),
2435
2518
  status: new SuccessMessageStatus(),
2436
2519
  createdAt: /* @__PURE__ */ new Date(),
2437
2520
  actionExecutionId: event.actionExecutionId,
@@ -2439,7 +2522,7 @@ var CopilotResolver = class {
2439
2522
  result: event.result
2440
2523
  });
2441
2524
  outputMessages.push((0, import_class_transformer2.plainToInstance)(ResultMessage, {
2442
- id: (0, import_shared7.randomId)(),
2525
+ id: (0, import_shared8.randomId)(),
2443
2526
  createdAt: /* @__PURE__ */ new Date(),
2444
2527
  actionExecutionId: event.actionExecutionId,
2445
2528
  actionName: event.actionName,
@@ -2730,6 +2813,7 @@ __name(copilotRuntimeNestEndpoint, "copilotRuntimeNestEndpoint");
2730
2813
  MessageStreamInterruptedResponse,
2731
2814
  OpenAIAdapter,
2732
2815
  OpenAIAssistantAdapter,
2816
+ UnifyAdapter,
2733
2817
  UnknownErrorResponse,
2734
2818
  buildSchema,
2735
2819
  config,