{"version":3,"sources":["../../src/model-context/useAssistantTool.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport {\n  useAssistantRuntime,\n  useToolUIsStore,\n} from \"../context/react/AssistantContext\";\nimport type { ToolCallContentPartComponent } from \"../types/ContentPartComponentTypes\";\nimport type { Tool } from \"./ModelContextTypes\";\n\nexport type AssistantToolProps<TArgs, TResult> = Tool<TArgs, TResult> & {\n  toolName: string;\n  render?: ToolCallContentPartComponent<TArgs, TResult> | undefined;\n  disabled?: boolean | undefined;\n};\n\nexport const useAssistantTool = <TArgs, TResult>(\n  tool: AssistantToolProps<TArgs, TResult>,\n) => {\n  const assistantRuntime = useAssistantRuntime();\n  const toolUIsStore = useToolUIsStore();\n\n  useEffect(() => {\n    return tool.render\n      ? toolUIsStore.getState().setToolUI(tool.toolName, tool.render)\n      : undefined;\n  }, [toolUIsStore, tool.toolName, tool.render]);\n\n  useEffect(() => {\n    const { toolName, render, disabled, ...rest } = tool;\n    if (disabled) return;\n\n    const context = {\n      tools: {\n        [toolName]: rest,\n      },\n    };\n    return assistantRuntime.registerModelContextProvider({\n      getModelContext: () => context,\n    });\n  }, [assistantRuntime, tool]);\n};\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAUA,IAAM,mBAAmB,CAC9B,SACG;AACH,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,eAAe,gBAAgB;AAErC,YAAU,MAAM;AACd,WAAO,KAAK,SACR,aAAa,SAAS,EAAE,UAAU,KAAK,UAAU,KAAK,MAAM,IAC5D;AAAA,EACN,GAAG,CAAC,cAAc,KAAK,UAAU,KAAK,MAAM,CAAC;AAE7C,YAAU,MAAM;AACd,UAAM,EAAE,UAAU,QAAQ,UAAU,GAAG,KAAK,IAAI;AAChD,QAAI,SAAU;AAEd,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,QACL,CAAC,QAAQ,GAAG;AAAA,MACd;AAAA,IACF;AACA,WAAO,iBAAiB,6BAA6B;AAAA,MACnD,iBAAiB,MAAM;AAAA,IACzB,CAAC;AAAA,EACH,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAC7B;","names":[]}