{"version":3,"sources":["../../../src/tools/search/base.ts"],"names":["SearchToolOutput","ToolOutput","results","sources","R","unique","map","result","url","isEmpty","length","getTextContent","JSON","stringify","join","cacheKey","WeakRefKeyFn","from","self","enumerable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAeA,yBAEZC,mBAAAA,CAAAA;AAAAA,EAAAA;;;;AACR,EAAA,WAAA,CAA4BC,OAAAA,EAA8B;AACxD,IAAA,KAAA,EAAK,EAAA,KADqBA,OAAAA,GAAAA,OAAAA;AAE5B,EAAA;AAEA,EAAA,IAIIC,OAAAA,GAAU;AACZ,IAAA,OAAOC,YAAAA,CAAEC,OAAO,IAAA,CAAKH,OAAAA,CAAQI,IAAI,CAACC,MAAAA,KAAWA,MAAAA,CAAOC,GAAG,CAAA,CAAA;AACzD,EAAA;EAEAC,OAAAA,GAAU;AACR,IAAA,OAAO,IAAA,CAAKP,QAAQQ,MAAAA,KAAW,CAAA;AACjC,EAAA;EAKAC,cAAAA,GAAyB;AACvB,IAAA,OAAO,IAAA,CAAKT,OAAAA,CAAQI,GAAAA,CAAI,CAACC,MAAAA,KAAWK,IAAAA,CAAKC,SAAAA,CAAUN,MAAAA,EAAQ,IAAA,EAAM,CAAA,CAAA,CAAA,CAAIO,KAAK,MAAA,CAAA;AAC5E,EAAA;AACF;;;AAjBIC,IAAAA,QAAAA,EAAUC,+BAAAA,CAAaC,IAAAA,CAAuB,CAACC,IAAAA,KAASA,KAAKhB,OAAO,CAAA;IACpEiB,UAAAA,EAAY;;;;;;;AAWZJ,IAAAA,QAAAA,EAAUC,+BAAAA,CAAaC,IAAAA,CAAuB,CAACC,IAAAA,KAASA,KAAKhB,OAAO","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BaseToolOptions, BaseToolRunOptions, ToolOutput } from \"@/tools/base.js\";\nimport { Cache, WeakRefKeyFn } from \"@/cache/decoratorCache.js\";\nimport * as R from \"remeda\";\n\nexport interface SearchToolOptions extends BaseToolOptions {}\n\nexport interface SearchToolRunOptions extends BaseToolRunOptions {}\n\nexport interface SearchToolResult {\n  title: string;\n  description: string;\n  url: string;\n}\n\nexport abstract class SearchToolOutput<\n  TSearchToolResult extends SearchToolResult = SearchToolResult,\n> extends ToolOutput {\n  constructor(public readonly results: TSearchToolResult[]) {\n    super();\n  }\n\n  @Cache({\n    cacheKey: WeakRefKeyFn.from<SearchToolOutput>((self) => self.results),\n    enumerable: false,\n  })\n  get sources() {\n    return R.unique(this.results.map((result) => result.url));\n  }\n\n  isEmpty() {\n    return this.results.length === 0;\n  }\n\n  @Cache({\n    cacheKey: WeakRefKeyFn.from<SearchToolOutput>((self) => self.results),\n  })\n  getTextContent(): string {\n    return this.results.map((result) => JSON.stringify(result, null, 2)).join(\"\\n\\n\");\n  }\n}\n"]}