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

39 lines
1.0 KiB
JavaScript

import { useCopilotKit } from "../providers/CopilotKitProvider.mjs";
import { useEffect } from "react";
//#region src/hooks/use-frontend-tool.tsx
const EMPTY_DEPS = [];
function useFrontendTool(tool, deps) {
const { copilotkit } = useCopilotKit();
const extraDeps = deps ?? EMPTY_DEPS;
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
export { useFrontendTool };
//# sourceMappingURL=use-frontend-tool.mjs.map