{"version":3,"sources":["../../../../src/adapters/langchain/backend/embedding.ts"],"names":["LangChainEmbeddingModel","EmbeddingModel","emitter","lcEmbedding","Emitter","root","child","namespace","creator","modelId","lc","id","providerId","_create","input","run","embeddings","signalRace","embedDocuments","values","signal","slice","usage","tokens","undefined","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;;AAgBO,MAAMA,gCAAgCC,4BAAAA,CAAAA;EAhB7C;;;;AAiBkBC,EAAAA,OAAAA;AAEhB,EAAA,WAAA,CAA+BC,WAAAA,EAA+B;AAC5D,IAAA,KAAA,EAAK,EAAA,KADwBA,WAAAA,GAAAA,WAAAA;AAE7B,IAAA,IAAA,CAAKD,OAAAA,GAAUE,mBAAAA,CAAQC,IAAAA,CAAKC,KAAAA,CAAM;MAChCC,SAAAA,EAAW;AAAC,QAAA,WAAA;AAAa,QAAA,SAAA;AAAW,QAAA;;MACpCC,OAAAA,EAAS;KACX,CAAA;AACF,EAAA;AAEA,EAAA,IAAIC,OAAAA,GAAkB;AACpB,IAAA,MAAMC,KAAK,IAAA,CAAKP,WAAAA;AAChB,IAAA,MAAMQ,EAAAA,GAAK,OAAOD,EAAAA,CAAG,OAAA,CAAA,KAAa,WAAWA,EAAAA,CAAG,OAAA,CAAA,GAAWA,EAAAA,CAAG,WAAA,CAAA;AAC9D,IAAA,OAAO,OAAOC,EAAAA,KAAO,QAAA,GAAWA,EAAAA,GAAK,WAAA;AACvC,EAAA;AAEA,EAAA,IAAIC,UAAAA,GAAqB;AACvB,IAAA,OAAO,WAAA;AACT,EAAA;EAEA,MAAgBC,OAAAA,CACdC,OACAC,GAAAA,EAC+B;AAC/B,IAAA,MAAMC,UAAAA,GAAa,MAAMC,sBAAAA,CACvB,MAAM,IAAA,CAAKd,WAAAA,CAAYe,cAAAA,CAAeJ,KAAAA,CAAMK,MAAM,CAAA,EAClDJ,GAAAA,CAAIK,MAAM,CAAA;AAGZ,IAAA,OAAO;MACLD,MAAAA,EAAQL,KAAAA,CAAMK,OAAOE,KAAAA,EAAK;AAC1BL,MAAAA,UAAAA;MACAM,KAAAA,EAAO;QAAEC,MAAAA,EAAQC;AAAU;AAC7B,KAAA;AACF,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTtB,MAAAA,WAAAA,EAAa,IAAA,CAAKA;AACpB,KAAA;AACF,EAAA;AAEAuB,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"embedding.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n  EmbeddingModel,\n  EmbeddingModelEvents,\n  EmbeddingModelInput,\n  EmbeddingModelOutput,\n} from \"@/backend/embedding.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { Embeddings as LCEmbeddingModel } from \"@langchain/core/embeddings\";\nimport { signalRace } from \"@/internals/helpers/promise.js\";\n\nexport class LangChainEmbeddingModel extends EmbeddingModel {\n  public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n  constructor(protected readonly lcEmbedding: LCEmbeddingModel) {\n    super();\n    this.emitter = Emitter.root.child({\n      namespace: [\"langchain\", \"backend\", \"embedding\"],\n      creator: this,\n    });\n  }\n\n  get modelId(): string {\n    const lc = this.lcEmbedding as unknown as Record<string, unknown>;\n    const id = typeof lc[\"model\"] === \"string\" ? lc[\"model\"] : lc[\"modelName\"];\n    return typeof id === \"string\" ? id : \"langchain\";\n  }\n\n  get providerId(): string {\n    return \"langchain\";\n  }\n\n  protected async _create(\n    input: EmbeddingModelInput,\n    run: RunContext<this>,\n  ): Promise<EmbeddingModelOutput> {\n    const embeddings = await signalRace(\n      () => this.lcEmbedding.embedDocuments(input.values),\n      run.signal,\n    );\n\n    return {\n      values: input.values.slice(),\n      embeddings,\n      usage: { tokens: undefined },\n    };\n  }\n\n  createSnapshot() {\n    return {\n      ...super.createSnapshot(),\n      lcEmbedding: this.lcEmbedding,\n    };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    Object.assign(this, snapshot);\n  }\n}\n"]}