{"version":3,"file":"arxiv.cjs","names":["BaseRetriever","searchArxiv","loadDocsFromResults","getDocsFromSummaries"],"sources":["../../src/retrievers/arxiv.ts"],"sourcesContent":["import { BaseRetriever, BaseRetrieverInput } from \"@langchain/core/retrievers\";\nimport { Document } from \"@langchain/core/documents\";\nimport {\n  searchArxiv,\n  loadDocsFromResults,\n  getDocsFromSummaries,\n} from \"../utils/arxiv.js\";\n\nexport type ArxivRetrieverOptions = {\n  getFullDocuments?: boolean;\n  maxSearchResults?: number;\n} & BaseRetrieverInput;\n\n/**\n * A retriever that searches arXiv for relevant articles based on a query.\n * It can retrieve either full documents (PDFs) or just summaries.\n */\nexport class ArxivRetriever extends BaseRetriever {\n  static lc_name() {\n    return \"ArxivRetriever\";\n  }\n\n  lc_namespace = [\"langchain\", \"retrievers\", \"arxiv_retriever\"];\n\n  getFullDocuments = false;\n\n  maxSearchResults = 10;\n\n  constructor(options: ArxivRetrieverOptions = {}) {\n    super(options);\n    this.getFullDocuments = options.getFullDocuments ?? this.getFullDocuments;\n    this.maxSearchResults = options.maxSearchResults ?? this.maxSearchResults;\n  }\n\n  async _getRelevantDocuments(query: string): Promise<Document[]> {\n    try {\n      const results = await searchArxiv(query, this.maxSearchResults);\n\n      if (this.getFullDocuments) {\n        // Fetch and parse PDFs to get full documents\n        return await loadDocsFromResults(results);\n      } else {\n        // Use summaries as documents\n        return getDocsFromSummaries(results);\n      }\n    } catch {\n      throw new Error(`Error retrieving documents from arXiv.`);\n    }\n  }\n}\n"],"mappings":";;;;;;;;;;AAiBA,IAAa,iBAAb,cAAoCA,2BAAAA,cAAc;CAChD,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAc;EAAkB;CAE7D,mBAAmB;CAEnB,mBAAmB;CAEnB,YAAY,UAAiC,EAAE,EAAE;AAC/C,QAAM,QAAQ;AACd,OAAK,mBAAmB,QAAQ,oBAAoB,KAAK;AACzD,OAAK,mBAAmB,QAAQ,oBAAoB,KAAK;;CAG3D,MAAM,sBAAsB,OAAoC;AAC9D,MAAI;GACF,MAAM,UAAU,MAAMC,cAAAA,YAAY,OAAO,KAAK,iBAAiB;AAE/D,OAAI,KAAK,iBAEP,QAAO,MAAMC,cAAAA,oBAAoB,QAAQ;OAGzC,QAAOC,cAAAA,qBAAqB,QAAQ;UAEhC;AACN,SAAM,IAAI,MAAM,yCAAyC"}