{"version":3,"file":"stream_events.cjs","names":[],"sources":["../../src/utils/stream_events.ts"],"sourcesContent":["/**\n * Converts Cloudflare Workers AI stream chunks into LangChain ChatModelStreamEvents.\n *\n * @module\n */\n\nimport type {\n  ChatModelStreamEvent,\n  FinishReason,\n} from \"@langchain/core/language_models/event\";\nimport type { ContentBlock } from \"@langchain/core/messages/content\";\n\nexport interface CloudflareStreamChunk {\n  response?: string;\n}\n\nexport async function* convertCloudflareStream(\n  source: AsyncIterable<CloudflareStreamChunk>\n): AsyncGenerator<ChatModelStreamEvent> {\n  let messageStarted = false;\n  let accumulatedText = \"\";\n  const textIndex = 0;\n\n  for await (const chunk of source) {\n    if (!messageStarted) {\n      messageStarted = true;\n      yield { event: \"message-start\" as const };\n      yield {\n        event: \"content-block-start\" as const,\n        index: textIndex,\n        content: { type: \"text\", text: \"\" } as ContentBlock,\n      };\n    }\n\n    const text = chunk.response ?? \"\";\n    if (text) {\n      accumulatedText += text;\n      yield {\n        event: \"content-block-delta\" as const,\n        index: textIndex,\n        delta: { type: \"text-delta\" as const, text },\n      };\n    }\n  }\n\n  yield {\n    event: \"content-block-finish\" as const,\n    index: textIndex,\n    content: { type: \"text\", text: accumulatedText } as ContentBlock,\n  };\n\n  yield {\n    event: \"message-finish\" as const,\n    reason: \"stop\" as FinishReason,\n    responseMetadata: { model_provider: \"cloudflare\" },\n  };\n}\n"],"mappings":";AAgBA,gBAAuB,wBACrB,QACsC;CACtC,IAAI,iBAAiB;CACrB,IAAI,kBAAkB;CACtB,MAAM,YAAY;AAElB,YAAW,MAAM,SAAS,QAAQ;AAChC,MAAI,CAAC,gBAAgB;AACnB,oBAAiB;AACjB,SAAM,EAAE,OAAO,iBAA0B;AACzC,SAAM;IACJ,OAAO;IACP,OAAO;IACP,SAAS;KAAE,MAAM;KAAQ,MAAM;KAAI;IACpC;;EAGH,MAAM,OAAO,MAAM,YAAY;AAC/B,MAAI,MAAM;AACR,sBAAmB;AACnB,SAAM;IACJ,OAAO;IACP,OAAO;IACP,OAAO;KAAE,MAAM;KAAuB;KAAM;IAC7C;;;AAIL,OAAM;EACJ,OAAO;EACP,OAAO;EACP,SAAS;GAAE,MAAM;GAAQ,MAAM;GAAiB;EACjD;AAED,OAAM;EACJ,OAAO;EACP,QAAQ;EACR,kBAAkB,EAAE,gBAAgB,cAAc;EACnD"}