const require_runtime = require('../_virtual/_rolldown/runtime.cjs'); const require_CopilotKitProvider = require('../providers/CopilotKitProvider.cjs'); const require_defineToolCallRenderer = require('../types/defineToolCallRenderer.cjs'); let react = require("react"); //#region src/hooks/use-render-tool.tsx const EMPTY_DEPS = []; /** * Registers a renderer entry in CopilotKit's `renderToolCalls` registry. * * Key behavior: * - deduplicates by `agentId:name` (latest registration wins), * - keeps renderer entries on cleanup so historical chat tool calls can still render, * - refreshes registration when `deps` change. * * @typeParam S - Schema type describing tool call parameters. * @param config - Renderer config for wildcard or named tools. * @param deps - Optional dependencies to refresh registration. * * @example * ```tsx * useRenderTool( * { * name: "searchDocs", * parameters: z.object({ query: z.string() }), * render: ({ status, parameters, result }) => { * if (status === "executing") return
Searching {parameters.query}
; * if (status === "complete") return
{result}
; * return
Preparing...
; * }, * }, * [], * ); * ``` * * @example * ```tsx * useRenderTool( * { * name: "summarize", * parameters: z.object({ text: z.string() }), * agentId: "research-agent", * render: ({ name, status }) =>
{name}: {status}
, * }, * [selectedAgentId], * ); * ``` */ function useRenderTool(config, deps) { const { copilotkit } = require_CopilotKitProvider.useCopilotKit(); const extraDeps = deps ?? EMPTY_DEPS; (0, react.useEffect)(() => { const renderer = config.name === "*" && !config.parameters ? require_defineToolCallRenderer.defineToolCallRenderer({ name: "*", render: (props) => config.render({ ...props, parameters: props.args }), ...config.agentId ? { agentId: config.agentId } : {} }) : require_defineToolCallRenderer.defineToolCallRenderer({ name: config.name, args: config.parameters, render: (props) => config.render({ ...props, parameters: props.args }), ...config.agentId ? { agentId: config.agentId } : {} }); copilotkit.addHookRenderToolCall(renderer); }, [ config.name, copilotkit, extraDeps.length, ...extraDeps ]); } //#endregion exports.useRenderTool = useRenderTool; //# sourceMappingURL=use-render-tool.cjs.map