{"version":3,"file":"shared.cjs","names":["createLogger","CopilotResolver","StateResolver"],"sources":["../../../src/lib/integrations/shared.ts"],"sourcesContent":["import { YogaInitialContext } from \"graphql-yoga\";\nimport { buildSchemaSync } from \"type-graphql\";\nimport { CopilotResolver } from \"../../graphql/resolvers/copilot.resolver\";\nimport { CopilotRuntime } from \"../runtime/copilot-runtime\";\nimport { CopilotServiceAdapter } from \"../../service-adapters\";\nimport { CopilotCloudOptions } from \"../cloud\";\nimport { LogLevel, createLogger } from \"../../lib/logger\";\nimport telemetry from \"../telemetry-client\";\nimport { StateResolver } from \"../../graphql/resolvers/state.resolver\";\n\n/**\n * CORS configuration for CopilotKit endpoints.\n */\nexport interface CopilotEndpointCorsConfig {\n  /**\n   * Allowed origin(s). Can be a string, array of strings, or a function that returns the origin.\n   */\n  origin:\n    | string\n    | string[]\n    | ((origin: string, c: any) => string | undefined | null);\n  /**\n   * Whether to include credentials (cookies, authorization headers) in CORS requests.\n   * When true, origin cannot be \"*\" - must be an explicit origin.\n   */\n  credentials?: boolean;\n}\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   * Optional CORS configuration. When not provided, defaults to allowing all origins without credentials.\n   * To support HTTP-only cookies, provide cors config with credentials: true and explicit origin.\n   */\n  cors?: CopilotEndpointCorsConfig;\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, StateResolver],\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};\n\nexport function getCommonConfig(\n  options: CreateCopilotRuntimeServerOptions,\n): CommonConfig {\n  const logLevel =\n    (process.env.LOG_LEVEL as LogLevel) ||\n    (options.logLevel as LogLevel) ||\n    \"error\";\n  const logger = createLogger({\n    level: logLevel,\n    component: \"getCommonConfig\",\n  });\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 ?? \"none\",\n    },\n  });\n\n  return {\n    logging: createLogger({ component: \"CopilotKit Runtime\", level: logLevel }),\n  };\n}\n"],"mappings":";;;;;;;;;AA4BA,MAAM,SAASA,6BAAc;AA6B7B,SAAgB,YACd,UAEI,EAAE,EACN;AACA,QAAO,MAAM,6BAA6B;CAC1C,MAAM,2CAAyB;EAC7B,WAAW,CAACC,0CAAiBC,qCAAc;EAC3C,gBAAgB,QAAQ;EACzB,CAAC;AACF,QAAO,MAAM,oCAAoC;AACjD,QAAO;;AAOT,SAAgB,gBACd,SACc;CACd,MAAM,WACH,QAAQ,IAAI,aACZ,QAAQ,YACT;AACa,6BAAa;EAC1B,OAAO;EACP,WAAW;EACZ,CAAC;AAEF,KAAI,QAAQ,MACV,kCAAU,sBAAsB;EAC9B,cAAc,QAAQ,MAAM;EAC5B,SAAS,QAAQ,MAAM;EACxB,CAAC;AAGJ,KAAI,QAAQ,YAAY,YACtB,kCAAU,oBAAoB,EAC5B,aAAa,EACX,GAAI,QAAQ,WAAW,aACxB,EACF,CAAC;AAGJ,kCAAU,oBAAoB,EAC5B,SAAS,EACP,gBAAgB,QAAQ,gBAAgB,aAAa,QAAQ,QAC9D,EACF,CAAC;AAEF,QAAO,EACL,SAASF,4BAAa;EAAE,WAAW;EAAsB,OAAO;EAAU,CAAC,EAC5E"}