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.
- package/CHANGELOG.md +51 -52
- package/hooks/claude-code/prompt-submit.mjs +6 -6
- package/mcp-server/dist/services/neural-interface.d.ts +20 -19
- package/mcp-server/dist/services/neural-interface.d.ts.map +1 -1
- package/mcp-server/dist/services/neural-interface.js +52 -45
- package/mcp-server/dist/services/neural-interface.js.map +1 -1
- package/mcp-server/dist/tools/browser-advanced.d.ts +4 -0
- package/mcp-server/dist/tools/browser-advanced.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-advanced.js +7 -4
- package/mcp-server/dist/tools/browser-advanced.js.map +1 -1
- package/mcp-server/dist/tools/browser-interact.d.ts +16 -0
- package/mcp-server/dist/tools/browser-interact.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-interact.js +25 -16
- package/mcp-server/dist/tools/browser-interact.js.map +1 -1
- package/mcp-server/dist/tools/browser-navigate.d.ts +8 -0
- package/mcp-server/dist/tools/browser-navigate.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-navigate.js +13 -8
- package/mcp-server/dist/tools/browser-navigate.js.map +1 -1
- package/mcp-server/dist/tools/browser-observe.d.ts +48 -0
- package/mcp-server/dist/tools/browser-observe.d.ts.map +1 -1
- package/mcp-server/dist/tools/browser-observe.js +74 -49
- package/mcp-server/dist/tools/browser-observe.js.map +1 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts +20 -0
- package/mcp-server/dist/tools/leonardo-browser-tools.d.ts.map +1 -1
- package/mcp-server/dist/tools/leonardo-browser-tools.js +39 -34
- package/mcp-server/dist/tools/leonardo-browser-tools.js.map +1 -1
- package/mcp-server/src/services/neural-interface.ts +58 -46
- package/mcp-server/src/tools/browser-advanced.ts +10 -5
- package/mcp-server/src/tools/browser-interact.ts +34 -24
- package/mcp-server/src/tools/browser-navigate.ts +83 -77
- package/mcp-server/src/tools/browser-observe.ts +99 -73
- package/mcp-server/src/tools/leonardo-browser-tools.ts +47 -37
- package/neural-interface/public/shared/styles.css +49 -0
- package/neural-interface/public/shared/ui-automation-studio.js +71 -3
- package/neural-interface/public/shared/ui-claude-panel.js +29 -23
- package/neural-interface/public/shared/ui-settings.js +10 -10
- package/neural-interface/public/shared/ui-terminal.js +9 -7
- package/neural-interface/server.js +732 -386
- 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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"}
|