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
@@ -1,10 +1,12 @@
1
1
  import { z } from 'zod';
2
2
  import * as ni from '../services/neural-interface.js';
3
3
  import { text, image } 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_snapshot ──
5
6
  export const browserSnapshotSchema = {
6
7
  selector: z.string().optional().describe('Scope snapshot to a specific element\'s subtree. Dramatically reduces output on complex pages. Twitter: [data-testid="primaryColumn"] for main feed, [data-testid="tweet"] for a single tweet card.'),
7
8
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
9
+ tabId: tabIdField,
8
10
  };
9
11
  export const browserSnapshotDescription = 'Get an accessibility tree snapshot of the current page. Returns a structured text representation of all visible elements with their ARIA roles, names, and values. This is the primary and most token-efficient way to "see" the page — prefer this over screenshots. ' +
10
12
  'Twitter/X: scope to [data-testid="primaryColumn"] for main feed, [data-testid="tweet"] for a single tweet card. ' +
@@ -47,10 +49,10 @@ function formatSnapshotNode(node, indent = 0) {
47
49
  return line;
48
50
  }
49
51
  export async function handleBrowserSnapshot(args) {
50
- const resolved = await ni.resolveSession(args.sessionId);
52
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
51
53
  if ('error' in resolved)
52
54
  return text(resolved.error);
53
- const result = await ni.snapshot(resolved.sessionId, args.selector);
55
+ const result = await ni.snapshot(resolved.sessionId, args.selector, resolved.tabId);
54
56
  if (result.error)
55
57
  return text(`Snapshot failed: ${result.error}`);
56
58
  const tree = result.snapshot;
@@ -69,14 +71,15 @@ export async function handleBrowserSnapshot(args) {
69
71
  export const browserContentSchema = {
70
72
  format: z.enum(['text', 'markdown']).optional().default('text').describe('Output format. "text" returns raw innerText (fast, no structure). "markdown" returns clean markdown with headings, links, and lists preserved — strips nav/header/footer/ads automatically. Markdown is better for LLM consumption.'),
71
73
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
74
+ tabId: tabIdField,
72
75
  };
73
76
  export const browserContentDescription = 'Get the content of the current page. Set format="markdown" for clean markdown with structure preserved (headings, links, lists) — nav/header/footer/ads stripped automatically. Default format="text" returns raw visible text. Markdown is preferred for LLM consumption — up to 80% more token-efficient than raw HTML.';
74
77
  export async function handleBrowserContent(args) {
75
- const resolved = await ni.resolveSession(args.sessionId);
78
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
76
79
  if ('error' in resolved)
77
80
  return text(resolved.error);
78
81
  if (args.format === 'markdown') {
79
- const result = await ni.getMarkdown(resolved.sessionId);
82
+ const result = await ni.getMarkdown(resolved.sessionId, resolved.tabId);
80
83
  if (result.error)
81
84
  return text(`Markdown extraction failed: ${result.error}`);
82
85
  let msg = `URL: ${result.url}\nTitle: "${result.title}"\nTokens: ~${result.tokens}\n\n`;
@@ -84,7 +87,7 @@ export async function handleBrowserContent(args) {
84
87
  return text(msg);
85
88
  }
86
89
  // Default: plain text
87
- const result = await ni.getContent(resolved.sessionId);
90
+ const result = await ni.getContent(resolved.sessionId, resolved.tabId);
88
91
  if (result.error)
89
92
  return text(`Content failed: ${result.error}`);
90
93
  let msg = `URL: ${result.url}\nTitle: "${result.title}"\n\n`;
@@ -94,13 +97,14 @@ export async function handleBrowserContent(args) {
94
97
  // ── browser_screenshot ──
95
98
  export const browserScreenshotSchema = {
96
99
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
100
+ tabId: tabIdField,
97
101
  };
98
102
  export const browserScreenshotDescription = 'Take a screenshot of the current page. Returns a base64-encoded JPEG image. Use sparingly — prefer browser_snapshot for most tasks as it is far more token-efficient.';
99
103
  export async function handleBrowserScreenshot(args) {
100
- const resolved = await ni.resolveSession(args.sessionId);
104
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
101
105
  if ('error' in resolved)
102
106
  return text(resolved.error);
103
- const result = await ni.screenshot(resolved.sessionId);
107
+ const result = await ni.screenshot(resolved.sessionId, resolved.tabId);
104
108
  if (result.error)
105
109
  return text(`Screenshot failed: ${result.error}`);
106
110
  return {
@@ -131,13 +135,14 @@ Array.from(document.querySelectorAll('[data-testid="tweet"]')).map(el => {
131
135
  `.trim();
132
136
  export const browserExtractTweetsSchema = {
133
137
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
138
+ tabId: tabIdField,
134
139
  };
135
140
  export const browserExtractTweetsDescription = 'Extract all currently visible tweets as structured JSON (author, handle, text, time, url, replies, reposts, likes, views). Much faster than browser_snapshot for data harvesting — use this in scraping/loop flows instead of reading the ARIA tree. Navigate to x.com/search?q=%23hashtag&f=live first for latest-first hashtag results.';
136
141
  export async function handleBrowserExtractTweets(args) {
137
- const resolved = await ni.resolveSession(args.sessionId);
142
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
138
143
  if ('error' in resolved)
139
144
  return text(resolved.error);
140
- const result = await ni.evaluate(resolved.sessionId, TWEET_EXTRACTOR_SCRIPT);
145
+ const result = await ni.evaluate(resolved.sessionId, TWEET_EXTRACTOR_SCRIPT, resolved.tabId);
141
146
  if (result.error)
142
147
  return text(`Extract failed: ${result.error}`);
143
148
  const tweets = result.result;
@@ -167,15 +172,16 @@ Array.from(document.querySelectorAll('[role="article"]')).map(el => {
167
172
  `.trim();
168
173
  export const browserExtractFbPostsSchema = {
169
174
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
175
+ tabId: tabIdField,
170
176
  };
171
177
  export const browserExtractFbPostsDescription = 'Extract all currently visible Facebook posts as structured JSON (author, authorUrl, text, time, postUrl, reactions). ' +
172
178
  'Works on group feeds and Pages. Scroll down first with browser_scroll to load more posts. ' +
173
179
  'Much faster than browser_snapshot for data harvesting from Facebook.';
174
180
  export async function handleBrowserExtractFbPosts(args) {
175
- const resolved = await ni.resolveSession(args.sessionId);
181
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
176
182
  if ('error' in resolved)
177
183
  return text(resolved.error);
178
- const result = await ni.evaluate(resolved.sessionId, FB_POST_EXTRACTOR_SCRIPT);
184
+ const result = await ni.evaluate(resolved.sessionId, FB_POST_EXTRACTOR_SCRIPT, resolved.tabId);
179
185
  if (result.error)
180
186
  return text(`Extract failed: ${result.error}`);
181
187
  const posts = result.result;
@@ -212,16 +218,17 @@ const TIKTOK_FEED_EXTRACTOR_SCRIPT = `
212
218
  `.trim();
213
219
  export const browserExtractTiktokVideosSchema = {
214
220
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
221
+ tabId: tabIdField,
215
222
  };
216
223
  export const browserExtractTiktokVideosDescription = 'Extract all currently visible TikTok videos from the For You or Following feed as structured JSON ' +
217
224
  '(handle, videoUrl, caption, likes, comments, saves, shares, music). ' +
218
225
  'Navigate to tiktok.com/ or tiktok.com/following first. Scroll with browser_scroll to load more videos. ' +
219
226
  'Much faster than browser_snapshot for data harvesting from TikTok feeds.';
220
227
  export async function handleBrowserExtractTiktokVideos(args) {
221
- const resolved = await ni.resolveSession(args.sessionId);
228
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
222
229
  if ('error' in resolved)
223
230
  return text(resolved.error);
224
- const result = await ni.evaluate(resolved.sessionId, TIKTOK_FEED_EXTRACTOR_SCRIPT);
231
+ const result = await ni.evaluate(resolved.sessionId, TIKTOK_FEED_EXTRACTOR_SCRIPT, resolved.tabId);
225
232
  if (result.error)
226
233
  return text(`Extract failed: ${result.error}`);
227
234
  const videos = result.result;
@@ -249,16 +256,17 @@ Array.from(document.querySelectorAll('[data-e2e="search_top-item"]')).map(el =>
249
256
  `.trim();
250
257
  export const browserExtractTiktokSearchSchema = {
251
258
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
259
+ tabId: tabIdField,
252
260
  };
253
261
  export const browserExtractTiktokSearchDescription = 'Extract all currently visible TikTok search result videos as structured JSON ' +
254
262
  '(videoUrl, handle, profileUrl, caption, views). ' +
255
263
  'Navigate to tiktok.com/search?q=<query> first. Scroll to load more results. ' +
256
264
  'Much faster than browser_snapshot for harvesting TikTok search results.';
257
265
  export async function handleBrowserExtractTiktokSearch(args) {
258
- const resolved = await ni.resolveSession(args.sessionId);
266
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
259
267
  if ('error' in resolved)
260
268
  return text(resolved.error);
261
- const result = await ni.evaluate(resolved.sessionId, TIKTOK_SEARCH_EXTRACTOR_SCRIPT);
269
+ const result = await ni.evaluate(resolved.sessionId, TIKTOK_SEARCH_EXTRACTOR_SCRIPT, resolved.tabId);
262
270
  if (result.error)
263
271
  return text(`Extract failed: ${result.error}`);
264
272
  const videos = result.result;
@@ -288,16 +296,17 @@ Array.from(document.querySelectorAll('[data-tt="components_PostInfoCell_a"]')).m
288
296
  `.trim();
289
297
  export const browserExtractTiktokStudioSchema = {
290
298
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
299
+ tabId: tabIdField,
291
300
  };
292
301
  export const browserExtractTiktokStudioDescription = 'Extract all visible posts from TikTok Studio content list as structured JSON ' +
293
302
  '(title, url, date, privacy, stats[]). ' +
294
303
  'Navigate to tiktok.com/tiktokstudio/content first. Scroll to load more posts. ' +
295
304
  'Use this to audit, manage, or bulk-read your published TikTok content.';
296
305
  export async function handleBrowserExtractTiktokStudio(args) {
297
- const resolved = await ni.resolveSession(args.sessionId);
306
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
298
307
  if ('error' in resolved)
299
308
  return text(resolved.error);
300
- const result = await ni.evaluate(resolved.sessionId, TIKTOK_STUDIO_EXTRACTOR_SCRIPT);
309
+ const result = await ni.evaluate(resolved.sessionId, TIKTOK_STUDIO_EXTRACTOR_SCRIPT, resolved.tabId);
301
310
  if (result.error)
302
311
  return text(`Extract failed: ${result.error}`);
303
312
  const posts = result.result;
@@ -328,16 +337,17 @@ const TIKTOK_PROFILE_EXTRACTOR_SCRIPT = `
328
337
  `.trim();
329
338
  export const browserExtractTiktokProfileSchema = {
330
339
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
340
+ tabId: tabIdField,
331
341
  };
332
342
  export const browserExtractTiktokProfileDescription = 'Extract profile info and video grid from a TikTok profile page as structured JSON ' +
333
343
  '(name, handle, bio, followers, following, likes, videos[{videoUrl, views}]). ' +
334
344
  'Navigate to tiktok.com/@username first. Scroll down to load more videos in the grid. ' +
335
345
  'Use this to audit a creator profile or collect video URLs for further processing.';
336
346
  export async function handleBrowserExtractTiktokProfile(args) {
337
- const resolved = await ni.resolveSession(args.sessionId);
347
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
338
348
  if ('error' in resolved)
339
349
  return text(resolved.error);
340
- const result = await ni.evaluate(resolved.sessionId, TIKTOK_PROFILE_EXTRACTOR_SCRIPT);
350
+ const result = await ni.evaluate(resolved.sessionId, TIKTOK_PROFILE_EXTRACTOR_SCRIPT, resolved.tabId);
341
351
  if (result.error)
342
352
  return text(`Extract failed: ${result.error}`);
343
353
  const profile = result.result;
@@ -369,16 +379,17 @@ Array.from(document.querySelectorAll('[aria-label="Lista de conversas"] [role="r
369
379
  `.trim();
370
380
  export const browserExtractWaChatsSchema = {
371
381
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
382
+ tabId: tabIdField,
372
383
  };
373
384
  export const browserExtractWaChatsDescription = 'Extract all currently visible WhatsApp chats from the sidebar as structured JSON ' +
374
385
  '(name, lastMsg, time, unreadCount, muted, pinned). ' +
375
386
  'Must be on web.whatsapp.com with the chat list visible. Scroll the sidebar with browser_scroll to load more chats. ' +
376
387
  'Use browser_click on span[title="Chat Name"] to open a specific chat.';
377
388
  export async function handleBrowserExtractWaChats(args) {
378
- const resolved = await ni.resolveSession(args.sessionId);
389
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
379
390
  if ('error' in resolved)
380
391
  return text(resolved.error);
381
- const result = await ni.evaluate(resolved.sessionId, WA_CHATS_EXTRACTOR_SCRIPT);
392
+ const result = await ni.evaluate(resolved.sessionId, WA_CHATS_EXTRACTOR_SCRIPT, resolved.tabId);
382
393
  if (result.error)
383
394
  return text(`Extract failed: ${result.error}`);
384
395
  const chats = result.result;
@@ -408,16 +419,17 @@ Array.from(document.querySelectorAll('div.copyable-text[data-pre-plain-text]')).
408
419
  `.trim();
409
420
  export const browserExtractWaMessagesSchema = {
410
421
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
422
+ tabId: tabIdField,
411
423
  };
412
424
  export const browserExtractWaMessagesDescription = 'Extract all currently visible messages from the open WhatsApp chat as structured JSON ' +
413
425
  '(sender, time, date, direction, text, dataId). ' +
414
426
  'Open a chat first by clicking span[title="Chat Name"]. Scroll up with browser_scroll to load older messages. ' +
415
427
  'direction is "in" for received and "out" for sent messages.';
416
428
  export async function handleBrowserExtractWaMessages(args) {
417
- const resolved = await ni.resolveSession(args.sessionId);
429
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
418
430
  if ('error' in resolved)
419
431
  return text(resolved.error);
420
- const result = await ni.evaluate(resolved.sessionId, WA_MESSAGES_EXTRACTOR_SCRIPT);
432
+ const result = await ni.evaluate(resolved.sessionId, WA_MESSAGES_EXTRACTOR_SCRIPT, resolved.tabId);
421
433
  if (result.error)
422
434
  return text(`Extract failed: ${result.error}`);
423
435
  const messages = result.result;
@@ -449,15 +461,16 @@ Array.from(document.querySelectorAll('article')).map(el => {
449
461
  `;
450
462
  export const browserExtractIgFeedSchema = {
451
463
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
464
+ tabId: tabIdField,
452
465
  };
453
466
  export const browserExtractIgFeedDescription = 'Extract all currently visible Instagram feed posts as structured JSON ' +
454
467
  '(username, profileUrl, postUrl, caption, likes, comments, time, datetime, isSponsored, hasFollow). ' +
455
468
  'Navigate to instagram.com/ first. Scroll down with browser_scroll to load more posts.';
456
469
  export async function handleBrowserExtractIgFeed(args) {
457
- const resolved = await ni.resolveSession(args.sessionId);
470
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
458
471
  if ('error' in resolved)
459
472
  return text(resolved.error);
460
- const result = await ni.evaluate(resolved.sessionId, IG_FEED_EXTRACTOR_SCRIPT);
473
+ const result = await ni.evaluate(resolved.sessionId, IG_FEED_EXTRACTOR_SCRIPT, resolved.tabId);
461
474
  if (result.error)
462
475
  return text(`Extract failed: ${result.error}`);
463
476
  const posts = result.result;
@@ -504,15 +517,16 @@ const IG_PROFILE_EXTRACTOR_SCRIPT = `
504
517
  `;
505
518
  export const browserExtractIgProfileSchema = {
506
519
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
520
+ tabId: tabIdField,
507
521
  };
508
522
  export const browserExtractIgProfileDescription = 'Extract Instagram profile data as structured JSON ' +
509
523
  '(username, displayName, bio, posts, followers, followerExact, following, isVerified, website, gridPosts, highlights). ' +
510
524
  'Navigate to instagram.com/username/ first. Returns bio, stats, post grid (up to 12), and story highlights.';
511
525
  export async function handleBrowserExtractIgProfile(args) {
512
- const resolved = await ni.resolveSession(args.sessionId);
526
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
513
527
  if ('error' in resolved)
514
528
  return text(resolved.error);
515
- const result = await ni.evaluate(resolved.sessionId, IG_PROFILE_EXTRACTOR_SCRIPT);
529
+ const result = await ni.evaluate(resolved.sessionId, IG_PROFILE_EXTRACTOR_SCRIPT, resolved.tabId);
516
530
  if (result.error)
517
531
  return text(`Extract failed: ${result.error}`);
518
532
  const profile = result.result;
@@ -572,16 +586,17 @@ const IG_POST_EXTRACTOR_SCRIPT = `
572
586
  `;
573
587
  export const browserExtractIgPostSchema = {
574
588
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
589
+ tabId: tabIdField,
575
590
  };
576
591
  export const browserExtractIgPostDescription = 'Extract a single Instagram post with comments as structured JSON ' +
577
592
  '(author, caption, likes, commentCount, time, datetime, comments[{username, text, time, datetime}]). ' +
578
593
  'Navigate to instagram.com/p/POST_ID/ or instagram.com/reel/REEL_ID/ first. ' +
579
594
  'Scroll the comment area to load more comments before extracting.';
580
595
  export async function handleBrowserExtractIgPost(args) {
581
- const resolved = await ni.resolveSession(args.sessionId);
596
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
582
597
  if ('error' in resolved)
583
598
  return text(resolved.error);
584
- const result = await ni.evaluate(resolved.sessionId, IG_POST_EXTRACTOR_SCRIPT);
599
+ const result = await ni.evaluate(resolved.sessionId, IG_POST_EXTRACTOR_SCRIPT, resolved.tabId);
585
600
  if (result.error)
586
601
  return text(`Extract failed: ${result.error}`);
587
602
  const post = result.result;
@@ -631,15 +646,16 @@ const IG_REELS_EXTRACTOR_SCRIPT = `
631
646
  `;
632
647
  export const browserExtractIgReelsSchema = {
633
648
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
649
+ tabId: tabIdField,
634
650
  };
635
651
  export const browserExtractIgReelsDescription = 'Extract visible Instagram Reels with engagement data as structured JSON ' +
636
652
  '(username, profileUrl, caption, likes, comments, audioName, audioUrl, hasFollow). ' +
637
653
  'Navigate to instagram.com/reels/ first. Scroll down to load more reels.';
638
654
  export async function handleBrowserExtractIgReels(args) {
639
- const resolved = await ni.resolveSession(args.sessionId);
655
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
640
656
  if ('error' in resolved)
641
657
  return text(resolved.error);
642
- const result = await ni.evaluate(resolved.sessionId, IG_REELS_EXTRACTOR_SCRIPT);
658
+ const result = await ni.evaluate(resolved.sessionId, IG_REELS_EXTRACTOR_SCRIPT, resolved.tabId);
643
659
  if (result.error)
644
660
  return text(`Extract failed: ${result.error}`);
645
661
  const reels = result.result;
@@ -658,15 +674,16 @@ Array.from(document.querySelectorAll('main a[href*="/p/"], main a[href*="/reel/"
658
674
  `;
659
675
  export const browserExtractIgSearchSchema = {
660
676
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
677
+ tabId: tabIdField,
661
678
  };
662
679
  export const browserExtractIgSearchDescription = 'Extract posts from the Instagram Explore page as structured JSON (url, alt, isReel). ' +
663
680
  'Navigate to instagram.com/explore/ first. Scroll to load more content. ' +
664
681
  'For hashtag search, navigate to instagram.com/explore/tags/HASHTAG/.';
665
682
  export async function handleBrowserExtractIgSearch(args) {
666
- const resolved = await ni.resolveSession(args.sessionId);
683
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
667
684
  if ('error' in resolved)
668
685
  return text(resolved.error);
669
- const result = await ni.evaluate(resolved.sessionId, IG_SEARCH_EXTRACTOR_SCRIPT);
686
+ const result = await ni.evaluate(resolved.sessionId, IG_SEARCH_EXTRACTOR_SCRIPT, resolved.tabId);
670
687
  if (result.error)
671
688
  return text(`Extract failed: ${result.error}`);
672
689
  const posts = result.result;
@@ -711,16 +728,17 @@ Array.from(document.querySelectorAll('.feed-shared-update-v2[data-urn*="urn:li:a
711
728
  `.trim();
712
729
  export const browserExtractLiFeedSchema = {
713
730
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
731
+ tabId: tabIdField,
714
732
  };
715
733
  export const browserExtractLiFeedDescription = 'Extract all currently visible LinkedIn feed posts as structured JSON ' +
716
734
  '(author, authorUrl, headline, time, text, reactions, commentsCount, mediaType, articleTitle, articleLink, isPromoted, isRepost, postUrl). ' +
717
735
  'Navigate to linkedin.com/feed/ first. Scroll down with browser_scroll to load more posts. ' +
718
736
  'Much faster than browser_snapshot for data harvesting from the LinkedIn feed.';
719
737
  export async function handleBrowserExtractLiFeed(args) {
720
- const resolved = await ni.resolveSession(args.sessionId);
738
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
721
739
  if ('error' in resolved)
722
740
  return text(resolved.error);
723
- const result = await ni.evaluate(resolved.sessionId, LI_FEED_EXTRACTOR_SCRIPT);
741
+ const result = await ni.evaluate(resolved.sessionId, LI_FEED_EXTRACTOR_SCRIPT, resolved.tabId);
724
742
  if (result.error)
725
743
  return text(`Extract failed: ${result.error}`);
726
744
  const posts = result.result;
@@ -759,16 +777,17 @@ const LI_PROFILE_EXTRACTOR_SCRIPT = `
759
777
  `.trim();
760
778
  export const browserExtractLiProfileSchema = {
761
779
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
780
+ tabId: tabIdField,
762
781
  };
763
782
  export const browserExtractLiProfileDescription = 'Extract LinkedIn profile data as structured JSON ' +
764
783
  '(name, headline, location, profilePic, connections, about, sections[{heading, items[{title, subtitle, meta}]}], recentActivity). ' +
765
784
  'Navigate to linkedin.com/in/USERNAME/ first. Sections include Experience, Education, Skills, etc. ' +
766
785
  'Use linkedin.com/in/me/ for the logged-in user\'s own profile.';
767
786
  export async function handleBrowserExtractLiProfile(args) {
768
- const resolved = await ni.resolveSession(args.sessionId);
787
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
769
788
  if ('error' in resolved)
770
789
  return text(resolved.error);
771
- const result = await ni.evaluate(resolved.sessionId, LI_PROFILE_EXTRACTOR_SCRIPT);
790
+ const result = await ni.evaluate(resolved.sessionId, LI_PROFILE_EXTRACTOR_SCRIPT, resolved.tabId);
772
791
  if (result.error)
773
792
  return text(`Extract failed: ${result.error}`);
774
793
  const profile = result.result;
@@ -808,16 +827,17 @@ const LI_POST_EXTRACTOR_SCRIPT = `
808
827
  `.trim();
809
828
  export const browserExtractLiPostSchema = {
810
829
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
830
+ tabId: tabIdField,
811
831
  };
812
832
  export const browserExtractLiPostDescription = 'Extract a single LinkedIn post with comments as structured JSON ' +
813
833
  '(author, authorUrl, headline, time, text, reactions, commentsCount, postUrn, comments[{author, authorUrl, text, time, likes}]). ' +
814
834
  'Navigate to linkedin.com/feed/update/urn:li:activity:ID/ first. ' +
815
835
  'Click "Comentar" button to expand comment section, then scroll to load more comments before extracting.';
816
836
  export async function handleBrowserExtractLiPost(args) {
817
- const resolved = await ni.resolveSession(args.sessionId);
837
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
818
838
  if ('error' in resolved)
819
839
  return text(resolved.error);
820
- const result = await ni.evaluate(resolved.sessionId, LI_POST_EXTRACTOR_SCRIPT);
840
+ const result = await ni.evaluate(resolved.sessionId, LI_POST_EXTRACTOR_SCRIPT, resolved.tabId);
821
841
  if (result.error)
822
842
  return text(`Extract failed: ${result.error}`);
823
843
  const post = result.result;
@@ -842,15 +862,16 @@ Array.from(document.querySelectorAll('article.nt-card')).map(card => {
842
862
  `.trim();
843
863
  export const browserExtractLiNotificationsSchema = {
844
864
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
865
+ tabId: tabIdField,
845
866
  };
846
867
  export const browserExtractLiNotificationsDescription = 'Extract LinkedIn notifications as structured JSON (text, time, isUnread, url, image). ' +
847
868
  'Navigate to linkedin.com/notifications/ first. Scroll down to load older notifications. ' +
848
869
  'Useful for monitoring engagement, connection requests, and mentions.';
849
870
  export async function handleBrowserExtractLiNotifications(args) {
850
- const resolved = await ni.resolveSession(args.sessionId);
871
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
851
872
  if ('error' in resolved)
852
873
  return text(resolved.error);
853
- const result = await ni.evaluate(resolved.sessionId, LI_NOTIFICATIONS_EXTRACTOR_SCRIPT);
874
+ const result = await ni.evaluate(resolved.sessionId, LI_NOTIFICATIONS_EXTRACTOR_SCRIPT, resolved.tabId);
854
875
  if (result.error)
855
876
  return text(`Extract failed: ${result.error}`);
856
877
  const notifs = result.result;
@@ -883,6 +904,7 @@ const LI_MESSAGES_EXTRACTOR_SCRIPT = `
883
904
  `.trim();
884
905
  export const browserExtractLiMessagesSchema = {
885
906
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
907
+ tabId: tabIdField,
886
908
  };
887
909
  export const browserExtractLiMessagesDescription = 'Extract LinkedIn messaging data as structured JSON with two arrays: ' +
888
910
  'conversations[{name, lastMessage, time, isUnread, url}] (sidebar list) and ' +
@@ -890,10 +912,10 @@ export const browserExtractLiMessagesDescription = 'Extract LinkedIn messaging d
890
912
  'Navigate to linkedin.com/messaging/ first. Click a conversation to load its messages. ' +
891
913
  'To send a message: browser_fill on .msg-form__contenteditable then browser_click on .msg-form__send-button.';
892
914
  export async function handleBrowserExtractLiMessages(args) {
893
- const resolved = await ni.resolveSession(args.sessionId);
915
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
894
916
  if ('error' in resolved)
895
917
  return text(resolved.error);
896
- const result = await ni.evaluate(resolved.sessionId, LI_MESSAGES_EXTRACTOR_SCRIPT);
918
+ const result = await ni.evaluate(resolved.sessionId, LI_MESSAGES_EXTRACTOR_SCRIPT, resolved.tabId);
897
919
  if (result.error)
898
920
  return text(`Extract failed: ${result.error}`);
899
921
  const data = result.result;
@@ -945,16 +967,17 @@ const LI_SEARCH_PEOPLE_EXTRACTOR_SCRIPT = `
945
967
  `.trim();
946
968
  export const browserExtractLiSearchPeopleSchema = {
947
969
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
970
+ tabId: tabIdField,
948
971
  };
949
972
  export const browserExtractLiSearchPeopleDescription = 'Extract LinkedIn people search results as structured JSON ' +
950
973
  '(name, profileUrl, headline, location, mutual, actionButton, image). ' +
951
974
  'Navigate to linkedin.com/search/results/people/?keywords=QUERY first. ' +
952
975
  'Scroll down to load more results. Also works on linkedin.com/search/results/all/.';
953
976
  export async function handleBrowserExtractLiSearchPeople(args) {
954
- const resolved = await ni.resolveSession(args.sessionId);
977
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
955
978
  if ('error' in resolved)
956
979
  return text(resolved.error);
957
- const result = await ni.evaluate(resolved.sessionId, LI_SEARCH_PEOPLE_EXTRACTOR_SCRIPT);
980
+ const result = await ni.evaluate(resolved.sessionId, LI_SEARCH_PEOPLE_EXTRACTOR_SCRIPT, resolved.tabId);
958
981
  if (result.error)
959
982
  return text(`Extract failed: ${result.error}`);
960
983
  const people = result.result;
@@ -1009,6 +1032,7 @@ const LI_NETWORK_EXTRACTOR_SCRIPT = `
1009
1032
  `.trim();
1010
1033
  export const browserExtractLiNetworkSchema = {
1011
1034
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
1035
+ tabId: tabIdField,
1012
1036
  };
1013
1037
  export const browserExtractLiNetworkDescription = 'Extract LinkedIn My Network data as structured JSON with two arrays: ' +
1014
1038
  'invitations[{name, subtitle, profileUrl, acceptLabel, ignoreLabel}] (pending connection requests) and ' +
@@ -1017,10 +1041,10 @@ export const browserExtractLiNetworkDescription = 'Extract LinkedIn My Network d
1017
1041
  'To accept an invitation: browser_click on button with the acceptLabel. ' +
1018
1042
  'To connect: browser_click on the respective Conectar/Connect button.';
1019
1043
  export async function handleBrowserExtractLiNetwork(args) {
1020
- const resolved = await ni.resolveSession(args.sessionId);
1044
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
1021
1045
  if ('error' in resolved)
1022
1046
  return text(resolved.error);
1023
- const result = await ni.evaluate(resolved.sessionId, LI_NETWORK_EXTRACTOR_SCRIPT);
1047
+ const result = await ni.evaluate(resolved.sessionId, LI_NETWORK_EXTRACTOR_SCRIPT, resolved.tabId);
1024
1048
  if (result.error)
1025
1049
  return text(`Extract failed: ${result.error}`);
1026
1050
  const data = result.result;
@@ -1131,6 +1155,7 @@ const LI_JOBS_EXTRACTOR_SCRIPT = `
1131
1155
  `.trim();
1132
1156
  export const browserExtractLiJobsSchema = {
1133
1157
  sessionId: z.string().optional().describe('Browser session ID. If omitted, auto-selects the only open session.'),
1158
+ tabId: tabIdField,
1134
1159
  };
1135
1160
  export const browserExtractLiJobsDescription = 'Extract LinkedIn job listings as structured JSON ' +
1136
1161
  '(jobId, title, company, companyUrl, location, salary, jobUrl, logo, promoted, easyApply, postedDate). ' +
@@ -1139,10 +1164,10 @@ export const browserExtractLiJobsDescription = 'Extract LinkedIn job listings as
1139
1164
  'For search: use linkedin.com/jobs/search/?keywords=QUERY&location=LOCATION. ' +
1140
1165
  'Returns an array of job objects.';
1141
1166
  export async function handleBrowserExtractLiJobs(args) {
1142
- const resolved = await ni.resolveSession(args.sessionId);
1167
+ const resolved = await ni.resolveSession(args.sessionId, undefined, args.tabId);
1143
1168
  if ('error' in resolved)
1144
1169
  return text(resolved.error);
1145
- const result = await ni.evaluate(resolved.sessionId, LI_JOBS_EXTRACTOR_SCRIPT);
1170
+ const result = await ni.evaluate(resolved.sessionId, LI_JOBS_EXTRACTOR_SCRIPT, resolved.tabId);
1146
1171
  if (result.error)
1147
1172
  return text(`Extract failed: ${result.error}`);
1148
1173
  const jobs = result.result;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-observe.js","sourceRoot":"","sources":["../../src/tools/browser-observe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-observe.js","sourceRoot":"","sources":["../../src/tools/browser-observe.ts"],"names":[],"mappings":"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"}