{"version":3,"sources":["../../../src/tools/search/base.ts"],"names":["SearchToolOutput","ToolOutput","constructor","results","sources","R","unique","map","result","url","isEmpty","length","getTextContent","JSON","stringify","join","cacheKey","WeakRefKeyFn","from","self","enumerable"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcC,SAAA,YAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAAA,EAAA,IAAA,EAAA;;;;;;AAAA,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;;;;;AAgBM,MAAeA,yBAEZC,mBAAAA,CAAAA;EAhCV;;;;AAiCEC,EAAAA,WAAAA,CAA4BC,OAA8B,EAAA;AACxD,IAAK,KAAA,EAAA,EAAA,KADqBA,OAAAA,GAAAA,OAAAA;AAE5B;AAEA,EAAA,IAIIC,OAAU,GAAA;AACZ,IAAOC,OAAAA,YAAAA,CAAEC,OAAO,IAAKH,CAAAA,OAAAA,CAAQI,IAAI,CAACC,MAAAA,KAAWA,MAAOC,CAAAA,GAAG,CAAA,CAAA;AACzD;EAEAC,OAAU,GAAA;AACR,IAAO,OAAA,IAAA,CAAKP,QAAQQ,MAAW,KAAA,CAAA;AACjC;EAKAC,cAAyB,GAAA;AACvB,IAAA,OAAO,IAAKT,CAAAA,OAAAA,CAAQI,GAAI,CAAA,CAACC,MAAWK,KAAAA,IAAAA,CAAKC,SAAUN,CAAAA,MAAAA,EAAQ,IAAM,EAAA,CAAA,CAAA,CAAA,CAAIO,KAAK,MAAA,CAAA;AAC5E;AACF;;;AAjBIC,IAAAA,QAAAA,EAAUC,+BAAaC,CAAAA,IAAAA,CAAuB,CAACC,IAAAA,KAASA,KAAKhB,OAAO,CAAA;IACpEiB,UAAY,EAAA;;;;;;;AAWZJ,IAAAA,QAAAA,EAAUC,+BAAaC,CAAAA,IAAAA,CAAuB,CAACC,IAAAA,KAASA,KAAKhB,OAAO","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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"]}