UNPKG

@copilotkit/react-core

Version:

<img src="https://github.com/user-attachments/assets/0a6b64d9-e193-4940-a3f6-60334ac34084" alt="banner" style="border-radius: 12px; border: 2px solid #d6d4fa;" />

60 lines (58 loc) 1.8 kB
import { __spreadProps, __spreadValues } from "./chunk-SKC7AJIV.mjs"; // src/hooks/use-frontend-tool.ts import React, { useEffect, useRef } from "react"; import { getZodParameters } from "@copilotkit/shared"; import { parseJson } from "@copilotkit/shared"; import { useFrontendTool as useFrontendToolVNext } from "@copilotkitnext/react"; function useFrontendTool(tool, dependencies) { const { name, description, parameters, render, followUp } = tool; const zodParameters = getZodParameters(parameters); const normalizedRender = (() => { if (typeof render === "undefined") { return void 0; } if (typeof render === "string") { const staticRender = render; return () => React.createElement( React.Fragment, null, staticRender ); } return (args) => { const renderArgs = __spreadProps(__spreadValues({}, args), { result: typeof args.result === "string" ? parseJson(args.result, args.result) : args.result }); const rendered = render(renderArgs); if (typeof rendered === "string") { return React.createElement(React.Fragment, null, rendered); } return rendered != null ? rendered : null; }; })(); const handlerRef = useRef(tool.handler); useEffect(() => { handlerRef.current = tool.handler; }, [tool.handler, ...dependencies != null ? dependencies : []]); const normalizedHandler = tool.handler ? (args) => { var _a; return (_a = handlerRef.current) == null ? void 0 : _a.call(handlerRef, args); } : void 0; useFrontendToolVNext({ name, description, parameters: zodParameters, handler: normalizedHandler, followUp, render: normalizedRender }); } export { useFrontendTool }; //# sourceMappingURL=chunk-CDUIA2WM.mjs.map