sync local pi changes

This commit is contained in:
alex wiesner
2026-04-09 23:14:57 +01:00
parent 18245c778e
commit ec378ebd28
128 changed files with 22510 additions and 3436 deletions

View File

@@ -1,30 +1,13 @@
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
import { loadWebSearchConfig } from "./src/config.ts";
import { createExaProvider } from "./src/providers/exa.ts";
import type { WebProvider } from "./src/providers/types.ts";
import { registerWebSearchConfigCommand } from "./src/commands/web-search-config.ts";
import { createWebSearchRuntime } from "./src/runtime.ts";
import { createWebFetchTool } from "./src/tools/web-fetch.ts";
import { createWebSearchTool } from "./src/tools/web-search.ts";
async function resolveProvider(providerName?: string): Promise<WebProvider> {
const config = await loadWebSearchConfig();
const selectedName = providerName ?? config.defaultProviderName;
const providerConfig = config.providersByName.get(selectedName);
if (!providerConfig) {
throw new Error(
`Unknown web-search provider \"${selectedName}\". Configured providers: ${[...config.providersByName.keys()].join(", ")}`,
);
}
switch (providerConfig.type) {
case "exa":
return createExaProvider(providerConfig);
default:
throw new Error(`Unsupported web-search provider type: ${(providerConfig as { type: string }).type}`);
}
}
export default function webSearch(pi: ExtensionAPI) {
pi.registerTool(createWebSearchTool({ resolveProvider }));
pi.registerTool(createWebFetchTool({ resolveProvider }));
const runtime = createWebSearchRuntime();
pi.registerTool(createWebSearchTool({ executeSearch: runtime.search }));
pi.registerTool(createWebFetchTool({ executeFetch: runtime.fetch }));
registerWebSearchConfigCommand(pi);
}