synabun 2026.3.31007 → 2026.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +51 -52
  2. package/hooks/claude-code/prompt-submit.mjs +6 -6
  3. package/mcp-server/dist/services/neural-interface.d.ts +20 -19
  4. package/mcp-server/dist/services/neural-interface.d.ts.map +1 -1
  5. package/mcp-server/dist/services/neural-interface.js +52 -45
  6. package/mcp-server/dist/services/neural-interface.js.map +1 -1
  7. package/mcp-server/dist/tools/browser-advanced.d.ts +4 -0
  8. package/mcp-server/dist/tools/browser-advanced.d.ts.map +1 -1
  9. package/mcp-server/dist/tools/browser-advanced.js +7 -4
  10. package/mcp-server/dist/tools/browser-advanced.js.map +1 -1
  11. package/mcp-server/dist/tools/browser-interact.d.ts +16 -0
  12. package/mcp-server/dist/tools/browser-interact.d.ts.map +1 -1
  13. package/mcp-server/dist/tools/browser-interact.js +25 -16
  14. package/mcp-server/dist/tools/browser-interact.js.map +1 -1
  15. package/mcp-server/dist/tools/browser-navigate.d.ts +8 -0
  16. package/mcp-server/dist/tools/browser-navigate.d.ts.map +1 -1
  17. package/mcp-server/dist/tools/browser-navigate.js +13 -8
  18. package/mcp-server/dist/tools/browser-navigate.js.map +1 -1
  19. package/mcp-server/dist/tools/browser-observe.d.ts +48 -0
  20. package/mcp-server/dist/tools/browser-observe.d.ts.map +1 -1
  21. package/mcp-server/dist/tools/browser-observe.js +74 -49
  22. package/mcp-server/dist/tools/browser-observe.js.map +1 -1
  23. package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +20 -0
  24. package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +1 -1
  25. package/mcp-server/dist/tools/leonardo-browser-tools.js +39 -34
  26. package/mcp-server/dist/tools/leonardo-browser-tools.js.map +1 -1
  27. package/mcp-server/src/services/neural-interface.ts +58 -46
  28. package/mcp-server/src/tools/browser-advanced.ts +10 -5
  29. package/mcp-server/src/tools/browser-interact.ts +34 -24
  30. package/mcp-server/src/tools/browser-navigate.ts +83 -77
  31. package/mcp-server/src/tools/browser-observe.ts +99 -73
  32. package/mcp-server/src/tools/leonardo-browser-tools.ts +47 -37
  33. package/neural-interface/public/shared/styles.css +49 -0
  34. package/neural-interface/public/shared/ui-automation-studio.js +71 -3
  35. package/neural-interface/public/shared/ui-claude-panel.js +29 -23
  36. package/neural-interface/public/shared/ui-settings.js +10 -10
  37. package/neural-interface/public/shared/ui-terminal.js +9 -7
  38. package/neural-interface/server.js +732 -386
  39. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,67 +1,66 @@
1
- # Changelog
1
+ # SynaBun Changelog
2
2
 
3
- ## 2026-04-01
3
+ Raw internal changelogs are archived in [changelog/](changelog/).
4
4
 
5
- ### Fixed — MCP Registration Path Wrong on Windows Global Install (Onboarding Wizard)
6
- - **`getMcpSetup()` in `onboarding.html` used `DATA_HOME` for the MCP entry file path** — On Windows global npm installs, `DATA_HOME` resolves to `%APPDATA%/synabun` (user data dir) while the actual `run.mjs` lives in `PACKAGE_ROOT` (`%APPDATA%/npm/node_modules/synabun`). The generated `~/.claude.json` pointed to a non-existent file, silently breaking MCP startup
7
- - `GET /api/setup/onboarding` now returns `packageRoot: PACKAGE_ROOT` alongside `projectDir: DATA_HOME`
8
- - `getMcpSetup()` rewritten: uses `packageRoot` for MCP entry path (`run.mjs`), `projectRoot` (data home) for env/data paths
9
- - All tool configs (Claude CLI, Cursor, Windsurf, `.mcp.json`) now include full env block: `DOTENV_PATH`, `SYNABUN_DATA_HOME`, `MEMORY_DATA_DIR` — previously only had `DOTENV_PATH`
10
- - Added startup warning in `server.js` when `SYNABUN_DATA_HOME` is unset and `PACKAGE_ROOT` contains `node_modules` — catches misconfigured global installs early
5
+ ## v.2026.04.01
11
6
 
12
- ## 2026-03-31
7
+ ### Added — Effort Level (Think) Selector in Automation Studio
8
+
9
+ - **Effort chip row in launch panel** — New Off / Low / Med / High / Max selector visible when Claude Code CLI is selected. Frosty glass chip design with tier-based accent colors (warm gold for Max, cool blue for Med). Selection persists via storage
10
+ - **Profile-aware visibility** — Effort section auto-hides when switching to Codex or Gemini profiles, re-appears on Claude Code. Applied in both main launch panel and quick timer
11
+ - **`--effort` flag plumbed through all launch paths** — Flows through loop launch, agent launch, quick timer, and scheduled loops. Stored in loop state JSON for traceability
12
+
13
+ ### Fixed — MCP Registration Path Wrong on Windows Global Install
14
+
15
+ - **Onboarding wizard generated broken paths** — `getMcpSetup()` used `DATA_HOME` for the MCP entry file path. On Windows global npm installs, `DATA_HOME` resolves to `%APPDATA%/synabun` while `run.mjs` lives in `PACKAGE_ROOT` (`%APPDATA%/npm/node_modules/synabun`). The generated `~/.claude.json` pointed to a non-existent file, silently breaking MCP startup
16
+ - **All tool configs now include full env block** — Claude CLI, Cursor, Windsurf, and `.mcp.json` configs now include `DOTENV_PATH`, `SYNABUN_DATA_HOME`, and `MEMORY_DATA_DIR`
17
+ - **Startup warning for misconfigured global installs** — Server logs a warning when `SYNABUN_DATA_HOME` is unset and `PACKAGE_ROOT` contains `node_modules`
18
+
19
+ ### Fixed — Edit Plan Shows Wrong Content
20
+
21
+ - **Stale fallback chain picked up post-plan messages** — `extractPlanText()` was called lazily when the user clicked "Edit plan", by which time remember results and stop hook outputs had been rendered in the DOM. The backward DOM walk picked these up instead of the actual plan
22
+ - **Eager plan capture** — Plan content is now captured immediately when ExitPlanMode is detected, before any post-plan messages exist. Removed unreliable disk scan fallback that found stale files from previous sessions
23
+ - **State cleanup on plan toggle** — All 3 plan mode entry points now clear cached plan data when toggled ON, preventing stale data inheritance
13
24
 
14
25
  ### Fixed — Browser Rendering Parity with Real Chrome
15
- - Set Playwright `viewport: null` in headed mode so pages render at the actual window size instead of a forced 1280x800 emulated box
16
- - Removed forced `deviceScaleFactor: 1` override — Chrome now uses its native DPR (2x on Retina) for correct rendering
17
- - Fixes white-page rendering on complex SPAs like Twitter/X where the emulated viewport broke CSS flexbox layouts
18
26
 
19
- ### Changed — Browser Stream Defaults to OFF
20
- - Screencast streaming now disabled by default for fresh installs (was enabled)
21
- - All 7 check sites updated: `disabled !== false` instead of `!!disabled` — stream only runs when explicitly toggled ON in Settings
22
- - Affects server.js, ui-terminal.js (4 sites), ui-settings.js, ui-automation-studio.js
27
+ - **Viewport and DPR overrides removed** — Set Playwright `viewport: null` in headed mode so pages render at actual window size. Removed forced `deviceScaleFactor: 1` — Chrome now uses native DPR (2x on Retina). Fixes white-page rendering on complex SPAs like Twitter/X
23
28
 
24
- ### Fixed — Terminal Text Cropped at Bottom (FitAddon box-sizing Mismatch)
25
- - **xterm FitAddon overcounted rows by ~2** — The global `* { box-sizing: border-box }` reset caused `getComputedStyle(parent).height` to return the border-box height (including 40px of vertical padding) for `.term-viewport`. xterm's FitAddon v0.10.0 uses this value as available space, calculating ~2 extra rows that rendered beyond the visible content area and got clipped
26
- - Verified empirically via Playwright: border-box returns 386px vs child `height: 100%` resolving to 346px — a 40px mismatch equal to the viewport padding
27
- - Fix: added `box-sizing: content-box` to `.term-viewport` (docked) and `.term-float-viewport-wrap .term-viewport` (floating tabs) — `getComputedStyle().height` now returns content height matching what `.xterm { height: 100% }` resolves to, with no visual size change
29
+ ### Fixed — Terminal Text Cropped at Bottom
28
30
 
29
- ### Fixed — Codex CLI Config Parse Error (TOML Serialization)
30
- - **`tomlUpsertSection()` wrote JSON syntax for objects instead of TOML inline tables** — The `env` field in `~/.codex/config.toml` was serialized as `{"key":"value"}` (JSON, with colons) instead of `{key = "value"}` (TOML inline table, with `=`). Codex CLI rejected this with "missing assignment between key-value pairs, expected `=`"
31
- - Added `tomlSerializeValue()` helper that recursively serializes strings, arrays, and objects with correct TOML syntax
32
- - `tomlUpsertSection()` now calls `tomlSerializeValue(v)` instead of `JSON.stringify(v)`
33
- - Affects `POST /api/setup/codex/mcp` endpoint — the onboarding/settings toggle that registers SynaBun MCP in Codex
31
+ - **FitAddon box-sizing mismatch** — The global `* { box-sizing: border-box }` reset caused xterm's FitAddon to overcalculate available rows by ~2 (40px padding mismatch). Fix: `box-sizing: content-box` on terminal viewport elements — no visual size change
34
32
 
35
- ### Changed — Loop Browser: Shared System Chrome with Tabs
36
- - **`ensureChromeDebuggable()` — one-time Chrome restart per NI boot** — New standalone function ensures Chrome is running with `--remote-debugging-port=9222`. Graceful AppleScript quit on macOS with `pgrep` polling (up to 8s), then `killall` fallback. Cleans `SingletonLock`, `DevToolsActivePort`, and crash markers before relaunch. Result is cached via `_chromeDebuggableReady` flag — subsequent calls just probe port 9222 and return instantly. Self-heals if Chrome was quit externally
37
- - **`createBrowserSession` CDP block simplified** — Replaced ~120 lines of inline Chrome kill/relaunch logic with `await ensureChromeDebuggable()` + `chromium.connectOverCDP()`. No per-session Chrome restart
38
- - **Loop launch rewritten (`POST /api/loop/launch`)** — Removed 15-second Strategy 2 UI poll entirely (wasted time when screencast disabled). New flow: scan `browserSessions` for existing CDP session → reuse it; if none, `createBrowserSession` once. Opens new tab per loop in the shared session instead of creating dedicated isolated sessions
39
- - **Loop stop preserves shared session** — Made handler async. Closes only the loop's browser tab (not the entire session). Switches to next tab if the closed one was active. Session persists for next loop or manual use
40
- - **Scheduled loops updated** — Same shared-session + tab approach applied to `launchScheduledLoop()`
41
- - **MCP `resolveSession` fallback** — When `SYNABUN_BROWSER_SESSION` env is pinned but session no longer exists, verifies via `GET /api/browser/sessions` before using. Falls through to auto-select/create instead of failing with stale session ID
42
- - **Browser enforcement prompt includes `browserTabId`** — `buildBrowserNote()` in `prompt-submit.mjs` now tells Claude which tab is theirs in the shared browser
43
-
44
- ### Fixed — Greeting Re-fires on Every Message in Ongoing Sessions
45
- - **`session-start.mjs` injected `## GREETING DIRECTIVE` into persistent `additionalContext`** — SessionStart hook's `additionalContext` persists in the conversation context for the entire session. Claude saw the "begin with this greeting" instruction on every turn and re-greeted, overpowering the `bootCancel` countermeasure on messages 2+
46
- - Removed GREETING DIRECTIVE block and Session Boot Sequence block from `session-start.mjs` — these no longer persist in session context
47
- - Removed dead greeting helper functions (`loadGreetingConfig`, `getProjectGreetingConfig`, `getTimeGreeting`, `resolveTemplate`, `formatReminders`) from `session-start.mjs`
48
- - Added greeting helpers + `buildGreetingContext()` to `prompt-submit.mjs` — builds full greeting directive + boot sequence on message 1 only, so it never persists
49
- - Removed `bootCancel` injection on messages 2+ (no longer needed since there's no persistent directive to cancel)
33
+ ### Fixed — Codex CLI Config Parse Error
34
+
35
+ - **TOML serialization wrote JSON syntax** — `tomlUpsertSection()` serialized the `env` field as `{"key":"value"}` (JSON) instead of `{key = "value"}` (TOML inline table). Codex CLI rejected with "missing assignment between key-value pairs". Added proper `tomlSerializeValue()` helper
36
+
37
+ ### Fixed — Greeting Re-fires on Every Message
38
+
39
+ - **Greeting directive persisted in session context** — The SessionStart hook injected the greeting into `additionalContext` which persists for the entire session. Claude saw "begin with this greeting" on every turn. Moved greeting injection to the prompt-submit hook (message 1 only) so it never persists
50
40
 
51
41
  ### Fixed — Windows Cross-Platform Hook Compatibility
52
- - **`hookCommandString()` embedded machine-specific absolute paths** — When hooks were installed into SynaBun's own `.claude/settings.json`, the function generated paths like `/Users/.../hooks/claude-code/script.mjs` that only worked on the originating OS. On Windows PowerShell, these macOS paths caused `SessionStart:startup hook error`. Fix: when `targetProjectPath` matches `PACKAGE_ROOT`, generate relative paths (`hooks/claude-code/script.mjs`) that work cross-platform. Absolute paths still used for global/external project installations
53
- - Updated `addHookToSettings()`, `removeHookFromSettings()`, `isHookInstalled()`, `isSpecificHookInstalled()` with `targetProjectPath` parameter
54
- - `removeHookFromSettings()` now matches both relative and absolute-path variants for cleanup of old installs
55
42
 
56
- ### Fixed — Pre-WebSearch Hook Hangs on PowerShell (Missing stdin Timeout)
57
- - **`pre-websearch.mjs` had no stdin timeout** — On PowerShell, stdin `end` event may never fire, causing the hook to hang indefinitely. Added 2000ms timeout that fires `handleInput()` directly if stdin doesn't close. Refactored inline handler to named `handleInput()` function
43
+ - **Hooks embedded machine-specific absolute paths** — When installed into SynaBun's own settings, hook commands contained macOS-style paths that failed on Windows PowerShell. Fix: generate relative paths when target matches `PACKAGE_ROOT`. Cleanup now matches both relative and absolute-path variants
58
44
 
59
- ### Fixed — Hooks Crash with Unhandled Errors Instead of Graceful Fallback
60
- - **All 7 hooks now handle `uncaughtException` and `unhandledRejection`** — Added `process.on()` handlers to every hook file. Each outputs valid JSON appropriate to its hook type and exits with code 0 to prevent Claude Code from showing "hook error"
61
- - `session-start.mjs` — outputs `hookSpecificOutput` with fallback instructions telling Claude to follow CLAUDE.md rules manually
62
- - `prompt-submit.mjs`, `stop.mjs`, `post-remember.mjs`, `post-plan.mjs` — output `{}`
63
- - `pre-compact.mjs` — calls `process.exit(0)` silently
45
+ ### Fixed — Pre-WebSearch Hook Hangs on PowerShell
46
+
47
+ - **Missing stdin timeout** — On PowerShell, stdin `end` event may never fire, causing the hook to hang indefinitely. Added 2000ms timeout fallback
48
+
49
+ ### Fixed — Hooks Crash with Unhandled Errors
50
+
51
+ - **All 7 hooks now handle uncaught exceptions** — Added `process.on('uncaughtException')` and `process.on('unhandledRejection')` to every hook. Each outputs valid JSON appropriate to its hook type and exits cleanly to prevent "hook error" messages
52
+
53
+ ### Changed — Browser Stream Defaults to OFF
54
+
55
+ - **Screencast streaming disabled by default** — Stream only runs when explicitly toggled ON in Settings. All 7 check sites updated across server and UI modules
56
+
57
+ ### Changed — Loop Browser: Shared System Chrome with Tabs
58
+
59
+ - **One-time Chrome restart per NI boot** — `ensureChromeDebuggable()` ensures Chrome runs with `--remote-debugging-port=9222`. Graceful AppleScript quit with polling, then `killall` fallback. Result cached — subsequent calls just probe the port
60
+ - **Shared session architecture** — Replaced per-loop Chrome restarts and 15-second UI polls with shared CDP sessions. Opens new tab per loop instead of creating isolated sessions. Loop stop closes only the loop's tab, preserving the shared session
61
+ - **MCP session fallback** — When `SYNABUN_BROWSER_SESSION` is pinned but stale, auto-selects or creates instead of failing
64
62
 
65
63
  ### Changed — Dependency Updates
66
- - **mcp-server** — Updated 44 packages within semver ranges: `@modelcontextprotocol/sdk` 1.27.1→1.29.0, `@inquirer/prompts` 8.3.0→8.3.2, `vitest` 4.1.0→4.1.2, `@types/node` 22.19.13→22.19.15
67
- - **neural-interface** — Updated 17 packages within semver ranges: `@anthropic-ai/claude-code` 2.1.71→2.1.89, `playwright` 1.58.2→1.59.0, `ws` 8.19.0→8.20.0. Fixed `lodash` prototype pollution vulnerability (GHSA-xxjr-mmjv-4gpg)
64
+
65
+ - **mcp-server** — 44 packages updated: `@modelcontextprotocol/sdk` 1.27.1→1.29.0, `@inquirer/prompts` 8.3.0→8.3.2, `vitest` 4.1.0→4.1.2, `@types/node` 22.19.13→22.19.15
66
+ - **neural-interface** — 17 packages updated: `@anthropic-ai/claude-code` 2.1.71→2.1.89, `playwright` 1.58.2→1.59.0, `ws` 8.19.0→8.20.0. Fixed `lodash` prototype pollution vulnerability
@@ -236,14 +236,14 @@ function buildBrowserNote(state) {
236
236
  '=== BROWSER ENFORCEMENT (MANDATORY) ===',
237
237
  'This automation REQUIRES the SynaBun internal browser. You MUST:',
238
238
  ];
239
- // Pin to shared browser session (system Chrome via CDP)
239
+ // Session and tab are auto-routed via SYNABUN_BROWSER_SESSION / SYNABUN_BROWSER_TAB env vars.
240
+ // Display IDs for debugging visibility but no manual pass-through needed.
240
241
  if (state.browserSessionId) {
241
- lines.push(`YOUR BROWSER SESSION ID: ${state.browserSessionId}`);
242
- lines.push('Pass sessionId: "' + state.browserSessionId + '" to ALL browser tool calls (browser_navigate, browser_click, etc.).');
242
+ lines.push(`YOUR BROWSER SESSION: ${state.browserSessionId}`);
243
243
  if (state.browserTabId) {
244
- lines.push(`YOUR BROWSER TAB ID: ${state.browserTabId}`);
245
- lines.push('This is your dedicated tab in the shared system browser. Other tabs belong to the user or other automations.');
244
+ lines.push(`YOUR BROWSER TAB: ${state.browserTabId}`);
246
245
  }
246
+ lines.push('Your session and tab are auto-configured via environment. All browser tool calls will target your dedicated tab automatically — no need to pass sessionId or tabId manually.');
247
247
  }
248
248
  lines.push(
249
249
  '1. Call `browser_navigate` with your target URL to create or reuse a browser session',
@@ -251,7 +251,7 @@ function buildBrowserNote(state) {
251
251
  '3. NEVER use Playwright plugin tools (mcp__plugin_playwright_*) — they launch a separate browser that the user cannot see',
252
252
  '4. NEVER use WebFetch or WebSearch tools for tasks that require visual browsing — use the SynaBun browser instead',
253
253
  '5. If the browser shows a login page, CAPTCHA, or any wall requiring human action: STOP immediately. Report the blocker to the user and WAIT. Do NOT abandon the browser and fall back to web search. The user can interact with the browser panel to resolve it.',
254
- 'A persistent Chrome profile is active with saved logins and cookies. The user can see and interact with the SynaBun browser panel.',
254
+ 'SynaBun launches a headful browser using the profile selected in Browser Settings. The user can see and interact with that browser session.',
255
255
  '=== END BROWSER ENFORCEMENT ===',
256
256
  );
257
257
  return lines.join('\n');
@@ -24,8 +24,9 @@ interface NiResponse {
24
24
  */
25
25
  export declare function resolveSession(sessionId?: string, autoCreate?: {
26
26
  url?: string;
27
- }): Promise<{
27
+ }, tabId?: string): Promise<{
28
28
  sessionId: string;
29
+ tabId?: string;
29
30
  } | {
30
31
  error: string;
31
32
  }>;
@@ -33,34 +34,34 @@ export declare function invalidateCache(reason: string): Promise<void>;
33
34
  export declare function listSessions(): Promise<NiResponse>;
34
35
  export declare function createSession(url?: string): Promise<NiResponse>;
35
36
  export declare function closeSession(sessionId: string): Promise<NiResponse>;
36
- export declare function navigate(sessionId: string, url: string): Promise<NiResponse>;
37
- export declare function goBack(sessionId: string): Promise<NiResponse>;
38
- export declare function goForward(sessionId: string): Promise<NiResponse>;
39
- export declare function reload(sessionId: string): Promise<NiResponse>;
40
- export declare function click(sessionId: string, selector: string, nthMatch?: number): Promise<NiResponse>;
41
- export declare function fill(sessionId: string, selector: string, value: string, nthMatch?: number): Promise<NiResponse>;
42
- export declare function type(sessionId: string, selector: string | null, text: string, nthMatch?: number): Promise<NiResponse>;
43
- export declare function hover(sessionId: string, selector: string, nthMatch?: number): Promise<NiResponse>;
44
- export declare function selectOption(sessionId: string, selector: string, value: string, nthMatch?: number): Promise<NiResponse>;
45
- export declare function pressKey(sessionId: string, key: string): Promise<NiResponse>;
37
+ export declare function navigate(sessionId: string, url: string, tabId?: string): Promise<NiResponse>;
38
+ export declare function goBack(sessionId: string, tabId?: string): Promise<NiResponse>;
39
+ export declare function goForward(sessionId: string, tabId?: string): Promise<NiResponse>;
40
+ export declare function reload(sessionId: string, tabId?: string): Promise<NiResponse>;
41
+ export declare function click(sessionId: string, selector: string, nthMatch?: number, tabId?: string): Promise<NiResponse>;
42
+ export declare function fill(sessionId: string, selector: string, value: string, nthMatch?: number, tabId?: string): Promise<NiResponse>;
43
+ export declare function type(sessionId: string, selector: string | null, text: string, nthMatch?: number, tabId?: string): Promise<NiResponse>;
44
+ export declare function hover(sessionId: string, selector: string, nthMatch?: number, tabId?: string): Promise<NiResponse>;
45
+ export declare function selectOption(sessionId: string, selector: string, value: string, nthMatch?: number, tabId?: string): Promise<NiResponse>;
46
+ export declare function pressKey(sessionId: string, key: string, tabId?: string): Promise<NiResponse>;
46
47
  export declare function scroll(sessionId: string, opts: {
47
48
  direction: string;
48
49
  distance?: number;
49
50
  selector?: string;
50
- }): Promise<NiResponse>;
51
- export declare function upload(sessionId: string, selector: string, filePaths: string[], nthMatch?: number): Promise<NiResponse>;
52
- export declare function snapshot(sessionId: string, selector?: string): Promise<NiResponse>;
53
- export declare function getContent(sessionId: string): Promise<NiResponse>;
54
- export declare function getMarkdown(sessionId: string): Promise<NiResponse>;
51
+ }, tabId?: string): Promise<NiResponse>;
52
+ export declare function upload(sessionId: string, selector: string, filePaths: string[], nthMatch?: number, tabId?: string): Promise<NiResponse>;
53
+ export declare function snapshot(sessionId: string, selector?: string, tabId?: string): Promise<NiResponse>;
54
+ export declare function getContent(sessionId: string, tabId?: string): Promise<NiResponse>;
55
+ export declare function getMarkdown(sessionId: string, tabId?: string): Promise<NiResponse>;
55
56
  export declare function fetchMarkdown(url: string, timeout?: number): Promise<NiResponse>;
56
- export declare function screenshot(sessionId: string): Promise<NiResponse>;
57
- export declare function evaluate(sessionId: string, script: string): Promise<NiResponse>;
57
+ export declare function screenshot(sessionId: string, tabId?: string): Promise<NiResponse>;
58
+ export declare function evaluate(sessionId: string, script: string, tabId?: string): Promise<NiResponse>;
58
59
  export declare function waitFor(sessionId: string, opts: {
59
60
  selector?: string;
60
61
  state?: string;
61
62
  loadState?: string;
62
63
  timeout?: number;
63
- }): Promise<NiResponse>;
64
+ }, tabId?: string): Promise<NiResponse>;
64
65
  export declare function getWhiteboard(): Promise<NiResponse>;
65
66
  export declare function addWhiteboardElements(elements: Record<string, unknown>[], coordMode?: string, layout?: string): Promise<NiResponse>;
66
67
  export declare function updateWhiteboardElement(id: string, updates: Record<string, unknown>, coordMode?: string): Promise<NiResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"neural-interface.d.ts","sourceRoot":"","sources":["../../src/services/neural-interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neural-interface.d.ts","sourceRoot":"","sources":["../../src/services/neural-interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,UAAU;IAClB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAqCD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA4CpE;AAID,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnE;AAID,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAExD;AAED,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAIrE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEzE;AAID,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAElG;AAED,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEnF;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtF;AAED,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEnF;AAID,wBAAsB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEvH;AAED,wBAAsB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAErI;AAED,wBAAsB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE3I;AAED,wBAAsB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEvH;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE7I;AAED,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAElG;AAED,wBAAsB,MAAM,CAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACjE,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,wBAAsB,MAAM,CAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CAErB;AAID,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAIxG;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvF;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGxF;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtF;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvF;AAID,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAErG;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EACjF,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,CAErB;AAID,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAEzD;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACnC,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE7E;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CAE3D;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,CAEhE;AAID,wBAAsB,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAEpD;AAED,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,wBAAsB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtE;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,CAE3D;AAID,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAExE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAErE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAE1D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAExD;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEjE;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGlF;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAEpG;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAE9E;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEnE;AAID,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAEtD;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEvE"}
@@ -7,6 +7,7 @@ const BASE_URL = process.env.NEURAL_INTERFACE_URL
7
7
  || `http://localhost:${process.env.NEURAL_PORT || '3344'}`;
8
8
  const DEFAULT_TIMEOUT = 10_000;
9
9
  const LONG_TIMEOUT = 30_000;
10
+ const SESSION_CREATE_TIMEOUT = 70_000;
10
11
  async function request(method, path, body, timeout = DEFAULT_TIMEOUT) {
11
12
  const controller = new AbortController();
12
13
  const timer = setTimeout(() => controller.abort(), timeout);
@@ -44,7 +45,9 @@ async function request(method, path, body, timeout = DEFAULT_TIMEOUT) {
44
45
  * - If 0 sessions exist and autoCreate is true, create one.
45
46
  * - If multiple sessions and no ID, return error listing them.
46
47
  */
47
- export async function resolveSession(sessionId, autoCreate) {
48
+ export async function resolveSession(sessionId, autoCreate, tabId) {
49
+ // Resolve tab ID from explicit param or environment variable
50
+ const resolvedTabId = tabId || process.env.SYNABUN_BROWSER_TAB || undefined;
48
51
  // Agent-scoped browser session — set by the agent orchestrator to pin
49
52
  // this MCP instance to a specific browser session (multi-agent isolation).
50
53
  // Verify the pinned session still exists; fall through to auto-select if gone.
@@ -53,13 +56,13 @@ export async function resolveSession(sessionId, autoCreate) {
53
56
  const check = await request('GET', '/api/browser/sessions');
54
57
  const active = (check.sessions || []).find(s => s.id === pinnedSession);
55
58
  if (active)
56
- return { sessionId: pinnedSession };
57
- // Pinned session is gone — fall through to auto-select/create below
59
+ return { sessionId: pinnedSession, tabId: resolvedTabId };
60
+ return { error: `Pinned browser session ${pinnedSession} is no longer available. Launch the automation again so SynaBun can open the selected browser profile.` };
58
61
  }
59
62
  if (sessionId) {
60
63
  // Trust the server — it will 404 if the session doesn't exist.
61
64
  // Skipping the extra GET /api/browser/sessions verification call saves a full round-trip.
62
- return { sessionId };
65
+ return { sessionId, tabId: resolvedTabId };
63
66
  }
64
67
  // List sessions
65
68
  const data = await request('GET', '/api/browser/sessions');
@@ -67,16 +70,16 @@ export async function resolveSession(sessionId, autoCreate) {
67
70
  return { error: data.error };
68
71
  const sessions = (data.sessions || []);
69
72
  if (sessions.length === 1) {
70
- return { sessionId: sessions[0].id };
73
+ return { sessionId: sessions[0].id, tabId: resolvedTabId };
71
74
  }
72
75
  if (sessions.length === 0) {
73
76
  if (autoCreate) {
74
77
  const created = await request('POST', '/api/browser/sessions', {
75
78
  url: autoCreate.url || 'about:blank',
76
- }, LONG_TIMEOUT);
79
+ }, SESSION_CREATE_TIMEOUT);
77
80
  if (created.error)
78
81
  return { error: `Failed to auto-create session: ${created.error}` };
79
- return { sessionId: created.sessionId };
82
+ return { sessionId: created.sessionId, tabId: resolvedTabId };
80
83
  }
81
84
  return { error: 'No browser sessions open. Use browser_session to create one first, or use browser_navigate with a URL to auto-create.' };
82
85
  }
@@ -100,73 +103,77 @@ export async function listSessions() {
100
103
  export async function createSession(url) {
101
104
  return request('POST', '/api/browser/sessions', {
102
105
  url: url || 'about:blank',
103
- }, LONG_TIMEOUT);
106
+ }, SESSION_CREATE_TIMEOUT);
104
107
  }
105
108
  export async function closeSession(sessionId) {
106
109
  return request('DELETE', `/api/browser/sessions/${sessionId}`);
107
110
  }
108
111
  // ── Navigation ──
109
- export async function navigate(sessionId, url) {
110
- return request('POST', `/api/browser/sessions/${sessionId}/navigate`, { url }, LONG_TIMEOUT);
112
+ export async function navigate(sessionId, url, tabId) {
113
+ return request('POST', `/api/browser/sessions/${sessionId}/navigate`, { url, ...(tabId && { tabId }) }, LONG_TIMEOUT);
111
114
  }
112
- export async function goBack(sessionId) {
113
- return request('POST', `/api/browser/sessions/${sessionId}/back`);
115
+ export async function goBack(sessionId, tabId) {
116
+ return request('POST', `/api/browser/sessions/${sessionId}/back`, { ...(tabId && { tabId }) });
114
117
  }
115
- export async function goForward(sessionId) {
116
- return request('POST', `/api/browser/sessions/${sessionId}/forward`);
118
+ export async function goForward(sessionId, tabId) {
119
+ return request('POST', `/api/browser/sessions/${sessionId}/forward`, { ...(tabId && { tabId }) });
117
120
  }
118
- export async function reload(sessionId) {
119
- return request('POST', `/api/browser/sessions/${sessionId}/reload`, undefined, LONG_TIMEOUT);
121
+ export async function reload(sessionId, tabId) {
122
+ return request('POST', `/api/browser/sessions/${sessionId}/reload`, { ...(tabId && { tabId }) }, LONG_TIMEOUT);
120
123
  }
121
124
  // ── Interaction (selector-based) ──
122
- export async function click(sessionId, selector, nthMatch) {
123
- return request('POST', `/api/browser/sessions/${sessionId}/click`, { selector, ...(nthMatch !== undefined && { nthMatch }) });
125
+ export async function click(sessionId, selector, nthMatch, tabId) {
126
+ return request('POST', `/api/browser/sessions/${sessionId}/click`, { selector, ...(nthMatch !== undefined && { nthMatch }), ...(tabId && { tabId }) });
124
127
  }
125
- export async function fill(sessionId, selector, value, nthMatch) {
126
- return request('POST', `/api/browser/sessions/${sessionId}/fill`, { selector, value, ...(nthMatch !== undefined && { nthMatch }) });
128
+ export async function fill(sessionId, selector, value, nthMatch, tabId) {
129
+ return request('POST', `/api/browser/sessions/${sessionId}/fill`, { selector, value, ...(nthMatch !== undefined && { nthMatch }), ...(tabId && { tabId }) });
127
130
  }
128
- export async function type(sessionId, selector, text, nthMatch) {
129
- return request('POST', `/api/browser/sessions/${sessionId}/type`, { selector, text, ...(nthMatch !== undefined && { nthMatch }) });
131
+ export async function type(sessionId, selector, text, nthMatch, tabId) {
132
+ return request('POST', `/api/browser/sessions/${sessionId}/type`, { selector, text, ...(nthMatch !== undefined && { nthMatch }), ...(tabId && { tabId }) });
130
133
  }
131
- export async function hover(sessionId, selector, nthMatch) {
132
- return request('POST', `/api/browser/sessions/${sessionId}/hover`, { selector, ...(nthMatch !== undefined && { nthMatch }) });
134
+ export async function hover(sessionId, selector, nthMatch, tabId) {
135
+ return request('POST', `/api/browser/sessions/${sessionId}/hover`, { selector, ...(nthMatch !== undefined && { nthMatch }), ...(tabId && { tabId }) });
133
136
  }
134
- export async function selectOption(sessionId, selector, value, nthMatch) {
135
- return request('POST', `/api/browser/sessions/${sessionId}/select`, { selector, value, ...(nthMatch !== undefined && { nthMatch }) });
137
+ export async function selectOption(sessionId, selector, value, nthMatch, tabId) {
138
+ return request('POST', `/api/browser/sessions/${sessionId}/select`, { selector, value, ...(nthMatch !== undefined && { nthMatch }), ...(tabId && { tabId }) });
136
139
  }
137
- export async function pressKey(sessionId, key) {
138
- return request('POST', `/api/browser/sessions/${sessionId}/press`, { key });
140
+ export async function pressKey(sessionId, key, tabId) {
141
+ return request('POST', `/api/browser/sessions/${sessionId}/press`, { key, ...(tabId && { tabId }) });
139
142
  }
140
- export async function scroll(sessionId, opts) {
141
- return request('POST', `/api/browser/sessions/${sessionId}/scroll`, opts);
143
+ export async function scroll(sessionId, opts, tabId) {
144
+ return request('POST', `/api/browser/sessions/${sessionId}/scroll`, { ...opts, ...(tabId && { tabId }) });
142
145
  }
143
- export async function upload(sessionId, selector, filePaths, nthMatch) {
144
- return request('POST', `/api/browser/sessions/${sessionId}/upload`, { selector, filePaths, ...(nthMatch !== undefined && { nthMatch }) }, LONG_TIMEOUT);
146
+ export async function upload(sessionId, selector, filePaths, nthMatch, tabId) {
147
+ return request('POST', `/api/browser/sessions/${sessionId}/upload`, { selector, filePaths, ...(nthMatch !== undefined && { nthMatch }), ...(tabId && { tabId }) }, LONG_TIMEOUT);
145
148
  }
146
149
  // ── Observation ──
147
- export async function snapshot(sessionId, selector) {
150
+ export async function snapshot(sessionId, selector, tabId) {
148
151
  if (selector)
149
- return request('POST', `/api/browser/sessions/${sessionId}/snapshot`, { selector });
150
- return request('GET', `/api/browser/sessions/${sessionId}/snapshot`);
152
+ return request('POST', `/api/browser/sessions/${sessionId}/snapshot`, { selector, ...(tabId && { tabId }) });
153
+ const qs = tabId ? `?tabId=${tabId}` : '';
154
+ return request('GET', `/api/browser/sessions/${sessionId}/snapshot${qs}`);
151
155
  }
152
- export async function getContent(sessionId) {
153
- return request('GET', `/api/browser/sessions/${sessionId}/content`);
156
+ export async function getContent(sessionId, tabId) {
157
+ const qs = tabId ? `?tabId=${tabId}` : '';
158
+ return request('GET', `/api/browser/sessions/${sessionId}/content${qs}`);
154
159
  }
155
- export async function getMarkdown(sessionId) {
156
- return request('GET', `/api/browser/sessions/${sessionId}/markdown`, undefined, LONG_TIMEOUT);
160
+ export async function getMarkdown(sessionId, tabId) {
161
+ const qs = tabId ? `?tabId=${tabId}` : '';
162
+ return request('GET', `/api/browser/sessions/${sessionId}/markdown${qs}`, undefined, LONG_TIMEOUT);
157
163
  }
158
164
  export async function fetchMarkdown(url, timeout) {
159
165
  return request('POST', '/api/fetch-markdown', { url, timeout }, LONG_TIMEOUT);
160
166
  }
161
- export async function screenshot(sessionId) {
162
- return request('GET', `/api/browser/sessions/${sessionId}/screenshot-base64`);
167
+ export async function screenshot(sessionId, tabId) {
168
+ const qs = tabId ? `?tabId=${tabId}` : '';
169
+ return request('GET', `/api/browser/sessions/${sessionId}/screenshot-base64${qs}`);
163
170
  }
164
171
  // ── Advanced ──
165
- export async function evaluate(sessionId, script) {
166
- return request('POST', `/api/browser/sessions/${sessionId}/evaluate`, { script }, LONG_TIMEOUT);
172
+ export async function evaluate(sessionId, script, tabId) {
173
+ return request('POST', `/api/browser/sessions/${sessionId}/evaluate`, { script, ...(tabId && { tabId }) }, LONG_TIMEOUT);
167
174
  }
168
- export async function waitFor(sessionId, opts) {
169
- return request('POST', `/api/browser/sessions/${sessionId}/wait`, opts, LONG_TIMEOUT);
175
+ export async function waitFor(sessionId, opts, tabId) {
176
+ return request('POST', `/api/browser/sessions/${sessionId}/wait`, { ...opts, ...(tabId && { tabId }) }, LONG_TIMEOUT);
170
177
  }
171
178
  // ── Whiteboard ──
172
179
  export async function getWhiteboard() {
@@ -1 +1 @@
1
- {"version":3,"file":"neural-interface.js","sourceRoot":"","sources":["../../src/services/neural-interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neural-interface.js","sourceRoot":"","sources":["../../src/services/neural-interface.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,14 @@ export declare const browserEvaluateSchema: {
3
3
  script: z.ZodOptional<z.ZodString>;
4
4
  expression: z.ZodOptional<z.ZodString>;
5
5
  sessionId: z.ZodOptional<z.ZodString>;
6
+ tabId: z.ZodOptional<z.ZodString>;
6
7
  };
7
8
  export declare const browserEvaluateDescription = "Execute JavaScript in the browser page context and return the result. Useful for reading DOM state, extracting data, or performing actions not covered by other tools.";
8
9
  export declare function handleBrowserEvaluate(args: {
9
10
  script?: string;
10
11
  expression?: string;
11
12
  sessionId?: string;
13
+ tabId?: string;
12
14
  }): Promise<{
13
15
  content: {
14
16
  type: "text";
@@ -21,6 +23,7 @@ export declare const browserWaitSchema: {
21
23
  loadState: z.ZodOptional<z.ZodEnum<["load", "domcontentloaded", "networkidle"]>>;
22
24
  timeout: z.ZodOptional<z.ZodNumber>;
23
25
  sessionId: z.ZodOptional<z.ZodString>;
26
+ tabId: z.ZodOptional<z.ZodString>;
24
27
  };
25
28
  export declare const browserWaitDescription = "Wait for an element to reach a certain state, a page load state, or a fixed timeout. Useful after navigation or clicks that trigger async content loading. Use loadState=\"networkidle\" after posting on Twitter/X or after navigation to ensure all async requests have settled.";
26
29
  export declare function handleBrowserWait(args: {
@@ -29,6 +32,7 @@ export declare function handleBrowserWait(args: {
29
32
  loadState?: string;
30
33
  timeout?: number;
31
34
  sessionId?: string;
35
+ tabId?: string;
32
36
  }): Promise<{
33
37
  content: {
34
38
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"browser-advanced.d.ts","sourceRoot":"","sources":["../../src/tools/browser-advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,qBAAqB;;;;CAIjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,2KACmI,CAAC;AAE3K,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAoB7G;AAID,eAAO,MAAM,iBAAiB;;;;;;CAQ7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,uRACiP,CAAC;AAErR,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;GAmBA;AAID,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,uGAC2D,CAAC;AAElG,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;GA4BA"}
1
+ {"version":3,"file":"browser-advanced.d.ts","sourceRoot":"","sources":["../../src/tools/browser-advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,qBAAqB;;;;;CAKjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,2KACmI,CAAC;AAE3K,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAoB7H;AAID,eAAO,MAAM,iBAAiB;;;;;;;CAS7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,uRACiP,CAAC;AAErR,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;GAmBA;AAID,eAAO,MAAM,oBAAoB;;;;CAIhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,uGAC2D,CAAC;AAElG,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;;;;;GA4BA"}
@@ -1,21 +1,23 @@
1
1
  import { z } from 'zod';
2
2
  import * as ni from '../services/neural-interface.js';
3
3
  import { text } from './response.js';
4
+ const tabIdField = z.string().optional().describe('Target a specific tab within the session. Auto-resolved from environment if omitted.');
4
5
  // ── browser_evaluate ──
5
6
  export const browserEvaluateSchema = {
6
7
  script: z.string().optional().describe('JavaScript code to execute in the browser page context. The return value will be serialized to JSON.'),
7
8
  expression: z.string().optional().describe('Alias for "script" — accepted for compatibility with Playwright conventions.'),
8
9
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
10
+ tabId: tabIdField,
9
11
  };
10
12
  export const browserEvaluateDescription = 'Execute JavaScript in the browser page context and return the result. Useful for reading DOM state, extracting data, or performing actions not covered by other tools.';
11
13
  export async function handleBrowserEvaluate(args) {
12
14
  const code = args.script || args.expression;
13
15
  if (!code)
14
16
  return text('Either "script" or "expression" is required.');
15
- const resolved = await ni.resolveSession(args.sessionId);
17
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
16
18
  if ('error' in resolved)
17
19
  return text(resolved.error);
18
- const result = await ni.evaluate(resolved.sessionId, code);
20
+ const result = await ni.evaluate(resolved.sessionId, code, resolved.tabId);
19
21
  if (result.error)
20
22
  return text(`Evaluate failed: ${result.error}`);
21
23
  let msg;
@@ -36,10 +38,11 @@ export const browserWaitSchema = {
36
38
  loadState: z.enum(['load', 'domcontentloaded', 'networkidle']).optional().describe('Page load state to wait for. Use "networkidle" after posting a tweet to confirm XHR requests settled. Takes priority over selector when provided.'),
37
39
  timeout: z.coerce.number().optional().describe('Timeout in ms (default: 10000 for element waits, 15000 for loadState).'),
38
40
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
41
+ tabId: tabIdField,
39
42
  };
40
43
  export const browserWaitDescription = 'Wait for an element to reach a certain state, a page load state, or a fixed timeout. Useful after navigation or clicks that trigger async content loading. Use loadState="networkidle" after posting on Twitter/X or after navigation to ensure all async requests have settled.';
41
44
  export async function handleBrowserWait(args) {
42
- const resolved = await ni.resolveSession(args.sessionId);
45
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
43
46
  if ('error' in resolved)
44
47
  return text(resolved.error);
45
48
  const result = await ni.waitFor(resolved.sessionId, {
@@ -47,7 +50,7 @@ export async function handleBrowserWait(args) {
47
50
  state: args.state,
48
51
  loadState: args.loadState,
49
52
  timeout: args.timeout,
50
- });
53
+ }, resolved.tabId);
51
54
  if (result.error)
52
55
  return text(`Wait failed: ${result.error}`);
53
56
  if (args.loadState) {
@@ -1 +1 @@
1
- {"version":3,"file":"browser-advanced.js","sourceRoot":"","sources":["../../src/tools/browser-advanced.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-advanced.js","sourceRoot":"","sources":["../../src/tools/browser-advanced.ts"],"names":[],"mappings":"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"}