@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;" />
25 lines (21 loc) • 735 B
text/typescript
import { useCopilotAction } from "./use-copilot-action";
import { FrontendAction } from "../types";
import { Parameter } from "@copilotkit/shared";
type UseToolCallArgs<T extends Parameter[] | [] = []> = {
available?: "disabled" | "enabled";
render: FrontendAction<T>["renderAndWaitForResponse"];
} & Pick<FrontendAction<T>, "name" | "description" | "parameters">;
export function useHumanInTheLoop<const T extends Parameter[] | [] = []>(
tool: UseToolCallArgs<T>,
dependencies?: any[],
) {
const { render, ...toolRest } = tool;
useCopilotAction(
{
...toolRest,
available: tool.available === "disabled" ? tool.available : "remote",
renderAndWaitForResponse: render,
},
dependencies,
);
}