rdesign/frontend/node_modules/@copilotkitnext/react/dist/hooks/use-frontend-tool.cjs

40 lines
1.1 KiB
JavaScript

const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
const require_CopilotKitProvider = require('../providers/CopilotKitProvider.cjs');
let react = require("react");
//#region src/hooks/use-frontend-tool.tsx
const EMPTY_DEPS = [];
function useFrontendTool(tool, deps) {
const { copilotkit } = require_CopilotKitProvider.useCopilotKit();
const extraDeps = deps ?? EMPTY_DEPS;
(0, react.useEffect)(() => {
const name = tool.name;
if (copilotkit.getTool({
toolName: name,
agentId: tool.agentId
})) {
console.warn(`Tool '${name}' already exists for agent '${tool.agentId || "global"}'. Overriding with latest registration.`);
copilotkit.removeTool(name, tool.agentId);
}
copilotkit.addTool(tool);
if (tool.render && tool.parameters) copilotkit.addHookRenderToolCall({
name,
args: tool.parameters,
agentId: tool.agentId,
render: tool.render
});
return () => {
copilotkit.removeTool(name, tool.agentId);
};
}, [
tool.name,
tool.available,
copilotkit,
extraDeps.length,
...extraDeps
]);
}
//#endregion
exports.useFrontendTool = useFrontendTool;
//# sourceMappingURL=use-frontend-tool.cjs.map