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
@@ -3,12 +3,14 @@ export declare const browserClickSchema: {
3
3
  selector: z.ZodString;
4
4
  nthMatch: z.ZodOptional<z.ZodNumber>;
5
5
  sessionId: z.ZodOptional<z.ZodString>;
6
+ tabId: z.ZodOptional<z.ZodString>;
6
7
  };
7
8
  export declare const browserClickDescription: string;
8
9
  export declare function handleBrowserClick(args: {
9
10
  selector: string;
10
11
  nthMatch?: number;
11
12
  sessionId?: string;
13
+ tabId?: string;
12
14
  }): Promise<{
13
15
  content: {
14
16
  type: "text";
@@ -20,6 +22,7 @@ export declare const browserFillSchema: {
20
22
  value: z.ZodString;
21
23
  nthMatch: z.ZodOptional<z.ZodNumber>;
22
24
  sessionId: z.ZodOptional<z.ZodString>;
25
+ tabId: z.ZodOptional<z.ZodString>;
23
26
  };
24
27
  export declare const browserFillDescription: string;
25
28
  export declare function handleBrowserFill(args: {
@@ -27,6 +30,7 @@ export declare function handleBrowserFill(args: {
27
30
  value: string;
28
31
  nthMatch?: number;
29
32
  sessionId?: string;
33
+ tabId?: string;
30
34
  }): Promise<{
31
35
  content: {
32
36
  type: "text";
@@ -38,6 +42,7 @@ export declare const browserTypeSchema: {
38
42
  text: z.ZodString;
39
43
  nthMatch: z.ZodOptional<z.ZodNumber>;
40
44
  sessionId: z.ZodOptional<z.ZodString>;
45
+ tabId: z.ZodOptional<z.ZodString>;
41
46
  };
42
47
  export declare const browserTypeDescription: string;
43
48
  export declare function handleBrowserType(args: {
@@ -45,6 +50,7 @@ export declare function handleBrowserType(args: {
45
50
  text: string;
46
51
  nthMatch?: number;
47
52
  sessionId?: string;
53
+ tabId?: string;
48
54
  }): Promise<{
49
55
  content: {
50
56
  type: "text";
@@ -55,12 +61,14 @@ export declare const browserHoverSchema: {
55
61
  selector: z.ZodString;
56
62
  nthMatch: z.ZodOptional<z.ZodNumber>;
57
63
  sessionId: z.ZodOptional<z.ZodString>;
64
+ tabId: z.ZodOptional<z.ZodString>;
58
65
  };
59
66
  export declare const browserHoverDescription = "Hover over an element. Useful for revealing dropdowns, tooltips, or hover-triggered content. Accepts Playwright selectors.";
60
67
  export declare function handleBrowserHover(args: {
61
68
  selector: string;
62
69
  nthMatch?: number;
63
70
  sessionId?: string;
71
+ tabId?: string;
64
72
  }): Promise<{
65
73
  content: {
66
74
  type: "text";
@@ -72,6 +80,7 @@ export declare const browserSelectSchema: {
72
80
  value: z.ZodString;
73
81
  nthMatch: z.ZodOptional<z.ZodNumber>;
74
82
  sessionId: z.ZodOptional<z.ZodString>;
83
+ tabId: z.ZodOptional<z.ZodString>;
75
84
  };
76
85
  export declare const browserSelectDescription = "Select an option from a <select> dropdown by CSS selector and option value.";
77
86
  export declare function handleBrowserSelect(args: {
@@ -79,6 +88,7 @@ export declare function handleBrowserSelect(args: {
79
88
  value: string;
80
89
  nthMatch?: number;
81
90
  sessionId?: string;
91
+ tabId?: string;
82
92
  }): Promise<{
83
93
  content: {
84
94
  type: "text";
@@ -88,11 +98,13 @@ export declare function handleBrowserSelect(args: {
88
98
  export declare const browserPressSchema: {
89
99
  key: z.ZodString;
90
100
  sessionId: z.ZodOptional<z.ZodString>;
101
+ tabId: z.ZodOptional<z.ZodString>;
91
102
  };
92
103
  export declare const browserPressDescription = "Press a keyboard key or key combination. Supports modifiers like Control+A, Shift+Enter, etc.";
93
104
  export declare function handleBrowserPress(args: {
94
105
  key: string;
95
106
  sessionId?: string;
107
+ tabId?: string;
96
108
  }): Promise<{
97
109
  content: {
98
110
  type: "text";
@@ -104,6 +116,7 @@ export declare const browserScrollSchema: {
104
116
  distance: z.ZodOptional<z.ZodNumber>;
105
117
  selector: z.ZodOptional<z.ZodString>;
106
118
  sessionId: z.ZodOptional<z.ZodString>;
119
+ tabId: z.ZodOptional<z.ZodString>;
107
120
  };
108
121
  export declare const browserScrollDescription: string;
109
122
  export declare function handleBrowserScroll(args: {
@@ -111,6 +124,7 @@ export declare function handleBrowserScroll(args: {
111
124
  distance?: number;
112
125
  selector?: string;
113
126
  sessionId?: string;
127
+ tabId?: string;
114
128
  }): Promise<{
115
129
  content: {
116
130
  type: "text";
@@ -122,6 +136,7 @@ export declare const browserUploadSchema: {
122
136
  filePaths: z.ZodArray<z.ZodString, "many">;
123
137
  nthMatch: z.ZodOptional<z.ZodNumber>;
124
138
  sessionId: z.ZodOptional<z.ZodString>;
139
+ tabId: z.ZodOptional<z.ZodString>;
125
140
  };
126
141
  export declare const browserUploadDescription: string;
127
142
  export declare function handleBrowserUpload(args: {
@@ -129,6 +144,7 @@ export declare function handleBrowserUpload(args: {
129
144
  filePaths: string[];
130
145
  nthMatch?: number;
131
146
  sessionId?: string;
147
+ tabId?: string;
132
148
  }): Promise<{
133
149
  content: {
134
150
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"browser-interact.d.ts","sourceRoot":"","sources":["../../src/tools/browser-interact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAiDyI,CAAA;AAE7K,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQzG;AAID,eAAO,MAAM,iBAAiB;;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAE6J,CAAC;AAEjM,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GASvH;AAID,eAAO,MAAM,iBAAiB;;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,QASiQ,CAAC;AAErS,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAUvH;AAID,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,+HAC0F,CAAC;AAE/H,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GASzG;AAID,eAAO,MAAM,mBAAmB;;;;;CAK/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,gFAC0C,CAAC;AAEhF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GASzH;AAID,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,kGAC6D,CAAC;AAElG,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GASjF;AAID,eAAO,MAAM,mBAAmB;;;;;CAK/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAGiU,CAAC;AAEvW,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAS9H;AAID,eAAO,MAAM,mBAAmB;;;;;CAK/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAGqI,CAAC;AAE3K,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQ/H"}
1
+ {"version":3,"file":"browser-interact.d.ts","sourceRoot":"","sources":["../../src/tools/browser-interact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAiDyI,CAAA;AAE7K,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQzH;AAID,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAE6J,CAAC;AAEjM,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GASvI;AAID,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,QASiQ,CAAC;AAErS,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAUvI;AAID,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,+HAC0F,CAAC;AAE/H,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GASzH;AAID,eAAO,MAAM,mBAAmB;;;;;;CAM/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,gFAC0C,CAAC;AAEhF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GASzI;AAID,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF,eAAO,MAAM,uBAAuB,kGAC6D,CAAC;AAElG,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GASjG;AAID,eAAO,MAAM,mBAAmB;;;;;;CAM/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAGiU,CAAC;AAEvW,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAS9I;AAID,eAAO,MAAM,mBAAmB;;;;;;CAM/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAGqI,CAAC;AAE3K,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQ/I"}
@@ -1,6 +1,7 @@
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
  function formatClickHints(result) {
5
6
  const hints = result.hints;
6
7
  if (!hints?.length)
@@ -18,6 +19,7 @@ export const browserClickSchema = {
18
19
  selector: z.string().describe('Playwright selector for the element to click. Use CSS selectors (e.g. "button.submit", "#login"), text selectors (e.g. \'text="Sign in"\'), or Playwright extensions like \'button:has-text("Retry")\'. NEVER use :contains() — use :has-text() instead.'),
19
20
  nthMatch: z.coerce.number().int().min(0).optional().describe('If the selector matches multiple elements, click the Nth one (0-indexed). Facebook: composer trigger appears in sidebar + main — use nthMatch: 0 to click the first match.'),
20
21
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
22
+ tabId: tabIdField,
21
23
  };
22
24
  export const browserClickDescription = 'Click an element on the page. Accepts Playwright selectors: CSS selectors, text="...", :has-text("..."), role=button[name="..."], or [data-testid="..."]. Use browser_snapshot first to identify interactive elements. ' +
23
25
  'Twitter/X stable selectors: [data-testid="tweetButton"] (post), [data-testid="like"], [data-testid="retweet"], [data-testid="reply"], [data-testid="SideNav_NewTweet_Button"] (compose FAB). ' +
@@ -69,10 +71,10 @@ export const browserClickDescription = 'Click an element on the page. Accepts Pl
69
71
  'Messaging compose: .msg-form__contenteditable — use browser_fill to type, then click .msg-form__send-button to send. ' +
70
72
  'Nav: a[href*="/feed/"] (Home), a[href*="/mynetwork/"] (Network), a[href*="/jobs/"] (Jobs), a[href*="/messaging/"] (Messages), a[href*="/notifications/"] (Notifications).';
71
73
  export async function handleBrowserClick(args) {
72
- const resolved = await ni.resolveSession(args.sessionId);
74
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
73
75
  if ('error' in resolved)
74
76
  return text(resolved.error);
75
- const result = await ni.click(resolved.sessionId, args.selector, args.nthMatch);
77
+ const result = await ni.click(resolved.sessionId, args.selector, args.nthMatch, resolved.tabId);
76
78
  if (result.error)
77
79
  return text(`Click failed: ${result.error}${formatClickHints(result)}`);
78
80
  return text(`Clicked "${args.selector}" — now at ${result.url} "${result.title}"`);
@@ -83,14 +85,15 @@ export const browserFillSchema = {
83
85
  value: z.string().describe('The text value to fill into the element. Clears existing content first.'),
84
86
  nthMatch: z.coerce.number().int().min(0).optional().describe('If the selector matches multiple elements, fill the Nth one (0-indexed).'),
85
87
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
88
+ tabId: tabIdField,
86
89
  };
87
90
  export const browserFillDescription = 'Clear an input field and fill it with new text. Accepts Playwright selectors: CSS, text="...", :has-text("..."), [data-testid="..."]. Twitter/X: compose box is [data-testid="tweetTextarea_0"], search is [data-testid="SearchBox_Search_Input"]. TikTok search: [data-e2e="search-user-input"]. WhatsApp search: input[aria-label="Pesquisar ou começar uma nova conversa"]. ' +
88
91
  'Instagram: comment box is textarea[aria-label="Adicione um comentário..."] (PT) / textarea[aria-label="Add a comment…"] (EN). Use browser_fill for comment text, then press Enter to submit.';
89
92
  export async function handleBrowserFill(args) {
90
- const resolved = await ni.resolveSession(args.sessionId);
93
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
91
94
  if ('error' in resolved)
92
95
  return text(resolved.error);
93
- const result = await ni.fill(resolved.sessionId, args.selector, args.value, args.nthMatch);
96
+ const result = await ni.fill(resolved.sessionId, args.selector, args.value, args.nthMatch, resolved.tabId);
94
97
  if (result.error)
95
98
  return text(`Fill failed: ${result.error}${formatClickHints(result)}`);
96
99
  const location = result.url ? ` — ${result.url} "${result.title}"` : '';
@@ -102,6 +105,7 @@ export const browserTypeSchema = {
102
105
  text: z.string().describe('The text to type character by character (appends to existing content).'),
103
106
  nthMatch: z.coerce.number().int().min(0).optional().describe('If the selector matches multiple elements, type into the Nth one (0-indexed). Twitter/X reply dialog has 2 tweetTextarea_0 elements — use nthMatch to disambiguate.'),
104
107
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
108
+ tabId: tabIdField,
105
109
  };
106
110
  export const browserTypeDescription = 'Type text character by character (simulates real keystrokes, appends to existing content). Provide a selector to target an element, or omit to type into whatever is currently focused. ' +
107
111
  'Prefer browser_type over browser_fill for contenteditable editors — both Twitter/X ([data-testid="tweetTextarea_0"]) and Facebook use them. ' +
@@ -113,10 +117,10 @@ export const browserTypeDescription = 'Type text character by character (simulat
113
117
  'WhatsApp status text composer: .lexical-rich-text-input div[contenteditable="true"]. ' +
114
118
  'Instagram: Comment on post pages uses a native textarea (NOT contenteditable) — use browser_fill instead of browser_type. For DMs, navigate to instagram.com/direct/inbox/ first. Search: click svg[aria-label="Pesquisa"] in sidebar to open search panel, then type in the input that appears.';
115
119
  export async function handleBrowserType(args) {
116
- const resolved = await ni.resolveSession(args.sessionId);
120
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
117
121
  if ('error' in resolved)
118
122
  return text(resolved.error);
119
- const result = await ni.type(resolved.sessionId, args.selector ?? null, args.text, args.nthMatch);
123
+ const result = await ni.type(resolved.sessionId, args.selector ?? null, args.text, args.nthMatch, resolved.tabId);
120
124
  if (result.error)
121
125
  return text(`Type failed: ${result.error}${formatClickHints(result)}`);
122
126
  const target = args.selector ? `"${args.selector}"` : 'focused element';
@@ -128,13 +132,14 @@ export const browserHoverSchema = {
128
132
  selector: z.string().describe('Playwright selector for the element to hover over (CSS, text="...", :has-text("...")).'),
129
133
  nthMatch: z.coerce.number().int().min(0).optional().describe('If the selector matches multiple elements, hover over the Nth one (0-indexed).'),
130
134
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
135
+ tabId: tabIdField,
131
136
  };
132
137
  export const browserHoverDescription = 'Hover over an element. Useful for revealing dropdowns, tooltips, or hover-triggered content. Accepts Playwright selectors.';
133
138
  export async function handleBrowserHover(args) {
134
- const resolved = await ni.resolveSession(args.sessionId);
139
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
135
140
  if ('error' in resolved)
136
141
  return text(resolved.error);
137
- const result = await ni.hover(resolved.sessionId, args.selector, args.nthMatch);
142
+ const result = await ni.hover(resolved.sessionId, args.selector, args.nthMatch, resolved.tabId);
138
143
  if (result.error)
139
144
  return text(`Hover failed: ${result.error}${formatClickHints(result)}`);
140
145
  const location = result.url ? ` — ${result.url} "${result.title}"` : '';
@@ -146,13 +151,14 @@ export const browserSelectSchema = {
146
151
  value: z.string().describe('The option value to select.'),
147
152
  nthMatch: z.coerce.number().int().min(0).optional().describe('If the selector matches multiple elements, select from the Nth one (0-indexed).'),
148
153
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
154
+ tabId: tabIdField,
149
155
  };
150
156
  export const browserSelectDescription = 'Select an option from a <select> dropdown by CSS selector and option value.';
151
157
  export async function handleBrowserSelect(args) {
152
- const resolved = await ni.resolveSession(args.sessionId);
158
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
153
159
  if ('error' in resolved)
154
160
  return text(resolved.error);
155
- const result = await ni.selectOption(resolved.sessionId, args.selector, args.value, args.nthMatch);
161
+ const result = await ni.selectOption(resolved.sessionId, args.selector, args.value, args.nthMatch, resolved.tabId);
156
162
  if (result.error)
157
163
  return text(`Select failed: ${result.error}${formatClickHints(result)}`);
158
164
  const location = result.url ? ` — ${result.url} "${result.title}"` : '';
@@ -162,13 +168,14 @@ export async function handleBrowserSelect(args) {
162
168
  export const browserPressSchema = {
163
169
  key: z.string().describe('Key or key combo to press (e.g. "Enter", "Tab", "Control+A", "Escape", "ArrowDown").'),
164
170
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
171
+ tabId: tabIdField,
165
172
  };
166
173
  export const browserPressDescription = 'Press a keyboard key or key combination. Supports modifiers like Control+A, Shift+Enter, etc.';
167
174
  export async function handleBrowserPress(args) {
168
- const resolved = await ni.resolveSession(args.sessionId);
175
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
169
176
  if ('error' in resolved)
170
177
  return text(resolved.error);
171
- const result = await ni.pressKey(resolved.sessionId, args.key);
178
+ const result = await ni.pressKey(resolved.sessionId, args.key, resolved.tabId);
172
179
  if (result.error)
173
180
  return text(`Press failed: ${result.error}`);
174
181
  const location = result.url ? ` — ${result.url} "${result.title}"` : '';
@@ -180,15 +187,16 @@ export const browserScrollSchema = {
180
187
  distance: z.coerce.number().optional().describe('Pixels to scroll (default: 500).'),
181
188
  selector: z.string().optional().describe('Scroll within a specific element instead of the page. Twitter: [data-testid="primaryColumn"] for main feed. Facebook: [role="feed"] for group/page post feed. TikTok: [data-e2e="comment-list"] for comment panel, [data-tt="components_PostTable_Container"] for Studio content table. WhatsApp: [aria-label="Lista de conversas"] for chat list sidebar, [role="application"] or the main chat panel for message history.'),
182
189
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
190
+ tabId: tabIdField,
183
191
  };
184
192
  export const browserScrollDescription = 'Scroll the page or a specific element. Essential for infinite scroll feeds. Twitter/X: direction "down" with distance 800–1500 to load more tweets. Facebook: use selector "[role=\\"feed\\"]" to scroll within the post feed. TikTok feed: scroll "down" 800–1000px to advance to the next video. TikTok comment panel: use selector "[data-e2e=\\"comment-list\\"]". TikTok Studio table: use selector "[data-tt=\\"components_PostTable_Container\\"]". WhatsApp chat list: use selector "[aria-label=\\"Lista de conversas\\"]". WhatsApp message history: scroll "up" to load older messages. ' +
185
193
  'Instagram: Home feed — scroll down 800–1200px to load more posts. Profile grid — scroll down to load more posts. Reels — scroll down 800px to advance to next reel. Post page comments — scroll within the comment panel to load older comments. Explore page — scroll down to load more grid posts. ' +
186
194
  'LinkedIn: Feed — scroll down 800–1200px to load more posts. Profile — scroll down to load more sections. Notifications — scroll down for older notifications. Messaging conversations sidebar — scroll within .msg-conversations-container. Search results — scroll down for more results. My Network suggestions — scroll down for more people to follow/connect.';
187
195
  export async function handleBrowserScroll(args) {
188
- const resolved = await ni.resolveSession(args.sessionId);
196
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
189
197
  if ('error' in resolved)
190
198
  return text(resolved.error);
191
- const result = await ni.scroll(resolved.sessionId, { direction: args.direction, distance: args.distance, selector: args.selector });
199
+ const result = await ni.scroll(resolved.sessionId, { direction: args.direction, distance: args.distance, selector: args.selector }, resolved.tabId);
192
200
  if (result.error)
193
201
  return text(`Scroll failed: ${result.error}`);
194
202
  const target = args.selector ? `"${args.selector}"` : 'page';
@@ -200,15 +208,16 @@ export const browserUploadSchema = {
200
208
  filePaths: z.array(z.string()).describe('Absolute file paths to upload. Twitter supports up to 4 images or 1 video per tweet.'),
201
209
  nthMatch: z.coerce.number().int().min(0).optional().describe('If the selector matches multiple file inputs, upload to the Nth one (0-indexed).'),
202
210
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
211
+ tabId: tabIdField,
203
212
  };
204
213
  export const browserUploadDescription = 'Upload one or more files via a file input element. For Twitter/X: click the media button first to reveal the hidden file input, then use selector \'input[data-testid="fileInput"]\'. ' +
205
214
  'TikTok Studio: click button:has-text("Selecionar vídeo") first, then use selector \'input[type="file"]\' — supports a single video file. ' +
206
215
  'Instagram: Click svg[aria-label="Novo post"] in sidebar to open the create dialog, then use browser_upload on the file input that appears. Supports images and videos.';
207
216
  export async function handleBrowserUpload(args) {
208
- const resolved = await ni.resolveSession(args.sessionId);
217
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
209
218
  if ('error' in resolved)
210
219
  return text(resolved.error);
211
- const result = await ni.upload(resolved.sessionId, args.selector, args.filePaths, args.nthMatch);
220
+ const result = await ni.upload(resolved.sessionId, args.selector, args.filePaths, args.nthMatch, resolved.tabId);
212
221
  if (result.error)
213
222
  return text(`Upload failed: ${result.error}${formatClickHints(result)}`);
214
223
  return text(`Uploaded ${args.filePaths.length} file(s) via "${args.selector}" — now at ${result.url} "${result.title}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"browser-interact.js","sourceRoot":"","sources":["../../src/tools/browser-interact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-interact.js","sourceRoot":"","sources":["../../src/tools/browser-interact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sFAAsF,CAAC,CAAC;AAE1I,SAAS,gBAAgB,CAAC,MAA+B;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAkG,CAAC;IACxH,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,GAAG,GAAG,2CAA2C,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,CAAC;QACpE,GAAG,IAAI,OAAO,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;IACtD,CAAC;IACD,GAAG,IAAI,mDAAmD,CAAC;IAC3D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,sBAAsB;AAEtB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0PAA0P,CAAC;IACzR,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4KAA4K,CAAC;IAC1O,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAClC,yNAAyN;IACzN,+LAA+L;IAC/L,wPAAwP;IACxP,2NAA2N;IAC3N,uIAAuI;IACvI,2GAA2G;IAC3G,qUAAqU;IACrU,iGAAiG;IACjG,uCAAuC;IACvC,kGAAkG;IAClG,uHAAuH;IACvH,gHAAgH;IAChH,oMAAoM;IACpM,uGAAuG;IACvG,kEAAkE;IAClE,uFAAuF;IACvF,mOAAmO;IACnO,4IAA4I;IAC5I,uMAAuM;IACvM,qJAAqJ;IACrJ,wJAAwJ;IACxJ,qHAAqH;IACrH,sMAAsM;IACtM,2HAA2H;IAC3H,8HAA8H;IAC9H,uHAAuH;IACvH,+GAA+G;IAC/G,gHAAgH;IAChH,oIAAoI;IACpI,8KAA8K;IAC9K,sIAAsI;IACtI,uFAAuF;IACvF,8DAA8D;IAC9D,4GAA4G;IAC5G,mHAAmH;IACnH,mFAAmF;IACnF,gFAAgF;IAChF,yHAAyH;IACzH,+GAA+G;IAC/G,qGAAqG;IACrG,oHAAoH;IACpH,yHAAyH;IACzH,8GAA8G;IAC9G,wDAAwD;IACxD,gHAAgH;IAChH,gGAAgG;IAChG,+EAA+E;IAC/E,uHAAuH;IACvH,2KAA2K,CAAA;AAE7K,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAiF;IACxH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChG,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,iBAAiB,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE1F,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,cAAc,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AACrF,CAAC;AAED,qBAAqB;AAErB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iIAAiI,CAAC;IAChK,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IACrG,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;IACxI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GACjC,iXAAiX;IACjX,8LAA8L,CAAC;AAEjM,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAgG;IACtI,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3G,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,gBAAgB,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,qBAAqB;AAErB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+HAA+H,CAAC;IACzK,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;IACnG,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qKAAqK,CAAC;IACnO,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GACjC,0LAA0L;IAC1L,8IAA8I;IAC9I,mFAAmF;IACnF,iLAAiL;IACjL,oaAAoa;IACpa,8HAA8H;IAC9H,uJAAuJ;IACvJ,uFAAuF;IACvF,kSAAkS,CAAC;AAErS,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAgG;IACtI,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClH,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,gBAAgB,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,sBAAsB;AAEtB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wFAAwF,CAAC;IACvH,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;IAC9I,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAClC,4HAA4H,CAAC;AAE/H,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAiF;IACxH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChG,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,iBAAiB,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE1F,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,uBAAuB;AAEvB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;IAC/I,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GACnC,6EAA6E,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAgG;IACxI,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnH,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,kBAAkB,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE3F,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,sBAAsB;AAEtB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sFAAsF,CAAC;IAChH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAClC,+FAA+F,CAAC;AAElG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAyD;IAChG,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,iBAAiB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,uBAAuB;AAEvB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6ZAA6Z,CAAC;IACvc,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GACnC,qkBAAqkB;IACrkB,uSAAuS;IACvS,oWAAoW,CAAC;AAEvW,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAqG;IAC7I,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpJ,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,kBAAkB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,SAAS,MAAM,aAAa,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAC5H,CAAC;AAED,uBAAuB;AAEvB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8FAA8F,CAAC;IAC7H,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,sFAAsF,CAAC;IAC/H,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kFAAkF,CAAC;IAChJ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAChH,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GACnC,wLAAwL;IACxL,2IAA2I;IAC3I,wKAAwK,CAAC;AAE3K,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAsG;IAC9I,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjH,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,kBAAkB,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE3F,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,iBAAiB,IAAI,CAAC,QAAQ,cAAc,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AAC3H,CAAC"}
@@ -2,11 +2,13 @@ import { z } from 'zod';
2
2
  export declare const browserNavigateSchema: {
3
3
  url: z.ZodString;
4
4
  sessionId: z.ZodOptional<z.ZodString>;
5
+ tabId: z.ZodOptional<z.ZodString>;
5
6
  };
6
7
  export declare const browserNavigateDescription = "Navigate the browser to a URL. If no browser session exists, one is created automatically.";
7
8
  export declare function handleBrowserNavigate(args: {
8
9
  url: string;
9
10
  sessionId?: string;
11
+ tabId?: string;
10
12
  }): Promise<{
11
13
  content: {
12
14
  type: "text";
@@ -15,10 +17,12 @@ export declare function handleBrowserNavigate(args: {
15
17
  }>;
16
18
  export declare const browserGoBackSchema: {
17
19
  sessionId: z.ZodOptional<z.ZodString>;
20
+ tabId: z.ZodOptional<z.ZodString>;
18
21
  };
19
22
  export declare const browserGoBackDescription = "Go back to the previous page in browser history.";
20
23
  export declare function handleBrowserGoBack(args: {
21
24
  sessionId?: string;
25
+ tabId?: string;
22
26
  }): Promise<{
23
27
  content: {
24
28
  type: "text";
@@ -27,10 +31,12 @@ export declare function handleBrowserGoBack(args: {
27
31
  }>;
28
32
  export declare const browserGoForwardSchema: {
29
33
  sessionId: z.ZodOptional<z.ZodString>;
34
+ tabId: z.ZodOptional<z.ZodString>;
30
35
  };
31
36
  export declare const browserGoForwardDescription = "Go forward to the next page in browser history.";
32
37
  export declare function handleBrowserGoForward(args: {
33
38
  sessionId?: string;
39
+ tabId?: string;
34
40
  }): Promise<{
35
41
  content: {
36
42
  type: "text";
@@ -39,10 +45,12 @@ export declare function handleBrowserGoForward(args: {
39
45
  }>;
40
46
  export declare const browserReloadSchema: {
41
47
  sessionId: z.ZodOptional<z.ZodString>;
48
+ tabId: z.ZodOptional<z.ZodString>;
42
49
  };
43
50
  export declare const browserReloadDescription = "Reload the current page. Useful after making changes or when content is stale.";
44
51
  export declare function handleBrowserReload(args: {
45
52
  sessionId?: string;
53
+ tabId?: string;
46
54
  }): Promise<{
47
55
  content: {
48
56
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"browser-navigate.d.ts","sourceRoot":"","sources":["../../src/tools/browser-navigate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,qBAAqB;;;CAGjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,+FACuD,CAAC;AAE/F,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQpF;AAID,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,qDAAqD,CAAC;AAE3F,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQrE;AAID,eAAO,MAAM,sBAAsB;;CAElC,CAAC;AAEF,eAAO,MAAM,2BAA2B,oDAAoD,CAAC;AAE7F,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQxE;AAID,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,mFAAmF,CAAC;AAEzH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQrE"}
1
+ {"version":3,"file":"browser-navigate.d.ts","sourceRoot":"","sources":["../../src/tools/browser-navigate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,qBAAqB;;;;CAIjC,CAAC;AAEF,eAAO,MAAM,0BAA0B,+FACuD,CAAC;AAE/F,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQpG;AAID,eAAO,MAAM,mBAAmB;;;CAG/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,qDAAqD,CAAC;AAE3F,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQrF;AAID,eAAO,MAAM,sBAAsB;;;CAGlC,CAAC;AAEF,eAAO,MAAM,2BAA2B,oDAAoD,CAAC;AAE7F,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQxF;AAID,eAAO,MAAM,mBAAmB;;;CAG/B,CAAC;AAEF,eAAO,MAAM,wBAAwB,mFAAmF,CAAC;AAEzH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;GAQrF"}
@@ -1,17 +1,19 @@
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_navigate ──
5
6
  export const browserNavigateSchema = {
6
7
  url: z.string().describe('The URL to navigate to.'),
7
8
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session or creates a new one.'),
9
+ tabId: tabIdField,
8
10
  };
9
11
  export const browserNavigateDescription = 'Navigate the browser to a URL. If no browser session exists, one is created automatically.';
10
12
  export async function handleBrowserNavigate(args) {
11
- const resolved = await ni.resolveSession(args.sessionId, { url: args.url });
13
+ const resolved = await ni.resolveSession(args.sessionId, { url: args.url }, args.tabId);
12
14
  if ('error' in resolved)
13
15
  return text(resolved.error);
14
- const result = await ni.navigate(resolved.sessionId, args.url);
16
+ const result = await ni.navigate(resolved.sessionId, args.url, resolved.tabId);
15
17
  if (result.error)
16
18
  return text(`Navigation failed: ${result.error}`);
17
19
  return text(`Navigated to ${result.url} — "${result.title}"`);
@@ -19,13 +21,14 @@ export async function handleBrowserNavigate(args) {
19
21
  // ── browser_go_back ──
20
22
  export const browserGoBackSchema = {
21
23
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
24
+ tabId: tabIdField,
22
25
  };
23
26
  export const browserGoBackDescription = 'Go back to the previous page in browser history.';
24
27
  export async function handleBrowserGoBack(args) {
25
- const resolved = await ni.resolveSession(args.sessionId);
28
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
26
29
  if ('error' in resolved)
27
30
  return text(resolved.error);
28
- const result = await ni.goBack(resolved.sessionId);
31
+ const result = await ni.goBack(resolved.sessionId, resolved.tabId);
29
32
  if (result.error)
30
33
  return text(`Go back failed: ${result.error}`);
31
34
  return text(`Went back to ${result.url} — "${result.title}"`);
@@ -33,13 +36,14 @@ export async function handleBrowserGoBack(args) {
33
36
  // ── browser_go_forward ──
34
37
  export const browserGoForwardSchema = {
35
38
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
39
+ tabId: tabIdField,
36
40
  };
37
41
  export const browserGoForwardDescription = 'Go forward to the next page in browser history.';
38
42
  export async function handleBrowserGoForward(args) {
39
- const resolved = await ni.resolveSession(args.sessionId);
43
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
40
44
  if ('error' in resolved)
41
45
  return text(resolved.error);
42
- const result = await ni.goForward(resolved.sessionId);
46
+ const result = await ni.goForward(resolved.sessionId, resolved.tabId);
43
47
  if (result.error)
44
48
  return text(`Go forward failed: ${result.error}`);
45
49
  return text(`Went forward to ${result.url} — "${result.title}"`);
@@ -47,13 +51,14 @@ export async function handleBrowserGoForward(args) {
47
51
  // ── browser_reload ──
48
52
  export const browserReloadSchema = {
49
53
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
54
+ tabId: tabIdField,
50
55
  };
51
56
  export const browserReloadDescription = 'Reload the current page. Useful after making changes or when content is stale.';
52
57
  export async function handleBrowserReload(args) {
53
- const resolved = await ni.resolveSession(args.sessionId);
58
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
54
59
  if ('error' in resolved)
55
60
  return text(resolved.error);
56
- const result = await ni.reload(resolved.sessionId);
61
+ const result = await ni.reload(resolved.sessionId, resolved.tabId);
57
62
  if (result.error)
58
63
  return text(`Reload failed: ${result.error}`);
59
64
  return text(`Reloaded — now at ${result.url} "${result.title}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"browser-navigate.js","sourceRoot":"","sources":["../../src/tools/browser-navigate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-navigate.js","sourceRoot":"","sources":["../../src/tools/browser-navigate.ts"],"names":[],"mappings":"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"}