diff options
Diffstat (limited to 'src/index.ts')
| -rw-r--r-- | src/index.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/index.ts b/src/index.ts index 7a3464c..14ea8eb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,8 +21,10 @@ import type { ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent"; import { BrowserDaemon } from "./daemon"; +import { type BrowserClient, createBrowserClient } from "./client"; import { getBrowserSystemPrompt } from "./prompt"; import { registerRenderers } from "./renderers"; +import { registerAllTools } from "./registry"; import { registerSetupCommand } from "./setup"; import { type BrowserState, defaultState, persistState, restoreState } from "./state"; import { cleanupTempDirs, registerTools } from "./tools"; @@ -35,6 +37,7 @@ export default function browserHarnessExtension(pi: ExtensionAPI) { // ── State ────────────────────────────────────────────────────────────────── let state: BrowserState = defaultState(namespace); let daemon: BrowserDaemon | null = null; + let client: BrowserClient | null = null; // ── Tool initialization flag ─────────────────────────────────────────────── let toolsRegistered = false; @@ -133,9 +136,13 @@ export default function browserHarnessExtension(pi: ExtensionAPI) { // Don't block — user can run /browser-setup later } + client = createBrowserClient({ namespace: state.namespace }); + try { await client.start(); } catch { /* surfaced via tool errors */ } + // Register tools (once) if (!toolsRegistered && daemon) { registerTools(pi, daemon); + if (client) registerAllTools(pi, client); toolsRegistered = true; } @@ -171,6 +178,11 @@ export default function browserHarnessExtension(pi: ExtensionAPI) { daemon = null; } + if (client) { + try { await client.stop(); } catch { /* best-effort */ } + client = null; + } + toolsRegistered = false; // Clean up temp files from truncated tool outputs |
