{"version":3,"sources":["../src/tools/stream.ts"],"names":["WritableStream"],"mappings":";;;;;AAIO,IAAM,UAAA,GAAN,cAAyBA,kBAAA,CAAwB;AAAA,EAC9C,MAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EAER,WAAA,CACE;AAAA,IACE,MAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,KAOF,OAAA,EACA;AACA,IAAA,KAAA,CAAM;AAAA,MACJ,MAAM,MAAM,KAAA,EAAY;AACtB,QAAA,MAAM,WAAA,EAAY,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,MAClC;AAAA,KACD,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,IAAA;AACb,IAAA,SAAS,WAAA,GAAc;AACrB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AAAA,EAEA,MAAc,OAAO,IAAA,EAAW;AAC9B,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,MAAM,KAAK,OAAA,CAAQ;AAAA,QACjB,IAAA,EAAM,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,OAAA,CAAA;AAAA,QACpB,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,IAAA,EAAM,MAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,IAAA;AAAA,UACR,GAAI,IAAA,CAAK,MAAA,KAAW,eAAA,GAChB;AAAA,YACE,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,UAAU,IAAA,CAAK;AAAA,WACjB,GACA;AAAA,YACE,CAAC,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,MAAA,CAAQ,GAAG,IAAA,CAAK,MAAA;AAAA,YAC/B,CAAC,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,IAAA,CAAM,GAAG,IAAA,CAAK;AAAA;AAC/B;AACN,OACD,CAAA;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,MAAM,IAAA,EAAW;AACrB,IAAA,MAAM,IAAA,CAAK,OAAO,IAAI,CAAA;AAAA,EACxB;AAAA,EAEA,MAAM,OAAmC,IAAA,EAAgE;AACvG,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,MAAM,IAAA,CAAK,QAAQ,IAAI,CAAA;AAAA,IACzB;AAAA,EACF;AACF","file":"chunk-KJBMTK5B.cjs","sourcesContent":["import { WritableStream } from 'node:stream/web';\nimport type { DataChunkType } from '../stream/types';\nimport type { OutputWriter } from '../workflows';\n\nexport class ToolStream extends WritableStream<unknown> {\n  private prefix: string;\n  private callId: string;\n  private name: string;\n  private runId: string;\n  private writeFn?: OutputWriter;\n\n  constructor(\n    {\n      prefix,\n      callId,\n      name,\n      runId,\n    }: {\n      prefix: string;\n      callId: string;\n      name: string;\n      runId: string;\n    },\n    writeFn?: OutputWriter,\n  ) {\n    super({\n      async write(chunk: any) {\n        await getInstance()._write(chunk);\n      },\n    });\n\n    const self = this;\n    function getInstance() {\n      return self;\n    }\n\n    this.prefix = prefix;\n    this.callId = callId;\n    this.name = name;\n    this.runId = runId;\n    this.writeFn = writeFn;\n  }\n\n  private async _write(data: any) {\n    if (this.writeFn) {\n      await this.writeFn({\n        type: `${this.prefix}-output`,\n        runId: this.runId,\n        from: 'USER',\n        payload: {\n          output: data,\n          ...(this.prefix === 'workflow-step'\n            ? {\n                runId: this.runId,\n                stepName: this.name,\n              }\n            : {\n                [`${this.prefix}CallId`]: this.callId,\n                [`${this.prefix}Name`]: this.name,\n              }),\n        },\n      });\n    }\n  }\n\n  async write(data: any) {\n    await this._write(data);\n  }\n\n  async custom<T extends { type: string }>(data: T extends { type: `data-${string}` } ? DataChunkType : T) {\n    if (this.writeFn) {\n      await this.writeFn(data);\n    }\n  }\n}\n"]}