40 lines
1.1 KiB
JavaScript
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
|