@bubblelab/bubble-core 0.1.142 → 0.1.145

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 (172) hide show
  1. package/dist/bubble-bundle.d.ts +189 -126
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +9 -1
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/agi-inc.d.ts +128 -128
  6. package/dist/bubbles/service-bubble/ai-agent.d.ts +82 -82
  7. package/dist/bubbles/service-bubble/airtable.d.ts +194 -194
  8. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
  9. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
  10. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
  11. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
  12. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +38 -38
  13. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
  14. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
  15. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
  16. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  17. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +126 -126
  18. package/dist/bubbles/service-bubble/apify/apify.d.ts +28 -28
  19. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +74 -74
  20. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
  21. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +97 -90
  22. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts.map +1 -1
  23. package/dist/bubbles/service-bubble/browserbase/browserbase.js +66 -3
  24. package/dist/bubbles/service-bubble/browserbase/browserbase.js.map +1 -1
  25. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +44 -1
  26. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts.map +1 -1
  27. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.js +19 -0
  28. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.js.map +1 -1
  29. package/dist/bubbles/service-bubble/confluence/confluence.d.ts +43 -43
  30. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +96 -96
  31. package/dist/bubbles/service-bubble/eleven-labs.d.ts +48 -48
  32. package/dist/bubbles/service-bubble/firecrawl.d.ts +542 -542
  33. package/dist/bubbles/service-bubble/followupboss.d.ts +308 -308
  34. package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +88 -88
  35. package/dist/bubbles/service-bubble/github.d.ts +136 -136
  36. package/dist/bubbles/service-bubble/gmail.d.ts +344 -344
  37. package/dist/bubbles/service-bubble/google-calendar.d.ts +152 -152
  38. package/dist/bubbles/service-bubble/google-drive.d.ts +136 -136
  39. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +44 -44
  40. package/dist/bubbles/service-bubble/hello-world.d.ts +6 -6
  41. package/dist/bubbles/service-bubble/http.d.ts +10 -10
  42. package/dist/bubbles/service-bubble/insforge-db.d.ts +12 -12
  43. package/dist/bubbles/service-bubble/jira/jira.d.ts +86 -86
  44. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
  45. package/dist/bubbles/service-bubble/notion/notion.d.ts +1438 -1438
  46. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
  47. package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
  48. package/dist/bubbles/service-bubble/resend.d.ts +28 -28
  49. package/dist/bubbles/service-bubble/salesforce/index.d.ts +4 -0
  50. package/dist/bubbles/service-bubble/salesforce/index.d.ts.map +1 -0
  51. package/dist/bubbles/service-bubble/salesforce/index.js +4 -0
  52. package/dist/bubbles/service-bubble/salesforce/index.js.map +1 -0
  53. package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts +1331 -0
  54. package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts.map +1 -0
  55. package/dist/bubbles/service-bubble/salesforce/salesforce.js +618 -0
  56. package/dist/bubbles/service-bubble/salesforce/salesforce.js.map +1 -0
  57. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts +1445 -0
  58. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts.map +1 -0
  59. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js +609 -0
  60. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js.map +1 -0
  61. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts +87 -0
  62. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts.map +1 -0
  63. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js +181 -0
  64. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js.map +1 -0
  65. package/dist/bubbles/service-bubble/slack/slack.d.ts +444 -444
  66. package/dist/bubbles/service-bubble/storage.d.ts +40 -40
  67. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +111 -111
  68. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
  69. package/dist/bubbles/service-bubble/telegram.d.ts +116 -116
  70. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +32 -32
  71. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
  72. package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.d.ts +126 -0
  73. package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.d.ts.map +1 -0
  74. package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.js +34 -0
  75. package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.js.map +1 -0
  76. package/dist/bubbles/tool-bubble/browser-tools/_shared/utils.d.ts +22 -0
  77. package/dist/bubbles/tool-bubble/browser-tools/_shared/utils.d.ts.map +1 -0
  78. package/dist/bubbles/tool-bubble/browser-tools/_shared/utils.js +57 -0
  79. package/dist/bubbles/tool-bubble/browser-tools/_shared/utils.js.map +1 -0
  80. package/dist/bubbles/tool-bubble/browser-tools/index.d.ts +5 -0
  81. package/dist/bubbles/tool-bubble/browser-tools/index.d.ts.map +1 -0
  82. package/dist/bubbles/tool-bubble/browser-tools/index.js +5 -0
  83. package/dist/bubbles/tool-bubble/browser-tools/index.js.map +1 -0
  84. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/index.d.ts +3 -0
  85. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/index.d.ts.map +1 -0
  86. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/index.js +3 -0
  87. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/index.js.map +1 -0
  88. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.d.ts +158 -0
  89. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.d.ts.map +1 -0
  90. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.js +31 -0
  91. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.js.map +1 -0
  92. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.d.ts +161 -0
  93. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.d.ts.map +1 -0
  94. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.js +310 -0
  95. package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.js.map +1 -0
  96. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/index.d.ts +3 -0
  97. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/index.d.ts.map +1 -0
  98. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/index.js +3 -0
  99. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/index.js.map +1 -0
  100. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.d.ts +165 -0
  101. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.d.ts.map +1 -0
  102. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.js +45 -0
  103. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.js.map +1 -0
  104. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts +171 -0
  105. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts.map +1 -0
  106. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.js +364 -0
  107. package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.js.map +1 -0
  108. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/index.d.ts +3 -0
  109. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/index.d.ts.map +1 -0
  110. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/index.js +3 -0
  111. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/index.js.map +1 -0
  112. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.d.ts +160 -0
  113. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.d.ts.map +1 -0
  114. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.js +24 -0
  115. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.js.map +1 -0
  116. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.d.ts +160 -0
  117. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.d.ts.map +1 -0
  118. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.js +334 -0
  119. package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.js.map +1 -0
  120. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/index.d.ts +3 -0
  121. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/index.d.ts.map +1 -0
  122. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/index.js +3 -0
  123. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/index.js.map +1 -0
  124. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.d.ts +152 -0
  125. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.d.ts.map +1 -0
  126. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.js +23 -0
  127. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.js.map +1 -0
  128. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.d.ts +155 -0
  129. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.d.ts.map +1 -0
  130. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.js +233 -0
  131. package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.js.map +1 -0
  132. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +12 -12
  133. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +4 -4
  134. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +4 -4
  135. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +52 -52
  136. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +4 -4
  137. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts +4 -4
  138. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +20 -20
  139. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +8 -8
  140. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts +8 -8
  141. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +470 -470
  142. package/dist/bubbles/tool-bubble/list-airtable-bases-tool.d.ts +4 -4
  143. package/dist/bubbles/tool-bubble/list-airtable-tables-tool.d.ts +16 -16
  144. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +12 -12
  145. package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +44 -44
  146. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +56 -56
  147. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +14 -14
  148. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  149. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  150. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +68 -68
  151. package/dist/bubbles/tool-bubble/tool-template.d.ts +4 -4
  152. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +132 -132
  153. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +8 -8
  154. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
  155. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
  156. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +6 -6
  157. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +40 -40
  158. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +18 -18
  159. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
  160. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +24 -24
  161. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +4 -4
  162. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +76 -76
  163. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +24 -24
  164. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +4 -4
  165. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +36 -36
  166. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +4 -4
  167. package/dist/bubbles.json +668 -70
  168. package/dist/index.d.ts +4 -1
  169. package/dist/index.d.ts.map +1 -1
  170. package/dist/index.js +4 -1
  171. package/dist/index.js.map +1 -1
  172. package/package.json +2 -2
package/dist/bubbles.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "2.0.0",
3
- "generatedAt": "2026-02-10T09:25:41.159Z",
4
- "totalCount": 61,
3
+ "generatedAt": "2026-02-10T23:14:42.079Z",
4
+ "totalCount": 64,
5
5
  "bubbles": [
6
6
  {
7
7
  "name": "hello-world",
@@ -50402,6 +50402,12 @@
50402
50402
  },
50403
50403
  "additionalProperties": false,
50404
50404
  "description": "Stealth mode configuration for anti-bot avoidance and CAPTCHA solving"
50405
+ },
50406
+ "timeout_seconds": {
50407
+ "type": "number",
50408
+ "minimum": 60,
50409
+ "maximum": 21600,
50410
+ "description": "Session timeout in seconds. Duration after which the session automatically ends (60-21600)."
50405
50411
  }
50406
50412
  },
50407
50413
  "required": [
@@ -51135,7 +51141,7 @@
51135
51141
  }
51136
51142
  ]
51137
51143
  },
51138
- "usageExample": "// Start Session example\nconst browserbase_start_session = new BrowserBaseBubble({\n operation: \"start_session\", // Create a new BrowserBase browser session\n context_id: \"example string\", // Existing context ID for session persistence\n cookies: [{ name: \"example string\" // Cookie name, value: \"example string\" // Cookie value, domain: \"example string\" // Cookie domain, path: \"example string\" // Cookie path, expires: 42 // Expiration timestamp, httpOnly: true // HTTP only flag, secure: true // Secure flag }], // Cookies to inject into the session\n viewport_width: 1280 // default, // Browser viewport width\n viewport_height: 900 // default, // Browser viewport height\n proxies: [{ type: \"browserbase\", geolocation: { city: \"example string\" // City name (e.g., \"NEW_YORK\", \"LONDON\"), state: \"example string\" // State code for US locations (e.g., \"NY\", \"CA\"), country: \"example string\" // ISO 3166-1 alpha-2 country code (e.g., \"US\", \"GB\", \"JP\") }, domainPattern: \"example string\" }], // Proxy configuration: true for built-in proxies, or array of proxy configs with routing rules\n stealth: { advancedStealth: false // default // Enable Advanced Stealth Mode with custom Chromium for better anti-bot avoidance (Scale Plan only), solveCaptchas: true // default // Enable automatic CAPTCHA solving (enabled by default), captchaImageSelector: \"example string\" // CSS selector for custom CAPTCHA image element, captchaInputSelector: \"example string\" // CSS selector for custom CAPTCHA input field }, // Stealth mode configuration for anti-bot avoidance and CAPTCHA solving\n});\n\nconst result = await browserbase_start_session.action();\n// outputSchema for result.data when operation === 'start_session':\n// {\n// operation: \"start_session\",\n// success: boolean // Whether the operation was successful,\n// session_id: string | undefined // Created session ID,\n// context_id: string | undefined // Context ID for persistence,\n// debug_url: string | undefined // Debug URL for live viewing,\n// error: string // Error message if operation failed\n// }\n\n\n// Navigate example\nconst browserbase_navigate = new BrowserBaseBubble({\n operation: \"navigate\", // Navigate to a URL\n session_id: \"example string\", // Active browser session ID\n url: \"example string\", // URL to navigate to\n wait_until: \"load\" // options: \"load\", \"domcontentloaded\", \"networkidle0\", \"networkidle2\", // Wait condition for navigation\n timeout: 30000 // default, // Navigation timeout in milliseconds\n});\n\nconst result = await browserbase_navigate.action();\n// outputSchema for result.data when operation === 'navigate':\n// {\n// operation: \"navigate\",\n// success: boolean // Whether the operation was successful,\n// url: string | undefined // Final URL after navigation,\n// error: string // Error message if operation failed\n// }\n\n\n// Click example\nconst browserbase_click = new BrowserBaseBubble({\n operation: \"click\", // Click an element on the page\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector of element to click\n wait_for_navigation: false // default, // Wait for navigation after click\n timeout: 5000 // default, // Element wait timeout in milliseconds\n});\n\nconst result = await browserbase_click.action();\n// outputSchema for result.data when operation === 'click':\n// {\n// operation: \"click\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Type example\nconst browserbase_type = new BrowserBaseBubble({\n operation: \"type\", // Type text into an input element\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector of input element\n text: \"example string\", // Text to type\n clear_first: false // default, // Clear the input before typing\n delay: 0 // default, // Delay between keystrokes in milliseconds\n});\n\nconst result = await browserbase_type.action();\n// outputSchema for result.data when operation === 'type':\n// {\n// operation: \"type\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Evaluate example\nconst browserbase_evaluate = new BrowserBaseBubble({\n operation: \"evaluate\", // Execute JavaScript in page context\n session_id: \"example string\", // Active browser session ID\n script: \"example string\", // JavaScript code to execute (will be wrapped in a function)\n});\n\nconst result = await browserbase_evaluate.action();\n// outputSchema for result.data when operation === 'evaluate':\n// {\n// operation: \"evaluate\",\n// success: boolean // Whether the operation was successful,\n// result: unknown | undefined // Result of JavaScript execution,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Content example\nconst browserbase_get_content = new BrowserBaseBubble({\n operation: \"get_content\", // Get page or element content\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector for specific element (optional, defaults to body)\n content_type: \"html\" // options: \"html\", \"text\", \"outer_html\", // Type of content to retrieve\n});\n\nconst result = await browserbase_get_content.action();\n// outputSchema for result.data when operation === 'get_content':\n// {\n// operation: \"get_content\",\n// success: boolean // Whether the operation was successful,\n// content: string | undefined // Retrieved content,\n// error: string // Error message if operation failed\n// }\n\n\n// Screenshot example\nconst browserbase_screenshot = new BrowserBaseBubble({\n operation: \"screenshot\", // Take a screenshot of the page\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector for specific element (optional, defaults to full page)\n full_page: false // default, // Capture full scrollable page\n format: \"png\" // options: \"png\", \"jpeg\", \"webp\", // Screenshot image format\n quality: 42, // Image quality for jpeg/webp (0-100)\n});\n\nconst result = await browserbase_screenshot.action();\n// outputSchema for result.data when operation === 'screenshot':\n// {\n// operation: \"screenshot\",\n// success: boolean // Whether the operation was successful,\n// data: string | undefined // Base64-encoded screenshot data,\n// format: string | undefined // Image format,\n// error: string // Error message if operation failed\n// }\n\n\n// Wait example\nconst browserbase_wait = new BrowserBaseBubble({\n operation: \"wait\", // Wait for a condition\n session_id: \"example string\", // Active browser session ID\n wait_type: \"selector\" // options: \"selector\", \"timeout\", \"navigation\", // Type of wait condition\n selector: \"example string\", // CSS selector to wait for (for selector wait_type)\n timeout: 5000 // default, // Wait timeout in milliseconds\n});\n\nconst result = await browserbase_wait.action();\n// outputSchema for result.data when operation === 'wait':\n// {\n// operation: \"wait\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Cookies example\nconst browserbase_get_cookies = new BrowserBaseBubble({\n operation: \"get_cookies\", // Get cookies from the browser\n session_id: \"example string\", // Active browser session ID\n domain_filter: \"example string\", // Filter cookies by domain (partial match)\n});\n\nconst result = await browserbase_get_cookies.action();\n// outputSchema for result.data when operation === 'get_cookies':\n// {\n// operation: \"get_cookies\",\n// success: boolean // Whether the operation was successful,\n// cookies: { name: string // Cookie name, value: string // Cookie value, domain: string // Cookie domain, path: string // Cookie path, expires: number // Expiration timestamp, httpOnly: boolean // HTTP only flag, secure: boolean // Secure flag }[] | undefined // Retrieved cookies,\n// error: string // Error message if operation failed\n// }\n\n\n// End Session example\nconst browserbase_end_session = new BrowserBaseBubble({\n operation: \"end_session\", // Close browser session and release resources\n session_id: \"example string\", // Session ID to close\n});\n\nconst result = await browserbase_end_session.action();\n// outputSchema for result.data when operation === 'end_session':\n// {\n// operation: \"end_session\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`browserbase failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
51144
+ "usageExample": "// Start Session example\nconst browserbase_start_session = new BrowserBaseBubble({\n operation: \"start_session\", // Create a new BrowserBase browser session\n context_id: \"example string\", // Existing context ID for session persistence\n cookies: [{ name: \"example string\" // Cookie name, value: \"example string\" // Cookie value, domain: \"example string\" // Cookie domain, path: \"example string\" // Cookie path, expires: 42 // Expiration timestamp, httpOnly: true // HTTP only flag, secure: true // Secure flag }], // Cookies to inject into the session\n viewport_width: 1280 // default, // Browser viewport width\n viewport_height: 900 // default, // Browser viewport height\n proxies: [{ type: \"browserbase\", geolocation: { city: \"example string\" // City name (e.g., \"NEW_YORK\", \"LONDON\"), state: \"example string\" // State code for US locations (e.g., \"NY\", \"CA\"), country: \"example string\" // ISO 3166-1 alpha-2 country code (e.g., \"US\", \"GB\", \"JP\") }, domainPattern: \"example string\" }], // Proxy configuration: true for built-in proxies, or array of proxy configs with routing rules\n stealth: { advancedStealth: false // default // Enable Advanced Stealth Mode with custom Chromium for better anti-bot avoidance (Scale Plan only), solveCaptchas: true // default // Enable automatic CAPTCHA solving (enabled by default), captchaImageSelector: \"example string\" // CSS selector for custom CAPTCHA image element, captchaInputSelector: \"example string\" // CSS selector for custom CAPTCHA input field }, // Stealth mode configuration for anti-bot avoidance and CAPTCHA solving\n timeout_seconds: 42, // Session timeout in seconds. Duration after which the session automatically ends (60-21600).\n});\n\nconst result = await browserbase_start_session.action();\n// outputSchema for result.data when operation === 'start_session':\n// {\n// operation: \"start_session\",\n// success: boolean // Whether the operation was successful,\n// session_id: string | undefined // Created session ID,\n// context_id: string | undefined // Context ID for persistence,\n// debug_url: string | undefined // Debug URL for live viewing,\n// error: string // Error message if operation failed\n// }\n\n\n// Navigate example\nconst browserbase_navigate = new BrowserBaseBubble({\n operation: \"navigate\", // Navigate to a URL\n session_id: \"example string\", // Active browser session ID\n url: \"example string\", // URL to navigate to\n wait_until: \"load\" // options: \"load\", \"domcontentloaded\", \"networkidle0\", \"networkidle2\", // Wait condition for navigation\n timeout: 30000 // default, // Navigation timeout in milliseconds\n});\n\nconst result = await browserbase_navigate.action();\n// outputSchema for result.data when operation === 'navigate':\n// {\n// operation: \"navigate\",\n// success: boolean // Whether the operation was successful,\n// url: string | undefined // Final URL after navigation,\n// error: string // Error message if operation failed\n// }\n\n\n// Click example\nconst browserbase_click = new BrowserBaseBubble({\n operation: \"click\", // Click an element on the page\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector of element to click\n wait_for_navigation: false // default, // Wait for navigation after click\n timeout: 5000 // default, // Element wait timeout in milliseconds\n});\n\nconst result = await browserbase_click.action();\n// outputSchema for result.data when operation === 'click':\n// {\n// operation: \"click\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Type example\nconst browserbase_type = new BrowserBaseBubble({\n operation: \"type\", // Type text into an input element\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector of input element\n text: \"example string\", // Text to type\n clear_first: false // default, // Clear the input before typing\n delay: 0 // default, // Delay between keystrokes in milliseconds\n});\n\nconst result = await browserbase_type.action();\n// outputSchema for result.data when operation === 'type':\n// {\n// operation: \"type\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Evaluate example\nconst browserbase_evaluate = new BrowserBaseBubble({\n operation: \"evaluate\", // Execute JavaScript in page context\n session_id: \"example string\", // Active browser session ID\n script: \"example string\", // JavaScript code to execute (will be wrapped in a function)\n});\n\nconst result = await browserbase_evaluate.action();\n// outputSchema for result.data when operation === 'evaluate':\n// {\n// operation: \"evaluate\",\n// success: boolean // Whether the operation was successful,\n// result: unknown | undefined // Result of JavaScript execution,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Content example\nconst browserbase_get_content = new BrowserBaseBubble({\n operation: \"get_content\", // Get page or element content\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector for specific element (optional, defaults to body)\n content_type: \"html\" // options: \"html\", \"text\", \"outer_html\", // Type of content to retrieve\n});\n\nconst result = await browserbase_get_content.action();\n// outputSchema for result.data when operation === 'get_content':\n// {\n// operation: \"get_content\",\n// success: boolean // Whether the operation was successful,\n// content: string | undefined // Retrieved content,\n// error: string // Error message if operation failed\n// }\n\n\n// Screenshot example\nconst browserbase_screenshot = new BrowserBaseBubble({\n operation: \"screenshot\", // Take a screenshot of the page\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector for specific element (optional, defaults to full page)\n full_page: false // default, // Capture full scrollable page\n format: \"png\" // options: \"png\", \"jpeg\", \"webp\", // Screenshot image format\n quality: 42, // Image quality for jpeg/webp (0-100)\n});\n\nconst result = await browserbase_screenshot.action();\n// outputSchema for result.data when operation === 'screenshot':\n// {\n// operation: \"screenshot\",\n// success: boolean // Whether the operation was successful,\n// data: string | undefined // Base64-encoded screenshot data,\n// format: string | undefined // Image format,\n// error: string // Error message if operation failed\n// }\n\n\n// Wait example\nconst browserbase_wait = new BrowserBaseBubble({\n operation: \"wait\", // Wait for a condition\n session_id: \"example string\", // Active browser session ID\n wait_type: \"selector\" // options: \"selector\", \"timeout\", \"navigation\", // Type of wait condition\n selector: \"example string\", // CSS selector to wait for (for selector wait_type)\n timeout: 5000 // default, // Wait timeout in milliseconds\n});\n\nconst result = await browserbase_wait.action();\n// outputSchema for result.data when operation === 'wait':\n// {\n// operation: \"wait\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Cookies example\nconst browserbase_get_cookies = new BrowserBaseBubble({\n operation: \"get_cookies\", // Get cookies from the browser\n session_id: \"example string\", // Active browser session ID\n domain_filter: \"example string\", // Filter cookies by domain (partial match)\n});\n\nconst result = await browserbase_get_cookies.action();\n// outputSchema for result.data when operation === 'get_cookies':\n// {\n// operation: \"get_cookies\",\n// success: boolean // Whether the operation was successful,\n// cookies: { name: string // Cookie name, value: string // Cookie value, domain: string // Cookie domain, path: string // Cookie path, expires: number // Expiration timestamp, httpOnly: boolean // HTTP only flag, secure: boolean // Secure flag }[] | undefined // Retrieved cookies,\n// error: string // Error message if operation failed\n// }\n\n\n// End Session example\nconst browserbase_end_session = new BrowserBaseBubble({\n operation: \"end_session\", // Close browser session and release resources\n session_id: \"example string\", // Session ID to close\n});\n\nconst result = await browserbase_end_session.action();\n// outputSchema for result.data when operation === 'end_session':\n// {\n// operation: \"end_session\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`browserbase failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
51139
51145
  "requiredCredentials": [
51140
51146
  "AMAZON_CRED",
51141
51147
  "CLOUDFLARE_R2_ACCESS_KEY",
@@ -60513,110 +60519,702 @@
60513
60519
  },
60514
60520
  {
60515
60521
  "name": "linkedin-connection-tool",
60516
- "alias": "linkedin",
60522
+ "alias": "linkedin-recordable",
60517
60523
  "type": "tool",
60518
- "shortDescription": "LinkedIn connection automation - send connection requests with optional notes",
60524
+ "shortDescription": "LinkedIn connection automation with step recording",
60519
60525
  "useCase": "General purpose bubble for various workflow needs",
60520
- "outputSchema": "Complex schema - see usage example for structure",
60526
+ "outputSchema": "{\n operation: \"send_connection\",\n success: boolean // Whether the connection request was sent,\n message: string | undefined // Success or status message,\n profile: { name: string // Full name of the profile owner, headline: string | undefined // Professional headline, location: string | undefined // Location information, profile_url: string // LinkedIn profile URL } | undefined // Profile information of the person,\n error: string // Error message if operation failed\n}",
60521
60527
  "inputJsonSchema": {
60522
- "anyOf": [
60523
- {
60528
+ "type": "object",
60529
+ "properties": {
60530
+ "operation": {
60531
+ "type": "string",
60532
+ "enum": [
60533
+ "send_connection"
60534
+ ],
60535
+ "description": "Send a connection request to a LinkedIn profile"
60536
+ },
60537
+ "profile_url": {
60538
+ "type": "string",
60539
+ "minLength": 1,
60540
+ "description": "LinkedIn profile URL (e.g., https://www.linkedin.com/in/username)"
60541
+ },
60542
+ "message": {
60543
+ "type": "string",
60544
+ "maxLength": 300,
60545
+ "description": "Optional personalized note to include with the connection request (max 300 characters)"
60546
+ },
60547
+ "credentials": {
60524
60548
  "type": "object",
60525
- "properties": {
60526
- "operation": {
60527
- "type": "string",
60528
- "enum": [
60529
- "send_connection"
60549
+ "additionalProperties": {
60550
+ "type": "string"
60551
+ },
60552
+ "description": "Required: LINKEDIN_CRED for authenticated LinkedIn session"
60553
+ },
60554
+ "proxy": {
60555
+ "anyOf": [
60556
+ {
60557
+ "type": "object",
60558
+ "properties": {
60559
+ "type": {
60560
+ "type": "string",
60561
+ "enum": [
60562
+ "none"
60563
+ ]
60564
+ }
60565
+ },
60566
+ "required": [
60567
+ "type"
60530
60568
  ],
60531
- "description": "Send a connection request to a LinkedIn profile"
60532
- },
60533
- "profile_url": {
60534
- "type": "string",
60535
- "minLength": 1,
60536
- "description": "LinkedIn profile URL (e.g., https://www.linkedin.com/in/username)"
60569
+ "additionalProperties": false
60537
60570
  },
60538
- "message": {
60539
- "type": "string",
60540
- "maxLength": 300,
60541
- "description": "Optional personalized note to include with the connection request (max 300 characters)"
60571
+ {
60572
+ "type": "object",
60573
+ "properties": {
60574
+ "type": {
60575
+ "type": "string",
60576
+ "enum": [
60577
+ "browserbase"
60578
+ ]
60579
+ }
60580
+ },
60581
+ "required": [
60582
+ "type"
60583
+ ],
60584
+ "additionalProperties": false
60542
60585
  },
60543
- "credentials": {
60586
+ {
60544
60587
  "type": "object",
60545
- "additionalProperties": {
60546
- "type": "string"
60588
+ "properties": {
60589
+ "type": {
60590
+ "type": "string",
60591
+ "enum": [
60592
+ "custom"
60593
+ ]
60594
+ },
60595
+ "proxy": {
60596
+ "type": "object",
60597
+ "properties": {
60598
+ "id": {
60599
+ "type": "string",
60600
+ "description": "User-provided identifier for the proxy"
60601
+ },
60602
+ "server": {
60603
+ "type": "string",
60604
+ "description": "Proxy server URL"
60605
+ },
60606
+ "username": {
60607
+ "type": "string",
60608
+ "description": "Proxy authentication username"
60609
+ },
60610
+ "password": {
60611
+ "type": "string",
60612
+ "description": "Proxy authentication password"
60613
+ }
60614
+ },
60615
+ "required": [
60616
+ "id",
60617
+ "server"
60618
+ ],
60619
+ "additionalProperties": false
60620
+ }
60547
60621
  },
60548
- "description": "Required: LINKEDIN_CRED for authenticated LinkedIn session"
60622
+ "required": [
60623
+ "type",
60624
+ "proxy"
60625
+ ],
60626
+ "additionalProperties": false
60549
60627
  }
60550
- },
60551
- "required": [
60552
- "operation",
60553
- "profile_url"
60554
60628
  ],
60555
- "additionalProperties": false
60629
+ "description": "Proxy configuration: none (direct connection), browserbase (residential), or custom proxy"
60556
60630
  }
60557
- ]
60631
+ },
60632
+ "required": [
60633
+ "operation",
60634
+ "profile_url"
60635
+ ],
60636
+ "additionalProperties": false
60558
60637
  },
60559
60638
  "outputJsonSchema": {
60560
- "anyOf": [
60561
- {
60639
+ "type": "object",
60640
+ "properties": {
60641
+ "operation": {
60642
+ "type": "string",
60643
+ "enum": [
60644
+ "send_connection"
60645
+ ]
60646
+ },
60647
+ "success": {
60648
+ "type": "boolean",
60649
+ "description": "Whether the connection request was sent"
60650
+ },
60651
+ "message": {
60652
+ "type": "string",
60653
+ "description": "Success or status message"
60654
+ },
60655
+ "profile": {
60562
60656
  "type": "object",
60563
60657
  "properties": {
60564
- "operation": {
60658
+ "name": {
60565
60659
  "type": "string",
60566
- "enum": [
60567
- "send_connection"
60568
- ]
60660
+ "description": "Full name of the profile owner"
60569
60661
  },
60570
- "success": {
60571
- "type": "boolean",
60572
- "description": "Whether the connection request was sent"
60662
+ "headline": {
60663
+ "type": "string",
60664
+ "description": "Professional headline"
60573
60665
  },
60574
- "message": {
60666
+ "location": {
60575
60667
  "type": "string",
60576
- "description": "Success or status message"
60668
+ "description": "Location information"
60669
+ },
60670
+ "profile_url": {
60671
+ "type": "string",
60672
+ "description": "LinkedIn profile URL"
60673
+ }
60674
+ },
60675
+ "required": [
60676
+ "name",
60677
+ "profile_url"
60678
+ ],
60679
+ "additionalProperties": false,
60680
+ "description": "Profile information of the person"
60681
+ },
60682
+ "error": {
60683
+ "type": "string",
60684
+ "description": "Error message if operation failed"
60685
+ }
60686
+ },
60687
+ "required": [
60688
+ "operation",
60689
+ "success",
60690
+ "error"
60691
+ ],
60692
+ "additionalProperties": false
60693
+ },
60694
+ "usageExample": "// Example usage of linkedin-connection-tool bubble\nconst linkedinConnectionTool = new LinkedInConnectionTool({\n operation: \"send_connection\", // Send a connection request to a LinkedIn profile,\n profile_url: \"example string\", // LinkedIn profile URL (e.g., https://www.linkedin.com/in/username),\n message: \"example string\", // Optional personalized note to include with the connection request (max 300 characters),\n proxy: { type: \"none\" }, // Proxy configuration: none (direct connection), browserbase (residential), or custom proxy,\n});\n\nconst result = await linkedinConnectionTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// operation: \"send_connection\",\n// success: boolean // Whether the connection request was sent,\n// message: string | undefined // Success or status message,\n// profile: { name: string // Full name of the profile owner, headline: string | undefined // Professional headline, location: string | undefined // Location information, profile_url: string // LinkedIn profile URL } | undefined // Profile information of the person,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
60695
+ "requiredCredentials": [
60696
+ "LINKEDIN_CRED",
60697
+ "CLOUDFLARE_R2_ACCESS_KEY",
60698
+ "CLOUDFLARE_R2_SECRET_KEY",
60699
+ "CLOUDFLARE_R2_ACCOUNT_ID"
60700
+ ]
60701
+ },
60702
+ {
60703
+ "name": "linkedin-sent-invitations-tool",
60704
+ "alias": "linkedin-sent-invitations",
60705
+ "type": "tool",
60706
+ "shortDescription": "Extract sent LinkedIn connection invitations",
60707
+ "useCase": "General purpose bubble for various workflow needs",
60708
+ "outputSchema": "{\n operation: \"get_sent_invitations\",\n success: boolean,\n invitations: { name: string // Full name of the person, headline: string | undefined // Professional headline/tagline, sent_date: string // When the invitation was sent, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n total_count: number | undefined,\n message: string | undefined,\n error: string\n}",
60709
+ "inputJsonSchema": {
60710
+ "type": "object",
60711
+ "properties": {
60712
+ "operation": {
60713
+ "type": "string",
60714
+ "enum": [
60715
+ "get_sent_invitations"
60716
+ ]
60717
+ },
60718
+ "credentials": {
60719
+ "type": "object",
60720
+ "additionalProperties": {
60721
+ "type": "string"
60722
+ }
60723
+ },
60724
+ "proxy": {
60725
+ "anyOf": [
60726
+ {
60727
+ "type": "object",
60728
+ "properties": {
60729
+ "type": {
60730
+ "type": "string",
60731
+ "enum": [
60732
+ "none"
60733
+ ]
60734
+ }
60735
+ },
60736
+ "required": [
60737
+ "type"
60738
+ ],
60739
+ "additionalProperties": false
60577
60740
  },
60578
- "profile": {
60741
+ {
60579
60742
  "type": "object",
60580
60743
  "properties": {
60581
- "name": {
60744
+ "type": {
60582
60745
  "type": "string",
60583
- "description": "Full name of the profile owner"
60584
- },
60585
- "headline": {
60746
+ "enum": [
60747
+ "browserbase"
60748
+ ]
60749
+ }
60750
+ },
60751
+ "required": [
60752
+ "type"
60753
+ ],
60754
+ "additionalProperties": false
60755
+ },
60756
+ {
60757
+ "type": "object",
60758
+ "properties": {
60759
+ "type": {
60586
60760
  "type": "string",
60587
- "description": "Professional headline"
60761
+ "enum": [
60762
+ "custom"
60763
+ ]
60588
60764
  },
60589
- "location": {
60765
+ "proxy": {
60766
+ "type": "object",
60767
+ "properties": {
60768
+ "id": {
60769
+ "type": "string",
60770
+ "description": "User-provided identifier for the proxy"
60771
+ },
60772
+ "server": {
60773
+ "type": "string",
60774
+ "description": "Proxy server URL"
60775
+ },
60776
+ "username": {
60777
+ "type": "string",
60778
+ "description": "Proxy authentication username"
60779
+ },
60780
+ "password": {
60781
+ "type": "string",
60782
+ "description": "Proxy authentication password"
60783
+ }
60784
+ },
60785
+ "required": [
60786
+ "id",
60787
+ "server"
60788
+ ],
60789
+ "additionalProperties": false
60790
+ }
60791
+ },
60792
+ "required": [
60793
+ "type",
60794
+ "proxy"
60795
+ ],
60796
+ "additionalProperties": false
60797
+ }
60798
+ ]
60799
+ }
60800
+ },
60801
+ "required": [
60802
+ "operation"
60803
+ ],
60804
+ "additionalProperties": false
60805
+ },
60806
+ "outputJsonSchema": {
60807
+ "type": "object",
60808
+ "properties": {
60809
+ "operation": {
60810
+ "type": "string",
60811
+ "enum": [
60812
+ "get_sent_invitations"
60813
+ ]
60814
+ },
60815
+ "success": {
60816
+ "type": "boolean"
60817
+ },
60818
+ "invitations": {
60819
+ "type": "array",
60820
+ "items": {
60821
+ "type": "object",
60822
+ "properties": {
60823
+ "name": {
60824
+ "type": "string",
60825
+ "description": "Full name of the person"
60826
+ },
60827
+ "headline": {
60828
+ "type": "string",
60829
+ "description": "Professional headline/tagline"
60830
+ },
60831
+ "sent_date": {
60832
+ "type": "string",
60833
+ "description": "When the invitation was sent"
60834
+ },
60835
+ "profile_url": {
60836
+ "type": "string",
60837
+ "description": "LinkedIn profile URL"
60838
+ }
60839
+ },
60840
+ "required": [
60841
+ "name",
60842
+ "sent_date"
60843
+ ],
60844
+ "additionalProperties": false
60845
+ }
60846
+ },
60847
+ "total_count": {
60848
+ "type": "number"
60849
+ },
60850
+ "message": {
60851
+ "type": "string"
60852
+ },
60853
+ "error": {
60854
+ "type": "string"
60855
+ }
60856
+ },
60857
+ "required": [
60858
+ "operation",
60859
+ "success",
60860
+ "error"
60861
+ ],
60862
+ "additionalProperties": false
60863
+ },
60864
+ "usageExample": "// Example usage of linkedin-sent-invitations-tool bubble\nconst linkedinSentInvitationsTool = new LinkedInSentInvitationsTool({\n operation: \"get_sent_invitations\",,\n proxy: { type: \"none\" },,\n});\n\nconst result = await linkedinSentInvitationsTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// operation: \"get_sent_invitations\",\n// success: boolean,\n// invitations: { name: string // Full name of the person, headline: string | undefined // Professional headline/tagline, sent_date: string // When the invitation was sent, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n// total_count: number | undefined,\n// message: string | undefined,\n// error: string\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
60865
+ "requiredCredentials": [
60866
+ "LINKEDIN_CRED",
60867
+ "CLOUDFLARE_R2_ACCESS_KEY",
60868
+ "CLOUDFLARE_R2_SECRET_KEY",
60869
+ "CLOUDFLARE_R2_ACCOUNT_ID"
60870
+ ]
60871
+ },
60872
+ {
60873
+ "name": "linkedin-received-invitations-tool",
60874
+ "alias": "linkedin-received-invitations",
60875
+ "type": "tool",
60876
+ "shortDescription": "Extract received LinkedIn connection invitations",
60877
+ "useCase": "General purpose bubble for various workflow needs",
60878
+ "outputSchema": "{\n operation: \"get_received_invitations\",\n success: boolean,\n invitations: { name: string // Full name of the person, headline: string | undefined // Professional headline/tagline, mutual_connections: string | undefined // Mutual connections info, received_date: string // When the invitation was received, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n total_count: number | undefined,\n message: string | undefined,\n error: string\n}",
60879
+ "inputJsonSchema": {
60880
+ "type": "object",
60881
+ "properties": {
60882
+ "operation": {
60883
+ "type": "string",
60884
+ "enum": [
60885
+ "get_received_invitations"
60886
+ ]
60887
+ },
60888
+ "credentials": {
60889
+ "type": "object",
60890
+ "additionalProperties": {
60891
+ "type": "string"
60892
+ }
60893
+ },
60894
+ "proxy": {
60895
+ "anyOf": [
60896
+ {
60897
+ "type": "object",
60898
+ "properties": {
60899
+ "type": {
60590
60900
  "type": "string",
60591
- "description": "Location information"
60901
+ "enum": [
60902
+ "none"
60903
+ ]
60904
+ }
60905
+ },
60906
+ "required": [
60907
+ "type"
60908
+ ],
60909
+ "additionalProperties": false
60910
+ },
60911
+ {
60912
+ "type": "object",
60913
+ "properties": {
60914
+ "type": {
60915
+ "type": "string",
60916
+ "enum": [
60917
+ "browserbase"
60918
+ ]
60919
+ }
60920
+ },
60921
+ "required": [
60922
+ "type"
60923
+ ],
60924
+ "additionalProperties": false
60925
+ },
60926
+ {
60927
+ "type": "object",
60928
+ "properties": {
60929
+ "type": {
60930
+ "type": "string",
60931
+ "enum": [
60932
+ "custom"
60933
+ ]
60592
60934
  },
60593
- "profile_url": {
60935
+ "proxy": {
60936
+ "type": "object",
60937
+ "properties": {
60938
+ "id": {
60939
+ "type": "string",
60940
+ "description": "User-provided identifier for the proxy"
60941
+ },
60942
+ "server": {
60943
+ "type": "string",
60944
+ "description": "Proxy server URL"
60945
+ },
60946
+ "username": {
60947
+ "type": "string",
60948
+ "description": "Proxy authentication username"
60949
+ },
60950
+ "password": {
60951
+ "type": "string",
60952
+ "description": "Proxy authentication password"
60953
+ }
60954
+ },
60955
+ "required": [
60956
+ "id",
60957
+ "server"
60958
+ ],
60959
+ "additionalProperties": false
60960
+ }
60961
+ },
60962
+ "required": [
60963
+ "type",
60964
+ "proxy"
60965
+ ],
60966
+ "additionalProperties": false
60967
+ }
60968
+ ]
60969
+ }
60970
+ },
60971
+ "required": [
60972
+ "operation"
60973
+ ],
60974
+ "additionalProperties": false
60975
+ },
60976
+ "outputJsonSchema": {
60977
+ "type": "object",
60978
+ "properties": {
60979
+ "operation": {
60980
+ "type": "string",
60981
+ "enum": [
60982
+ "get_received_invitations"
60983
+ ]
60984
+ },
60985
+ "success": {
60986
+ "type": "boolean"
60987
+ },
60988
+ "invitations": {
60989
+ "type": "array",
60990
+ "items": {
60991
+ "type": "object",
60992
+ "properties": {
60993
+ "name": {
60994
+ "type": "string",
60995
+ "description": "Full name of the person"
60996
+ },
60997
+ "headline": {
60998
+ "type": "string",
60999
+ "description": "Professional headline/tagline"
61000
+ },
61001
+ "mutual_connections": {
61002
+ "type": "string",
61003
+ "description": "Mutual connections info"
61004
+ },
61005
+ "received_date": {
61006
+ "type": "string",
61007
+ "description": "When the invitation was received"
61008
+ },
61009
+ "profile_url": {
61010
+ "type": "string",
61011
+ "description": "LinkedIn profile URL"
61012
+ }
61013
+ },
61014
+ "required": [
61015
+ "name",
61016
+ "received_date"
61017
+ ],
61018
+ "additionalProperties": false
61019
+ }
61020
+ },
61021
+ "total_count": {
61022
+ "type": "number"
61023
+ },
61024
+ "message": {
61025
+ "type": "string"
61026
+ },
61027
+ "error": {
61028
+ "type": "string"
61029
+ }
61030
+ },
61031
+ "required": [
61032
+ "operation",
61033
+ "success",
61034
+ "error"
61035
+ ],
61036
+ "additionalProperties": false
61037
+ },
61038
+ "usageExample": "// Example usage of linkedin-received-invitations-tool bubble\nconst linkedinReceivedInvitationsTool = new LinkedInReceivedInvitationsTool({\n operation: \"get_received_invitations\",,\n proxy: { type: \"none\" },,\n});\n\nconst result = await linkedinReceivedInvitationsTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// operation: \"get_received_invitations\",\n// success: boolean,\n// invitations: { name: string // Full name of the person, headline: string | undefined // Professional headline/tagline, mutual_connections: string | undefined // Mutual connections info, received_date: string // When the invitation was received, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n// total_count: number | undefined,\n// message: string | undefined,\n// error: string\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
61039
+ "requiredCredentials": [
61040
+ "LINKEDIN_CRED",
61041
+ "CLOUDFLARE_R2_ACCESS_KEY",
61042
+ "CLOUDFLARE_R2_SECRET_KEY",
61043
+ "CLOUDFLARE_R2_ACCOUNT_ID"
61044
+ ]
61045
+ },
61046
+ {
61047
+ "name": "linkedin-accept-invitations-tool",
61048
+ "alias": "linkedin-accept-invitations",
61049
+ "type": "tool",
61050
+ "shortDescription": "Accept top N LinkedIn connection invitations",
61051
+ "useCase": "General purpose bubble for various workflow needs",
61052
+ "outputSchema": "{\n operation: \"accept_invitations\",\n success: boolean,\n accepted: { name: string // Full name of the person whose invitation was accepted, headline: string | undefined // Professional headline/tagline, mutual_connections: string | undefined // Mutual connections info, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n accepted_count: number | undefined,\n skipped_count: number | undefined,\n message: string | undefined,\n error: string\n}",
61053
+ "inputJsonSchema": {
61054
+ "type": "object",
61055
+ "properties": {
61056
+ "operation": {
61057
+ "type": "string",
61058
+ "enum": [
61059
+ "accept_invitations"
61060
+ ]
61061
+ },
61062
+ "count": {
61063
+ "type": "number",
61064
+ "minimum": 1,
61065
+ "maximum": 100,
61066
+ "default": 5,
61067
+ "description": "Number of invitations to accept (default: 5, max: 100)"
61068
+ },
61069
+ "credentials": {
61070
+ "type": "object",
61071
+ "additionalProperties": {
61072
+ "type": "string"
61073
+ }
61074
+ },
61075
+ "proxy": {
61076
+ "anyOf": [
61077
+ {
61078
+ "type": "object",
61079
+ "properties": {
61080
+ "type": {
60594
61081
  "type": "string",
60595
- "description": "LinkedIn profile URL"
61082
+ "enum": [
61083
+ "none"
61084
+ ]
60596
61085
  }
60597
61086
  },
60598
61087
  "required": [
60599
- "name",
60600
- "profile_url"
61088
+ "type"
60601
61089
  ],
60602
- "additionalProperties": false,
60603
- "description": "Profile information of the person"
61090
+ "additionalProperties": false
60604
61091
  },
60605
- "error": {
60606
- "type": "string",
60607
- "description": "Error message if operation failed"
61092
+ {
61093
+ "type": "object",
61094
+ "properties": {
61095
+ "type": {
61096
+ "type": "string",
61097
+ "enum": [
61098
+ "browserbase"
61099
+ ]
61100
+ }
61101
+ },
61102
+ "required": [
61103
+ "type"
61104
+ ],
61105
+ "additionalProperties": false
61106
+ },
61107
+ {
61108
+ "type": "object",
61109
+ "properties": {
61110
+ "type": {
61111
+ "type": "string",
61112
+ "enum": [
61113
+ "custom"
61114
+ ]
61115
+ },
61116
+ "proxy": {
61117
+ "type": "object",
61118
+ "properties": {
61119
+ "id": {
61120
+ "type": "string",
61121
+ "description": "User-provided identifier for the proxy"
61122
+ },
61123
+ "server": {
61124
+ "type": "string",
61125
+ "description": "Proxy server URL"
61126
+ },
61127
+ "username": {
61128
+ "type": "string",
61129
+ "description": "Proxy authentication username"
61130
+ },
61131
+ "password": {
61132
+ "type": "string",
61133
+ "description": "Proxy authentication password"
61134
+ }
61135
+ },
61136
+ "required": [
61137
+ "id",
61138
+ "server"
61139
+ ],
61140
+ "additionalProperties": false
61141
+ }
61142
+ },
61143
+ "required": [
61144
+ "type",
61145
+ "proxy"
61146
+ ],
61147
+ "additionalProperties": false
60608
61148
  }
60609
- },
60610
- "required": [
60611
- "operation",
60612
- "success",
60613
- "error"
60614
- ],
60615
- "additionalProperties": false
61149
+ ]
60616
61150
  }
60617
- ]
61151
+ },
61152
+ "required": [
61153
+ "operation"
61154
+ ],
61155
+ "additionalProperties": false
61156
+ },
61157
+ "outputJsonSchema": {
61158
+ "type": "object",
61159
+ "properties": {
61160
+ "operation": {
61161
+ "type": "string",
61162
+ "enum": [
61163
+ "accept_invitations"
61164
+ ]
61165
+ },
61166
+ "success": {
61167
+ "type": "boolean"
61168
+ },
61169
+ "accepted": {
61170
+ "type": "array",
61171
+ "items": {
61172
+ "type": "object",
61173
+ "properties": {
61174
+ "name": {
61175
+ "type": "string",
61176
+ "description": "Full name of the person whose invitation was accepted"
61177
+ },
61178
+ "headline": {
61179
+ "type": "string",
61180
+ "description": "Professional headline/tagline"
61181
+ },
61182
+ "mutual_connections": {
61183
+ "type": "string",
61184
+ "description": "Mutual connections info"
61185
+ },
61186
+ "profile_url": {
61187
+ "type": "string",
61188
+ "description": "LinkedIn profile URL"
61189
+ }
61190
+ },
61191
+ "required": [
61192
+ "name"
61193
+ ],
61194
+ "additionalProperties": false
61195
+ }
61196
+ },
61197
+ "accepted_count": {
61198
+ "type": "number"
61199
+ },
61200
+ "skipped_count": {
61201
+ "type": "number"
61202
+ },
61203
+ "message": {
61204
+ "type": "string"
61205
+ },
61206
+ "error": {
61207
+ "type": "string"
61208
+ }
61209
+ },
61210
+ "required": [
61211
+ "operation",
61212
+ "success",
61213
+ "error"
61214
+ ],
61215
+ "additionalProperties": false
60618
61216
  },
60619
- "usageExample": "// Send Connection example\nconst linkedinConnectionTool_send_connection = new LinkedInConnectionTool({\n operation: \"send_connection\", // Send a connection request to a LinkedIn profile\n profile_url: \"example string\", // LinkedIn profile URL (e.g., https://www.linkedin.com/in/username)\n message: \"example string\", // Optional personalized note to include with the connection request (max 300 characters)\n});\n\nconst result = await linkedinConnectionTool_send_connection.action();\n// outputSchema for result.data when operation === 'send_connection':\n// {\n// operation: \"send_connection\",\n// success: boolean // Whether the connection request was sent,\n// message: string | undefined // Success or status message,\n// profile: { name: string // Full name of the profile owner, headline: string | undefined // Professional headline, location: string | undefined // Location information, profile_url: string // LinkedIn profile URL } | undefined // Profile information of the person,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`linkedin-connection-tool failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
61217
+ "usageExample": "// Example usage of linkedin-accept-invitations-tool bubble\nconst linkedinAcceptInvitationsTool = new LinkedInAcceptInvitationsTool({\n operation: \"accept_invitations\",,\n count: 5 // default, // Number of invitations to accept (default: 5, max: 100),\n proxy: { type: \"none\" },,\n});\n\nconst result = await linkedinAcceptInvitationsTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// operation: \"accept_invitations\",\n// success: boolean,\n// accepted: { name: string // Full name of the person whose invitation was accepted, headline: string | undefined // Professional headline/tagline, mutual_connections: string | undefined // Mutual connections info, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n// accepted_count: number | undefined,\n// skipped_count: number | undefined,\n// message: string | undefined,\n// error: string\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
60620
61218
  "requiredCredentials": [
60621
61219
  "LINKEDIN_CRED",
60622
61220
  "CLOUDFLARE_R2_ACCESS_KEY",