@bubblelab/bubble-core 0.1.174 → 0.1.176

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 (50) hide show
  1. package/dist/bubble-bundle.d.ts +105 -27
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +8 -0
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/attio/attio.d.ts +563 -0
  6. package/dist/bubbles/service-bubble/attio/attio.d.ts.map +1 -0
  7. package/dist/bubbles/service-bubble/attio/attio.js +484 -0
  8. package/dist/bubbles/service-bubble/attio/attio.js.map +1 -0
  9. package/dist/bubbles/service-bubble/attio/attio.schema.d.ts +527 -0
  10. package/dist/bubbles/service-bubble/attio/attio.schema.d.ts.map +1 -0
  11. package/dist/bubbles/service-bubble/attio/attio.schema.js +386 -0
  12. package/dist/bubbles/service-bubble/attio/attio.schema.js.map +1 -0
  13. package/dist/bubbles/service-bubble/attio/attio.utils.d.ts +1 -0
  14. package/dist/bubbles/service-bubble/attio/attio.utils.d.ts.map +1 -0
  15. package/dist/bubbles/service-bubble/attio/attio.utils.js +4 -0
  16. package/dist/bubbles/service-bubble/attio/attio.utils.js.map +1 -0
  17. package/dist/bubbles/service-bubble/attio/index.d.ts +3 -0
  18. package/dist/bubbles/service-bubble/attio/index.d.ts.map +1 -0
  19. package/dist/bubbles/service-bubble/attio/index.js +3 -0
  20. package/dist/bubbles/service-bubble/attio/index.js.map +1 -0
  21. package/dist/bubbles/service-bubble/capability-pipeline.js +2 -2
  22. package/dist/bubbles/service-bubble/capability-pipeline.js.map +1 -1
  23. package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +388 -0
  24. package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts.map +1 -0
  25. package/dist/bubbles/service-bubble/hubspot/hubspot.js +241 -0
  26. package/dist/bubbles/service-bubble/hubspot/hubspot.js.map +1 -0
  27. package/dist/bubbles/service-bubble/hubspot/hubspot.schema.d.ts +345 -0
  28. package/dist/bubbles/service-bubble/hubspot/hubspot.schema.d.ts.map +1 -0
  29. package/dist/bubbles/service-bubble/hubspot/hubspot.schema.js +180 -0
  30. package/dist/bubbles/service-bubble/hubspot/hubspot.schema.js.map +1 -0
  31. package/dist/bubbles/service-bubble/hubspot/index.d.ts +3 -0
  32. package/dist/bubbles/service-bubble/hubspot/index.d.ts.map +1 -0
  33. package/dist/bubbles/service-bubble/hubspot/index.js +3 -0
  34. package/dist/bubbles/service-bubble/hubspot/index.js.map +1 -0
  35. package/dist/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.d.ts +5 -30
  36. package/dist/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.d.ts.map +1 -1
  37. package/dist/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.js +70 -204
  38. package/dist/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.js.map +1 -1
  39. package/dist/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.types.d.ts +4 -0
  40. package/dist/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.types.d.ts.map +1 -1
  41. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts +31 -0
  42. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts.map +1 -1
  43. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.js +202 -39
  44. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.js.map +1 -1
  45. package/dist/bubbles.json +1598 -2
  46. package/dist/index.d.ts +4 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +2 -0
  49. package/dist/index.js.map +1 -1
  50. package/package.json +2 -2
@@ -1,106 +1,34 @@
1
1
  import { AIAgentBubble } from '../../../../service-bubble/ai-agent.js';
2
2
  import { BrowserBaseBubble } from '../../../../service-bubble/browserbase/index.js';
3
3
  import { CredentialType } from '@bubblelab/shared-schemas';
4
- /**
5
- * Script to extract interactive elements from the page.
6
- * Finds buttons, links, inputs, and other interactive elements.
7
- * Limited to 100 elements to avoid overwhelming the AI.
8
- * Only includes elements that are truly visible (not in closed dropdowns, etc.)
9
- */
10
- const EXTRACT_ELEMENTS_SCRIPT = `
11
- (() => {
12
- const selectors = 'button, a, input, select, textarea, [role="button"], [role="link"], [onclick]';
13
- const elements = document.querySelectorAll(selectors);
14
-
15
- // Check if element is truly visible (not just has dimensions)
16
- function isElementVisible(el) {
17
- const rect = el.getBoundingClientRect();
18
- if (rect.width === 0 || rect.height === 0) return false;
19
-
20
- // Check if element is within viewport
21
- if (rect.bottom < 0 || rect.top > window.innerHeight) return false;
22
- if (rect.right < 0 || rect.left > window.innerWidth) return false;
23
-
24
- // Check computed styles
25
- const style = window.getComputedStyle(el);
26
- if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') return false;
27
-
28
- // Check if any parent hides it (dropdown items in closed dropdowns)
29
- let parent = el.parentElement;
30
- while (parent) {
31
- const parentStyle = window.getComputedStyle(parent);
32
- if (parentStyle.display === 'none' || parentStyle.visibility === 'hidden') return false;
33
- // Check for closed dropdown containers (common patterns)
34
- if (parent.classList.contains('artdeco-dropdown__content') ||
35
- parent.classList.contains('dropdown-menu')) {
36
- if (!parent.classList.contains('artdeco-dropdown__content--is-open') &&
37
- !parent.classList.contains('show') &&
38
- !parent.classList.contains('open')) {
39
- return false;
40
- }
41
- }
42
- parent = parent.parentElement;
43
- }
44
-
45
- return true;
46
- }
47
-
48
- return [...elements].filter(isElementVisible).slice(0, 100).map(el => {
49
- const rect = el.getBoundingClientRect();
50
- let selector = el.tagName.toLowerCase();
51
- if (el.id) {
52
- selector = '#' + el.id;
53
- } else if (el.className && typeof el.className === 'string') {
54
- const classes = el.className.trim().split(/\\s+/).slice(0, 3).join('.');
55
- if (classes) selector = el.tagName.toLowerCase() + '.' + classes;
56
- }
57
- return {
58
- tagName: el.tagName.toLowerCase(),
59
- role: el.getAttribute('role') || undefined,
60
- name: el.getAttribute('aria-label') || el.textContent?.trim().slice(0, 50) || undefined,
61
- id: el.id || undefined,
62
- selector,
63
- boundingBox: {
64
- x: Math.round(rect.x),
65
- y: Math.round(rect.y),
66
- width: Math.round(rect.width),
67
- height: Math.round(rect.height)
68
- },
69
- isVisible: true,
70
- isEnabled: !el.disabled
71
- };
72
- });
73
- })()
74
- `;
75
4
  /**
76
5
  * System prompt for the AI browser agent when suggesting recovery actions.
6
+ * Screenshot-only approach — AI looks at the page and decides coordinates.
77
7
  */
78
- const RECOVERY_SYSTEM_PROMPT = `You are an AI browser automation assistant. You analyze screenshots and page context to help recover from failed browser automation steps.
8
+ const RECOVERY_SYSTEM_PROMPT = `You are an AI browser automation assistant. You analyze screenshots to help recover from failed browser automation steps.
79
9
 
80
10
  When a step fails, you receive:
81
11
  1. A screenshot of the current page state
82
12
  2. The task that was being attempted
83
13
  3. The error that occurred
84
- 4. A list of interactive elements on the page
14
+ 4. The current page URL
85
15
 
86
- Your job is to suggest ONE action to help recover from the error. Choose from:
16
+ Your job is to look at the screenshot and suggest ONE action to recover. Choose from:
87
17
 
88
- - click: Click an element by CSS selector
89
- - click_coordinates: Click at specific x,y coordinates (use when selector is unreliable)
90
- - type: Type text into an input field
18
+ - click_coordinates: Click at x,y pixel coordinates on the screenshot
19
+ - type: Click at x,y coordinates then type text
91
20
  - scroll: Scroll the page up or down
92
21
  - wait: Wait for content to load
93
22
  - none: If you cannot help, explain why
94
23
 
95
- Respond ONLY with valid JSON in this exact format:
96
- {"action": "click", "selector": "#submit-btn"}
24
+ Look at the screenshot carefully. Identify the element visually and return the coordinates of its center.
25
+
26
+ Respond ONLY with valid JSON in one of these exact formats:
97
27
  {"action": "click_coordinates", "coordinates": [500, 300]}
98
- {"action": "type", "selector": "#email-input", "value": "test@example.com"}
28
+ {"action": "type", "coordinates": [500, 300], "value": "text to type"}
99
29
  {"action": "scroll", "direction": "down", "amount": 500}
100
30
  {"action": "wait", "milliseconds": 2000}
101
- {"action": "none", "reason": "explanation here"}
102
-
103
- Be concise and precise. Analyze the screenshot carefully to find the right element.`;
31
+ {"action": "none", "reason": "explanation here"}`;
104
32
  /**
105
33
  * System prompt for data extraction.
106
34
  */
@@ -123,8 +51,9 @@ Respond ONLY with valid JSON matching the requested structure.`;
123
51
  /**
124
52
  * AI Browser Agent for error recovery and data extraction.
125
53
  *
126
- * Uses AIAgentBubble from @bubblelab/bubble-core to analyze screenshots
127
- * and suggest recovery actions or extract structured data.
54
+ * Uses vision AI to analyze screenshots and suggest recovery actions
55
+ * or extract structured data. No DOM inspection needed — the AI
56
+ * looks at the screenshot and decides coordinates directly.
128
57
  */
129
58
  export class AIBrowserAgent {
130
59
  sessionId;
@@ -137,35 +66,26 @@ export class AIBrowserAgent {
137
66
  }
138
67
  /**
139
68
  * Suggest a recovery action for a failed step.
140
- *
141
- * @param task - Description of what the step was trying to accomplish
142
- * @param error - The error message from the failed step
143
- * @returns The suggested recovery action
69
+ * Takes a screenshot and lets the AI decide what to do.
144
70
  */
145
71
  async suggestRecoveryAction(task, error) {
146
72
  try {
147
- // Capture current page state
148
73
  const screenshot = await this.captureScreenshot();
149
74
  if (!screenshot) {
150
75
  return { action: 'none', reason: 'Could not capture screenshot' };
151
76
  }
152
77
  const currentUrl = await this.getCurrentUrl();
153
- const elements = await this.extractInteractiveElements();
154
- // Log elements for debugging
155
- console.log(`[AIBrowserAgent] Found ${elements.length} interactive elements:`);
156
- elements.slice(0, 20).forEach((el, i) => {
157
- console.log(` ${i + 1}. ${el.tagName}${el.id ? '#' + el.id : ''} - "${el.name?.slice(0, 40) || 'no name'}" at (${el.boundingBox.x},${el.boundingBox.y})`);
158
- });
159
- if (elements.length > 20) {
160
- console.log(` ... and ${elements.length - 20} more elements`);
161
- }
162
- // Build the user message
163
- const userMessage = this.buildRecoveryPrompt(task, error, currentUrl, elements);
164
- // Call AI
78
+ const userMessage = `Task: ${task}
79
+
80
+ Error: ${error}
81
+
82
+ Current URL: ${currentUrl}
83
+
84
+ Look at the screenshot and suggest ONE action to recover from this error.`;
85
+ console.log(`[AIBrowserAgent] Requesting recovery for: "${task}"`);
86
+ console.log(`[AIBrowserAgent] Error: ${error}`);
165
87
  const response = await this.callAI(userMessage, screenshot, RECOVERY_SYSTEM_PROMPT);
166
- // Log raw AI response
167
- console.log(`[AIBrowserAgent] AI raw response: ${response}`);
168
- // Parse and validate response
88
+ console.log(`[AIBrowserAgent] AI response: ${response}`);
169
89
  return this.parseRecoveryAction(response);
170
90
  }
171
91
  catch (err) {
@@ -178,31 +98,22 @@ export class AIBrowserAgent {
178
98
  }
179
99
  /**
180
100
  * Extract structured data from the page using AI vision.
181
- *
182
- * @param schema - Zod schema defining the expected data structure
183
- * @param task - Description of what data to extract
184
- * @returns The extracted data matching the schema, or null if extraction fails
185
101
  */
186
102
  async extractData(schema, task) {
187
103
  try {
188
- // Capture screenshot
189
104
  const screenshot = await this.captureScreenshot();
190
105
  if (!screenshot) {
191
106
  console.error('[AIBrowserAgent] Could not capture screenshot for extraction');
192
107
  return null;
193
108
  }
194
- // Generate schema description for the AI
195
109
  const schemaDescription = this.describeZodSchema(schema);
196
- // Build user message
197
110
  const userMessage = `Task: ${task}
198
111
 
199
112
  Extract the following data from the screenshot:
200
113
  ${schemaDescription}
201
114
 
202
115
  Respond with ONLY valid JSON matching this structure.`;
203
- // Call AI
204
116
  const response = await this.callAI(userMessage, screenshot, EXTRACTION_SYSTEM_PROMPT);
205
- // Parse and validate with Zod
206
117
  const parsed = JSON.parse(response);
207
118
  const validated = schema.safeParse(parsed);
208
119
  if (validated.success) {
@@ -218,9 +129,6 @@ Respond with ONLY valid JSON matching this structure.`;
218
129
  }
219
130
  /**
220
131
  * Execute the suggested recovery action on the page.
221
- *
222
- * @param action - The action to execute
223
- * @returns true if the action was executed successfully
224
132
  */
225
133
  async executeAction(action) {
226
134
  try {
@@ -232,6 +140,7 @@ Respond with ONLY valid JSON matching this structure.`;
232
140
  const page = session.page;
233
141
  switch (action.action) {
234
142
  case 'click': {
143
+ // Legacy selector-based click — shouldn't happen but handle gracefully
235
144
  await page.waitForSelector(action.selector, { timeout: 5000 });
236
145
  await page.click(action.selector);
237
146
  return true;
@@ -242,25 +151,32 @@ Respond with ONLY valid JSON matching this structure.`;
242
151
  return true;
243
152
  }
244
153
  case 'type': {
245
- // Clear existing content first
246
- await page.waitForSelector(action.selector, { timeout: 5000 });
247
- await page.click(action.selector);
248
- // Clear via evaluate with string to avoid type issues
249
- const clearScript = `
250
- (() => {
251
- const el = document.querySelector(${JSON.stringify(action.selector)});
252
- if (el && 'value' in el) el.value = '';
253
- })()
254
- `;
255
- await page.evaluate(clearScript);
256
- await page.type(action.selector, action.value, { delay: 50 });
154
+ if ('coordinates' in action) {
155
+ const [tx, ty] = action.coordinates;
156
+ await page.mouse.click(tx, ty);
157
+ // Triple-click to select all, then type to replace
158
+ await page.mouse.click(tx, ty, { clickCount: 3 });
159
+ await page.keyboard.type(action.value, { delay: 50 });
160
+ }
161
+ else {
162
+ // Legacy selector-based
163
+ await page.waitForSelector(action.selector, { timeout: 5000 });
164
+ await page.click(action.selector);
165
+ const clearScript = `
166
+ (() => {
167
+ const el = document.querySelector(${JSON.stringify(action.selector)});
168
+ if (el && 'value' in el) el.value = '';
169
+ })()
170
+ `;
171
+ await page.evaluate(clearScript);
172
+ await page.type(action.selector, action.value, { delay: 50 });
173
+ }
257
174
  return true;
258
175
  }
259
176
  case 'scroll': {
260
177
  const amount = action.direction === 'down' ? action.amount : -action.amount;
261
178
  const scrollScript = `window.scrollBy({ top: ${amount}, behavior: 'smooth' })`;
262
179
  await page.evaluate(scrollScript);
263
- // Wait for scroll to complete
264
180
  await new Promise((r) => setTimeout(r, 500));
265
181
  return true;
266
182
  }
@@ -270,7 +186,6 @@ Respond with ONLY valid JSON matching this structure.`;
270
186
  }
271
187
  case 'extract':
272
188
  case 'none':
273
- // These don't require page interaction
274
189
  return action.action === 'extract';
275
190
  default:
276
191
  return false;
@@ -282,9 +197,6 @@ Respond with ONLY valid JSON matching this structure.`;
282
197
  }
283
198
  }
284
199
  // ==================== Private Methods ====================
285
- /**
286
- * Capture a screenshot from the current browser session.
287
- */
288
200
  async captureScreenshot() {
289
201
  const session = BrowserBaseBubble.getSession(this.sessionId);
290
202
  if (!session)
@@ -300,9 +212,6 @@ Respond with ONLY valid JSON matching this structure.`;
300
212
  return null;
301
213
  }
302
214
  }
303
- /**
304
- * Get the current page URL.
305
- */
306
215
  async getCurrentUrl() {
307
216
  const session = BrowserBaseBubble.getSession(this.sessionId);
308
217
  if (!session)
@@ -314,25 +223,6 @@ Respond with ONLY valid JSON matching this structure.`;
314
223
  return '';
315
224
  }
316
225
  }
317
- /**
318
- * Extract interactive elements from the page.
319
- */
320
- async extractInteractiveElements() {
321
- const session = BrowserBaseBubble.getSession(this.sessionId);
322
- if (!session)
323
- return [];
324
- try {
325
- const elements = await session.page.evaluate(EXTRACT_ELEMENTS_SCRIPT);
326
- return elements;
327
- }
328
- catch (err) {
329
- console.error('[AIBrowserAgent] Element extraction failed:', err);
330
- return [];
331
- }
332
- }
333
- /**
334
- * Call the AI agent with a message and optional screenshot.
335
- */
336
226
  async callAI(message, screenshotBase64, systemPrompt) {
337
227
  const geminiKey = this.credentials?.[CredentialType.GOOGLE_GEMINI_CRED];
338
228
  if (!geminiKey) {
@@ -357,7 +247,6 @@ Respond with ONLY valid JSON matching this structure.`;
357
247
  credentials: {
358
248
  [CredentialType.GOOGLE_GEMINI_CRED]: geminiKey,
359
249
  },
360
- // Disable tools for simple JSON responses
361
250
  tools: [],
362
251
  }, this.context);
363
252
  const result = await agent.action();
@@ -366,54 +255,17 @@ Respond with ONLY valid JSON matching this structure.`;
366
255
  }
367
256
  return result.data.response;
368
257
  }
369
- /**
370
- * Build the prompt for recovery action suggestion.
371
- */
372
- buildRecoveryPrompt(task, error, currentUrl, elements) {
373
- // Summarize elements for context (limit to key info)
374
- const elementSummary = elements
375
- .slice(0, 30)
376
- .map((el) => {
377
- const parts = [el.tagName];
378
- if (el.name)
379
- parts.push(`"${el.name}"`);
380
- if (el.id)
381
- parts.push(`#${el.id}`);
382
- if (el.role)
383
- parts.push(`[role="${el.role}"]`);
384
- parts.push(`at (${el.boundingBox.x},${el.boundingBox.y})`);
385
- return parts.join(' ');
386
- })
387
- .join('\n');
388
- return `Task: ${task}
389
-
390
- Error: ${error}
391
-
392
- Current URL: ${currentUrl}
393
-
394
- Interactive elements on page:
395
- ${elementSummary || 'No interactive elements found'}
396
-
397
- Analyze the screenshot and suggest ONE action to help recover from this error.`;
398
- }
399
258
  /**
400
259
  * Parse the AI response into a typed action.
401
260
  */
402
261
  parseRecoveryAction(response) {
403
262
  try {
404
263
  const parsed = JSON.parse(response);
405
- // Validate action type
406
264
  switch (parsed.action) {
407
265
  case 'click':
408
- if (typeof parsed.selector === 'string') {
409
- return { action: 'click', selector: parsed.selector };
410
- }
411
- break;
412
266
  case 'click_coordinates':
413
- if (Array.isArray(parsed.coordinates) &&
414
- parsed.coordinates.length === 2 &&
415
- typeof parsed.coordinates[0] === 'number' &&
416
- typeof parsed.coordinates[1] === 'number') {
267
+ // Both map to click_coordinates — AI should always return coordinates
268
+ if (this.hasValidCoordinates(parsed.coordinates)) {
417
269
  return {
418
270
  action: 'click_coordinates',
419
271
  coordinates: parsed.coordinates,
@@ -421,13 +273,22 @@ Analyze the screenshot and suggest ONE action to help recover from this error.`;
421
273
  }
422
274
  break;
423
275
  case 'type':
424
- if (typeof parsed.selector === 'string' &&
425
- typeof parsed.value === 'string') {
426
- return {
427
- action: 'type',
428
- selector: parsed.selector,
429
- value: parsed.value,
430
- };
276
+ if (typeof parsed.value === 'string') {
277
+ if (this.hasValidCoordinates(parsed.coordinates)) {
278
+ return {
279
+ action: 'type',
280
+ coordinates: parsed.coordinates,
281
+ value: parsed.value,
282
+ };
283
+ }
284
+ // Legacy selector fallback
285
+ if (typeof parsed.selector === 'string') {
286
+ return {
287
+ action: 'type',
288
+ selector: parsed.selector,
289
+ value: parsed.value,
290
+ };
291
+ }
431
292
  }
432
293
  break;
433
294
  case 'scroll':
@@ -459,11 +320,16 @@ Analyze the screenshot and suggest ONE action to help recover from this error.`;
459
320
  return { action: 'none', reason: 'Failed to parse AI response' };
460
321
  }
461
322
  }
323
+ hasValidCoordinates(coordinates) {
324
+ return (Array.isArray(coordinates) &&
325
+ coordinates.length === 2 &&
326
+ typeof coordinates[0] === 'number' &&
327
+ typeof coordinates[1] === 'number');
328
+ }
462
329
  /**
463
330
  * Generate a human-readable description of a Zod schema.
464
331
  */
465
332
  describeZodSchema(schema) {
466
- // Get the shape if it's an object schema
467
333
  const def = schema._def;
468
334
  if (def.typeName === 'ZodObject' && def.shape) {
469
335
  const shape = def.shape();
@@ -1 +1 @@
1
- {"version":3,"file":"ai-browser-agent.js","sourceRoot":"","sources":["../../../../../../src/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-browser-agent.js","sourceRoot":"","sources":["../../../../../../src/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,10 @@ export type AIBrowserAction = {
31
31
  action: 'type';
32
32
  selector: string;
33
33
  value: string;
34
+ } | {
35
+ action: 'type';
36
+ coordinates: [number, number];
37
+ value: string;
34
38
  } | {
35
39
  action: 'scroll';
36
40
  direction: 'up' | 'down';
@@ -1 +1 @@
1
- {"version":3,"file":"ai-browser-agent.types.d.ts","sourceRoot":"","sources":["../../../../../../src/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9D;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"ai-browser-agent.types.d.ts","sourceRoot":"","sources":["../../../../../../src/bubbles/tool-bubble/browser-tools/_shared/ai/ai-browser-agent.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9D;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC"}
@@ -150,6 +150,16 @@ export declare class LinkedInConnectionTool<T extends LinkedInConnectionToolPara
150
150
  static readonly type = "tool";
151
151
  /** JS helper to query elements across main document, iframes, and shadow DOM */
152
152
  private static readonly CROSS_DOM_QUERY;
153
+ /**
154
+ * JS helper to find the profile card's action button container.
155
+ *
156
+ * LinkedIn renders sidebar recommendation buttons (e.g. "Invite Dr. David P.
157
+ * to connect") inside the same <main><section> as the profile card, so we
158
+ * can't rely on section scoping. Instead, we find a known profile-specific
159
+ * button like "Follow <name>" or "Message <name>" and walk up to the action
160
+ * button row that also contains the "More" button.
161
+ */
162
+ private static readonly FIND_ACTION_ROW;
153
163
  private sessionId;
154
164
  private contextId;
155
165
  private cookies;
@@ -162,10 +172,31 @@ export declare class LinkedInConnectionTool<T extends LinkedInConnectionToolPara
162
172
  private stepWaitForProfilePage;
163
173
  private stepExtractProfileInfo;
164
174
  private stepClickConnect;
175
+ /**
176
+ * Wait for the connection modal OR detect that the connection was sent
177
+ * directly (no modal). Returns 'modal' if modal appeared, 'pending' if
178
+ * connection was sent directly, or throws if neither happened.
179
+ */
165
180
  private stepWaitForModal;
166
181
  private stepAddNote;
167
182
  private stepSendRequest;
168
183
  private stepEndBrowserSession;
184
+ /**
185
+ * Check if the connection was already sent directly (no modal).
186
+ * LinkedIn sometimes sends connections immediately when clicking Connect
187
+ * from the More dropdown, skipping the "Add a note" / "Send without a note" modal.
188
+ * In that case the button changes to "Pending".
189
+ *
190
+ * Scoped to the profile card (via h1 ancestor) to avoid matching Pending
191
+ * buttons on sidebar recommendation profiles.
192
+ */
193
+ private checkIfConnectionPending;
194
+ /**
195
+ * Dismiss visible LinkedIn overlay popups (Premium upsell, Sales Navigator,
196
+ * cookie consent, etc.). Called from inside polling loops so it runs on
197
+ * every iteration rather than as a one-shot step.
198
+ */
199
+ private dismissPopupsOnce;
169
200
  private evaluate;
170
201
  private detectIPAddress;
171
202
  performAction(): Promise<LinkedInConnectionToolResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../src/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAMjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAIL,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EAElC,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,qBAAa,sBAAsB,CACjC,CAAC,SACC,iCAAiC,GAAG,iCAAiC,CACvE,SAAQ,UAAU,CAAC,CAAC,EAAE,4BAA4B,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAG,0BAA0B,CAAU;IACjE,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAsC;IAC5D,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAsC;IAClE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,wDACuB;IACvD,MAAM,CAAC,QAAQ,CAAC,eAAe,qKAG7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,yBAAyB;IAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAE9B,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAgBrC;IAEF,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAA4B;gBAGzC,MAAM,GAAE,CAA0D,EAClE,OAAO,CAAC,EAAE,aAAa;IAKzB,+EAA+E;IAC/E,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAUhD,OAAO,CAAC,uBAAuB;YAMjB,uBAAuB;YA4CvB,qBAAqB;YAyBrB,sBAAsB;YA6BtB,sBAAsB;YAkCtB,gBAAgB;YAgFhB,gBAAgB;YAyBhB,WAAW;YAwCX,eAAe;YAwCf,qBAAqB;YAiBrB,QAAQ;YAoBR,eAAe;IAoBvB,aAAa,IAAI,OAAO,CAAC,4BAA4B,CAAC;CAwC7D"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../src/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAMjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAIL,KAAK,iCAAiC,EACtC,KAAK,4BAA4B,EAElC,MAAM,aAAa,CAAC;AAErB;;;;;;GAMG;AACH,qBAAa,sBAAsB,CACjC,CAAC,SACC,iCAAiC,GAAG,iCAAiC,CACvE,SAAQ,UAAU,CAAC,CAAC,EAAE,4BAA4B,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAG,0BAA0B,CAAU;IACjE,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAsC;IAC5D,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAsC;IAClE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,wDACuB;IACvD,MAAM,CAAC,QAAQ,CAAC,eAAe,qKAG7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,yBAAyB;IAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAE9B,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAgBrC;IAEF;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAiCrC;IAEF,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAA4B;gBAGzC,MAAM,GAAE,CAA0D,EAClE,OAAO,CAAC,EAAE,aAAa;IAKzB,+EAA+E;IAC/E,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAUhD,OAAO,CAAC,uBAAuB;YAMjB,uBAAuB;YA4CvB,qBAAqB;YAyBrB,sBAAsB;YA6BtB,sBAAsB;YAkCtB,gBAAgB;IA0E9B;;;;OAIG;YAKW,gBAAgB;YAoChB,WAAW;YAwCX,eAAe;YAwCf,qBAAqB;IAiBnC;;;;;;;;OAQG;YACW,wBAAwB;IAiBtC;;;;OAIG;YACW,iBAAiB;YAuDjB,QAAQ;YAoBR,eAAe;IAoBvB,aAAa,IAAI,OAAO,CAAC,4BAA4B,CAAC;CAgF7D"}