Files
my-pi/extensions/tavily-override.ts

22 lines
801 B
TypeScript

import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
import tavilyExtension from "../node_modules/@tavily/pi-extension/index.ts";
import { prefixTavilyTool, type TavilyToolDefinition } from "./tavily-tool-prefix.ts";
/** Load Tavily while making the provider explicit in every registered tool name. */
export default function tavilyOverrideExtension(pi: ExtensionAPI): void {
const prefixedPi = new Proxy(pi, {
get(target, property) {
if (property === "registerTool") {
return (definition: TavilyToolDefinition) =>
(target.registerTool as (tool: unknown) => void)(prefixTavilyTool(definition));
}
const value = Reflect.get(target, property, target);
return typeof value === "function" ? value.bind(target) : value;
},
});
tavilyExtension(prefixedPi);
}