{"version":3,"file":"ibm.cjs","names":["StructuredTool","jsonSchemaToZod","BaseToolkit","authenticateAndSetInstance"],"sources":["../../../src/agents/toolkits/ibm.ts"],"sourcesContent":["/* oxlint-disable typescript/no-explicit-any */\nimport {\n  WatsonXAI,\n  convertUtilityToolToWatsonxTool,\n} from \"@ibm-cloud/watsonx-ai\";\nimport {\n  BaseToolkit,\n  StructuredTool,\n  StructuredToolInterface,\n} from \"@langchain/core/tools\";\nimport {\n  InteropZodObject,\n  ZodObjectV3,\n  interopSafeParse,\n} from \"@langchain/core/utils/types\";\nimport {\n  authenticateAndSetInstance,\n  jsonSchemaToZod,\n} from \"../../utils/ibm.js\";\nimport { WatsonxAuth, WatsonxInit } from \"../../types/ibm.js\";\n\nexport interface WatsonxToolParams {\n  name: string;\n  description: string;\n  schema?: Record<string, any>;\n  service?: WatsonXAI;\n  configSchema?: Record<string, any>;\n}\n\nexport class WatsonxTool extends StructuredTool implements WatsonxToolParams {\n  name: string;\n\n  description: string;\n\n  service: WatsonXAI;\n\n  schema: ZodObjectV3;\n\n  configSchema?: InteropZodObject;\n\n  toolConfig?: Record<string, any>;\n\n  constructor(\n    fields: WatsonXAI.TextChatParameterFunction,\n    service: WatsonXAI,\n    configSchema?: WatsonXAI.JsonObject\n  ) {\n    super();\n\n    this.name = fields?.name;\n    this.description = fields?.description || \"\";\n    this.schema = jsonSchemaToZod(fields?.parameters);\n    this.configSchema = configSchema\n      ? jsonSchemaToZod(configSchema)\n      : undefined;\n\n    this.service = service;\n  }\n\n  protected async _call(inputObject: Record<string, any>): Promise<string> {\n    const { input } = inputObject;\n    const response = await this.service.runUtilityAgentToolByName({\n      toolId: this.name,\n      wxUtilityAgentToolsRunRequest: {\n        input: input ?? inputObject,\n        tool_name: this.name,\n        config: this.toolConfig,\n      },\n    });\n\n    const result = response?.result.output;\n    return new Promise((resolve) => {\n      resolve(result ?? \"Sorry, the tool did not work as expected\");\n    });\n  }\n\n  set config(config: Record<string, any>) {\n    if (!this.configSchema) {\n      this.toolConfig = config;\n      return;\n    }\n    const result = interopSafeParse(this.configSchema, config);\n    this.toolConfig = result.data;\n  }\n}\n\nexport class WatsonxToolkit extends BaseToolkit {\n  tools: WatsonxTool[];\n\n  service: WatsonXAI;\n\n  constructor(fields: WatsonxAuth & WatsonxInit) {\n    super();\n    const {\n      watsonxAIApikey,\n      watsonxAIAuthType,\n      watsonxAIBearerToken,\n      watsonxAIUsername,\n      watsonxAIPassword,\n      watsonxAIUrl,\n      version,\n      disableSSL,\n      serviceUrl,\n    } = fields;\n\n    const auth = authenticateAndSetInstance({\n      watsonxAIApikey,\n      watsonxAIAuthType,\n      watsonxAIBearerToken,\n      watsonxAIUsername,\n      watsonxAIPassword,\n      watsonxAIUrl,\n      disableSSL,\n      version,\n      serviceUrl,\n    });\n    if (auth) this.service = auth;\n  }\n\n  async loadTools() {\n    const { result: tools } = await this.service.listUtilityAgentTools();\n    this.tools = tools.resources\n      .map((tool) => {\n        const { function: watsonxTool } = convertUtilityToolToWatsonxTool(tool);\n        if (watsonxTool)\n          return new WatsonxTool(watsonxTool, this.service, tool.config_schema);\n        else return undefined;\n      })\n      .filter((item): item is WatsonxTool => item !== undefined);\n  }\n\n  static async init(props: WatsonxAuth & WatsonxInit) {\n    const instance = new WatsonxToolkit({ ...props });\n    await instance.loadTools();\n    return instance;\n  }\n\n  getTools(): StructuredToolInterface[] {\n    return this.tools;\n  }\n\n  getTool(toolName: string, config?: Record<string, any>) {\n    const selectedTool = this.tools.find((item) => item.name === toolName);\n    if (!selectedTool)\n      throw new Error(\"Tool with provided name does not exist\");\n    if (config) {\n      selectedTool.config = config;\n    }\n    return selectedTool;\n  }\n}\n"],"mappings":";;;;;;;;;;;AA6BA,IAAa,cAAb,cAAiCA,sBAAAA,eAA4C;CAC3E;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA,YACE,QACA,SACA,cACA;AACA,SAAO;AAEP,OAAK,OAAO,QAAQ;AACpB,OAAK,cAAc,QAAQ,eAAe;AAC1C,OAAK,SAASC,YAAAA,gBAAgB,QAAQ,WAAW;AACjD,OAAK,eAAe,eAChBA,YAAAA,gBAAgB,aAAa,GAC7B,KAAA;AAEJ,OAAK,UAAU;;CAGjB,MAAgB,MAAM,aAAmD;EACvE,MAAM,EAAE,UAAU;EAUlB,MAAM,UATW,MAAM,KAAK,QAAQ,0BAA0B;GAC5D,QAAQ,KAAK;GACb,+BAA+B;IAC7B,OAAO,SAAS;IAChB,WAAW,KAAK;IAChB,QAAQ,KAAK;IACd;GACF,CAAC,GAEuB,OAAO;AAChC,SAAO,IAAI,SAAS,YAAY;AAC9B,WAAQ,UAAU,2CAA2C;IAC7D;;CAGJ,IAAI,OAAO,QAA6B;AACtC,MAAI,CAAC,KAAK,cAAc;AACtB,QAAK,aAAa;AAClB;;AAGF,OAAK,cAAA,GAAA,4BAAA,kBAD2B,KAAK,cAAc,OAAO,CACjC;;;AAI7B,IAAa,iBAAb,MAAa,uBAAuBC,sBAAAA,YAAY;CAC9C;CAEA;CAEA,YAAY,QAAmC;AAC7C,SAAO;EACP,MAAM,EACJ,iBACA,mBACA,sBACA,mBACA,mBACA,cACA,SACA,YACA,eACE;EAEJ,MAAM,OAAOC,YAAAA,2BAA2B;GACtC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC;AACF,MAAI,KAAM,MAAK,UAAU;;CAG3B,MAAM,YAAY;EAChB,MAAM,EAAE,QAAQ,UAAU,MAAM,KAAK,QAAQ,uBAAuB;AACpE,OAAK,QAAQ,MAAM,UAChB,KAAK,SAAS;GACb,MAAM,EAAE,UAAU,iBAAA,GAAA,sBAAA,iCAAgD,KAAK;AACvE,OAAI,YACF,QAAO,IAAI,YAAY,aAAa,KAAK,SAAS,KAAK,cAAc;OAClE,QAAO,KAAA;IACZ,CACD,QAAQ,SAA8B,SAAS,KAAA,EAAU;;CAG9D,aAAa,KAAK,OAAkC;EAClD,MAAM,WAAW,IAAI,eAAe,EAAE,GAAG,OAAO,CAAC;AACjD,QAAM,SAAS,WAAW;AAC1B,SAAO;;CAGT,WAAsC;AACpC,SAAO,KAAK;;CAGd,QAAQ,UAAkB,QAA8B;EACtD,MAAM,eAAe,KAAK,MAAM,MAAM,SAAS,KAAK,SAAS,SAAS;AACtE,MAAI,CAAC,aACH,OAAM,IAAI,MAAM,yCAAyC;AAC3D,MAAI,OACF,cAAa,SAAS;AAExB,SAAO"}