rdesign/frontend/node_modules/@copilotkit/runtime-client-gql/dist/client/CopilotRuntimeClient.cjs.map

1 line
9.7 KiB
Plaintext

{"version":3,"file":"CopilotRuntimeClient.cjs","names":["CopilotKitVersionMismatchError","ResolvedCopilotKitError","CopilotKitError","CopilotKitLowLevelError","Client","cacheExchange","fetchExchange","generateCopilotResponseMutation","getAvailableAgentsQuery","loadAgentStateQuery"],"sources":["../../src/client/CopilotRuntimeClient.ts"],"sourcesContent":["import { Client, cacheExchange, fetchExchange } from \"@urql/core\";\nimport * as packageJson from \"../../package.json\";\nimport {\n AvailableAgentsQuery,\n GenerateCopilotResponseMutation,\n GenerateCopilotResponseMutationVariables,\n LoadAgentStateQuery,\n} from \"../graphql/@generated/graphql\";\nimport { generateCopilotResponseMutation } from \"../graphql/definitions/mutations\";\nimport {\n getAvailableAgentsQuery,\n loadAgentStateQuery,\n} from \"../graphql/definitions/queries\";\nimport { OperationResultSource, OperationResult } from \"urql\";\nimport {\n ResolvedCopilotKitError,\n CopilotKitLowLevelError,\n CopilotKitError,\n CopilotKitVersionMismatchError,\n getPossibleVersionMismatch,\n} from \"@copilotkit/shared\";\n\nconst createFetchFn =\n (signal?: AbortSignal, handleGQLWarning?: (warning: string) => void) =>\n async (...args: Parameters<typeof fetch>) => {\n // @ts-expect-error -- since this is our own header, TS will not recognize\n const publicApiKey = args[1]?.headers?.[\"x-copilotcloud-public-api-key\"];\n try {\n const result = await fetch(args[0], { ...(args[1] ?? {}), signal });\n\n // No mismatch checking if cloud is being used\n const mismatch = publicApiKey\n ? null\n : await getPossibleVersionMismatch({\n runtimeVersion: result.headers.get(\"X-CopilotKit-Runtime-Version\")!,\n runtimeClientGqlVersion: packageJson.version,\n });\n if (result.status !== 200) {\n if (result.status >= 400 && result.status <= 500) {\n if (mismatch) {\n throw new CopilotKitVersionMismatchError(mismatch);\n }\n\n throw new ResolvedCopilotKitError({ status: result.status });\n }\n }\n\n if (mismatch && handleGQLWarning) {\n handleGQLWarning(mismatch.message);\n }\n\n return result;\n } catch (error) {\n // Let abort error pass through. It will be suppressed later\n if (\n (error as Error).message.includes(\"BodyStreamBuffer was aborted\") ||\n (error as Error).message.includes(\"signal is aborted without reason\")\n ) {\n throw error;\n }\n if (error instanceof CopilotKitError) {\n throw error;\n }\n throw new CopilotKitLowLevelError({\n error: error as Error,\n url: args[0] as string,\n });\n }\n };\n\nexport interface CopilotRuntimeClientOptions {\n url: string;\n publicApiKey?: string;\n headers?: Record<string, string>;\n credentials?: RequestCredentials;\n handleGQLErrors?: (error: Error) => void;\n handleGQLWarning?: (warning: string) => void;\n}\n\nexport class CopilotRuntimeClient {\n client: Client;\n public handleGQLErrors?: (error: Error) => void;\n public handleGQLWarning?: (warning: string) => void;\n\n constructor(options: CopilotRuntimeClientOptions) {\n const headers: Record<string, string> = {};\n\n this.handleGQLErrors = options.handleGQLErrors;\n this.handleGQLWarning = options.handleGQLWarning;\n\n if (options.headers) {\n Object.assign(headers, options.headers);\n }\n\n if (options.publicApiKey) {\n headers[\"x-copilotcloud-public-api-key\"] = options.publicApiKey;\n }\n\n this.client = new Client({\n url: options.url,\n exchanges: [cacheExchange, fetchExchange],\n fetchOptions: {\n headers: {\n ...headers,\n \"X-CopilotKit-Runtime-Client-GQL-Version\": packageJson.version,\n },\n ...(options.credentials ? { credentials: options.credentials } : {}),\n },\n });\n }\n\n generateCopilotResponse({\n data,\n properties,\n signal,\n }: {\n data: GenerateCopilotResponseMutationVariables[\"data\"];\n properties?: GenerateCopilotResponseMutationVariables[\"properties\"];\n signal?: AbortSignal;\n }) {\n const fetchFn = createFetchFn(signal, this.handleGQLWarning);\n const result = this.client.mutation<\n GenerateCopilotResponseMutation,\n GenerateCopilotResponseMutationVariables\n >(\n generateCopilotResponseMutation,\n { data, properties },\n { fetch: fetchFn },\n );\n\n return result;\n }\n\n public asStream<S, T>(\n source: OperationResultSource<OperationResult<S, { data: T }>>,\n ) {\n const handleGQLErrors = this.handleGQLErrors;\n return new ReadableStream<S>({\n start(controller) {\n source.subscribe(({ data, hasNext, error }) => {\n if (error) {\n if (\n error.message.includes(\"BodyStreamBuffer was aborted\") ||\n error.message.includes(\"signal is aborted without reason\")\n ) {\n // close the stream if there is no next item\n if (!hasNext) controller.close();\n\n //suppress this specific error\n console.warn(\"Abort error suppressed\");\n return;\n }\n\n // Handle structured errors specially - check if it's a CopilotKitError with visibility\n if ((error as any).extensions?.visibility) {\n // Create a synthetic GraphQL error with the structured error info\n const syntheticError = {\n ...error,\n graphQLErrors: [\n {\n message: error.message,\n extensions: (error as any).extensions,\n },\n ],\n };\n\n if (handleGQLErrors) {\n handleGQLErrors(syntheticError);\n }\n return; // Don't close the stream for structured errors, let the error handler decide\n }\n\n controller.error(error);\n if (handleGQLErrors) {\n handleGQLErrors(error);\n }\n } else {\n controller.enqueue(data);\n if (!hasNext) {\n controller.close();\n }\n }\n });\n },\n });\n }\n\n availableAgents() {\n const fetchFn = createFetchFn();\n return this.client.query<AvailableAgentsQuery>(\n getAvailableAgentsQuery,\n {},\n { fetch: fetchFn },\n );\n }\n\n loadAgentState(data: { threadId: string; agentName: string }) {\n const fetchFn = createFetchFn();\n const result = this.client.query<LoadAgentStateQuery>(\n loadAgentStateQuery,\n { data },\n { fetch: fetchFn },\n );\n\n // Add error handling for GraphQL errors - similar to generateCopilotResponse\n result\n .toPromise()\n .then(({ error }) => {\n if (error && this.handleGQLErrors) {\n this.handleGQLErrors(error);\n }\n })\n .catch(() => {}); // Suppress promise rejection warnings\n\n return result;\n }\n\n static removeGraphQLTypename(data: any) {\n if (Array.isArray(data)) {\n data.forEach((item) => CopilotRuntimeClient.removeGraphQLTypename(item));\n } else if (typeof data === \"object\" && data !== null) {\n delete data.__typename;\n Object.keys(data).forEach((key) => {\n if (typeof data[key] === \"object\" && data[key] !== null) {\n CopilotRuntimeClient.removeGraphQLTypename(data[key]);\n }\n });\n }\n return data;\n }\n}\n"],"mappings":"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"}