{"version":3,"file":"node-fetch-handler.mjs","names":[],"sources":["../../../../src/v2/runtime/endpoints/node-fetch-handler.ts"],"sourcesContent":["/**\n * Generic Node ↔ Fetch bridge for CopilotKit runtime.\n *\n * Wraps a `CopilotRuntimeFetchHandler` as a Node HTTP handler using\n * `@remix-run/node-fetch-server` for reliable streaming and conversion.\n *\n * @example\n * ```typescript\n * import { createServer } from \"node:http\";\n * import { createCopilotRuntimeHandler } from \"@copilotkit/runtime/v2\";\n * import { createCopilotNodeHandler } from \"@copilotkit/runtime/v2/node\";\n *\n * const handler = createCopilotRuntimeHandler({ runtime, basePath: \"/api/copilotkit\", cors: true });\n * const nodeHandler = createCopilotNodeHandler(handler);\n * createServer(nodeHandler).listen(3000);\n * ```\n */\n\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport { createRequest, sendResponse } from \"@remix-run/node-fetch-server\";\nimport type { CopilotRuntimeFetchHandler } from \"../core/fetch-handler\";\nimport { logger } from \"@copilotkit/shared\";\n\nexport type NodeFetchHandler = (\n  req: IncomingMessage,\n  res: ServerResponse,\n) => Promise<void>;\n\nexport function createCopilotNodeHandler(\n  handler: CopilotRuntimeFetchHandler,\n): NodeFetchHandler {\n  return async (req: IncomingMessage, res: ServerResponse) => {\n    try {\n      const fetchReq = createRequest(req, res);\n      const fetchRes = await handler(fetchReq);\n      await sendResponse(res, fetchRes);\n    } catch (err: unknown) {\n      logger.error({ err }, \"Error in Node fetch handler\");\n      if (!res.headersSent) {\n        res.statusCode = 500;\n        res.end(\"Internal Server Error\");\n      }\n    }\n  };\n}\n\n/** @deprecated Use `createCopilotNodeHandler` instead. */\nexport const createNodeFetchHandler = createCopilotNodeHandler;\n"],"mappings":";;;;;AA4BA,SAAgB,yBACd,SACkB;AAClB,QAAO,OAAO,KAAsB,QAAwB;AAC1D,MAAI;AAGF,SAAM,aAAa,KADF,MAAM,QADN,cAAc,KAAK,IAAI,CACA,CACP;WAC1B,KAAc;AACrB,UAAO,MAAM,EAAE,KAAK,EAAE,8BAA8B;AACpD,OAAI,CAAC,IAAI,aAAa;AACpB,QAAI,aAAa;AACjB,QAAI,IAAI,wBAAwB;;;;;;AAOxC,MAAa,yBAAyB"}