@bubblelab/bubble-core 0.1.10 → 0.1.12

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 (350) hide show
  1. package/dist/bubble-bundle.d.ts +803 -351
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +130 -35
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubble-flow/bubble-flow-class.d.ts +5 -0
  6. package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -1
  7. package/dist/bubble-flow/bubble-flow-class.js +20 -0
  8. package/dist/bubble-flow/bubble-flow-class.js.map +1 -1
  9. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts.map +1 -1
  10. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js +6 -3
  11. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js.map +1 -1
  12. package/dist/bubbles/service-bubble/agi-inc.d.ts +1121 -0
  13. package/dist/bubbles/service-bubble/agi-inc.d.ts.map +1 -0
  14. package/dist/bubbles/service-bubble/agi-inc.js +730 -0
  15. package/dist/bubbles/service-bubble/agi-inc.js.map +1 -0
  16. package/dist/bubbles/service-bubble/ai-agent.d.ts +273 -61
  17. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  18. package/dist/bubbles/service-bubble/ai-agent.js +536 -405
  19. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  20. package/dist/bubbles/service-bubble/airtable.d.ts +1753 -0
  21. package/dist/bubbles/service-bubble/airtable.d.ts.map +1 -0
  22. package/dist/bubbles/service-bubble/airtable.js +1173 -0
  23. package/dist/bubbles/service-bubble/airtable.js.map +1 -0
  24. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +240 -0
  25. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts.map +1 -0
  26. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js +119 -0
  27. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js.map +1 -0
  28. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +4 -4
  29. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +14 -14
  30. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +137 -0
  31. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts.map +1 -0
  32. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js +81 -0
  33. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js.map +1 -0
  34. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +6 -6
  35. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +32 -32
  36. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +488 -0
  37. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts.map +1 -0
  38. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js +463 -0
  39. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js.map +1 -0
  40. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +262 -0
  41. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts.map +1 -0
  42. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js +291 -0
  43. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js.map +1 -0
  44. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  45. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +1301 -170
  46. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -1
  47. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +32 -0
  48. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -1
  49. package/dist/bubbles/service-bubble/apify/apify.d.ts +158 -13
  50. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
  51. package/dist/bubbles/service-bubble/apify/apify.js +222 -37
  52. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
  53. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +542 -0
  54. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts.map +1 -0
  55. package/dist/bubbles/service-bubble/browserbase/browserbase.integration.flow.d.ts +37 -0
  56. package/dist/bubbles/service-bubble/browserbase/browserbase.integration.flow.d.ts.map +1 -0
  57. package/dist/bubbles/service-bubble/browserbase/browserbase.integration.flow.js +203 -0
  58. package/dist/bubbles/service-bubble/browserbase/browserbase.integration.flow.js.map +1 -0
  59. package/dist/bubbles/service-bubble/browserbase/browserbase.js +593 -0
  60. package/dist/bubbles/service-bubble/browserbase/browserbase.js.map +1 -0
  61. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +518 -0
  62. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts.map +1 -0
  63. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.js +311 -0
  64. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.js.map +1 -0
  65. package/dist/bubbles/service-bubble/browserbase/index.d.ts +3 -0
  66. package/dist/bubbles/service-bubble/browserbase/index.d.ts.map +1 -0
  67. package/dist/bubbles/service-bubble/browserbase/index.js +3 -0
  68. package/dist/bubbles/service-bubble/browserbase/index.js.map +1 -0
  69. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +1358 -0
  70. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts.map +1 -0
  71. package/dist/bubbles/service-bubble/crustdata/crustdata.js +219 -0
  72. package/dist/bubbles/service-bubble/crustdata/crustdata.js.map +1 -0
  73. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +1604 -0
  74. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts.map +1 -0
  75. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js +194 -0
  76. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js.map +1 -0
  77. package/dist/bubbles/service-bubble/crustdata/index.d.ts +3 -0
  78. package/dist/bubbles/service-bubble/crustdata/index.d.ts.map +1 -0
  79. package/dist/bubbles/service-bubble/crustdata/index.js +3 -0
  80. package/dist/bubbles/service-bubble/crustdata/index.js.map +1 -0
  81. package/dist/bubbles/service-bubble/eleven-labs.d.ts +421 -0
  82. package/dist/bubbles/service-bubble/eleven-labs.d.ts.map +1 -0
  83. package/dist/bubbles/service-bubble/eleven-labs.js +479 -0
  84. package/dist/bubbles/service-bubble/eleven-labs.js.map +1 -0
  85. package/dist/bubbles/service-bubble/firecrawl.d.ts +37748 -0
  86. package/dist/bubbles/service-bubble/firecrawl.d.ts.map +1 -0
  87. package/dist/bubbles/service-bubble/firecrawl.js +1489 -0
  88. package/dist/bubbles/service-bubble/firecrawl.js.map +1 -0
  89. package/dist/bubbles/service-bubble/followupboss.d.ts +6822 -0
  90. package/dist/bubbles/service-bubble/followupboss.d.ts.map +1 -0
  91. package/dist/bubbles/service-bubble/followupboss.js +1394 -0
  92. package/dist/bubbles/service-bubble/followupboss.js.map +1 -0
  93. package/dist/bubbles/service-bubble/github.d.ts +2393 -0
  94. package/dist/bubbles/service-bubble/github.d.ts.map +1 -0
  95. package/dist/bubbles/service-bubble/github.js +1046 -0
  96. package/dist/bubbles/service-bubble/github.js.map +1 -0
  97. package/dist/bubbles/service-bubble/gmail.d.ts +180 -180
  98. package/dist/bubbles/service-bubble/google-calendar.d.ts +60 -60
  99. package/dist/bubbles/service-bubble/google-drive.d.ts +69 -68
  100. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  101. package/dist/bubbles/service-bubble/google-drive.js +35 -3
  102. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  103. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +943 -0
  104. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts.map +1 -0
  105. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +31 -0
  106. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +1 -0
  107. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +184 -0
  108. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +1 -0
  109. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js +401 -0
  110. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js.map +1 -0
  111. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +1024 -0
  112. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts.map +1 -0
  113. package/dist/bubbles/service-bubble/{google-sheets.js → google-sheets/google-sheets.schema.js} +45 -409
  114. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.js.map +1 -0
  115. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts +38 -0
  116. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts.map +1 -0
  117. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js +183 -0
  118. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js.map +1 -0
  119. package/dist/bubbles/service-bubble/google-sheets/index.d.ts +4 -0
  120. package/dist/bubbles/service-bubble/google-sheets/index.d.ts.map +1 -0
  121. package/dist/bubbles/service-bubble/google-sheets/index.js +4 -0
  122. package/dist/bubbles/service-bubble/google-sheets/index.js.map +1 -0
  123. package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
  124. package/dist/bubbles/service-bubble/http.d.ts +17 -5
  125. package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
  126. package/dist/bubbles/service-bubble/http.integration.flow.d.ts +49 -0
  127. package/dist/bubbles/service-bubble/http.integration.flow.d.ts.map +1 -0
  128. package/dist/bubbles/service-bubble/http.integration.flow.js +425 -0
  129. package/dist/bubbles/service-bubble/http.integration.flow.js.map +1 -0
  130. package/dist/bubbles/service-bubble/http.js +47 -5
  131. package/dist/bubbles/service-bubble/http.js.map +1 -1
  132. package/dist/bubbles/service-bubble/insforge-db.d.ts +140 -0
  133. package/dist/bubbles/service-bubble/insforge-db.d.ts.map +1 -0
  134. package/dist/bubbles/service-bubble/insforge-db.js +260 -0
  135. package/dist/bubbles/service-bubble/insforge-db.js.map +1 -0
  136. package/dist/bubbles/service-bubble/notion/index.d.ts +3 -0
  137. package/dist/bubbles/service-bubble/notion/index.d.ts.map +1 -0
  138. package/dist/bubbles/service-bubble/notion/index.js +3 -0
  139. package/dist/bubbles/service-bubble/notion/index.js.map +1 -0
  140. package/dist/bubbles/service-bubble/notion/notion.d.ts +35405 -0
  141. package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -0
  142. package/dist/bubbles/service-bubble/notion/notion.js +1492 -0
  143. package/dist/bubbles/service-bubble/notion/notion.js.map +1 -0
  144. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +1148 -0
  145. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts.map +1 -0
  146. package/dist/bubbles/service-bubble/notion/property-schemas.js +341 -0
  147. package/dist/bubbles/service-bubble/notion/property-schemas.js.map +1 -0
  148. package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
  149. package/dist/bubbles/service-bubble/resend.d.ts +30 -9
  150. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
  151. package/dist/bubbles/service-bubble/resend.js +133 -2
  152. package/dist/bubbles/service-bubble/resend.js.map +1 -1
  153. package/dist/bubbles/service-bubble/slack.d.ts +1741 -798
  154. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -1
  155. package/dist/bubbles/service-bubble/slack.js +322 -28
  156. package/dist/bubbles/service-bubble/slack.js.map +1 -1
  157. package/dist/bubbles/service-bubble/storage.d.ts +26 -22
  158. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -1
  159. package/dist/bubbles/service-bubble/storage.js +45 -4
  160. package/dist/bubbles/service-bubble/storage.js.map +1 -1
  161. package/dist/bubbles/service-bubble/telegram.d.ts +7742 -0
  162. package/dist/bubbles/service-bubble/telegram.d.ts.map +1 -0
  163. package/dist/bubbles/service-bubble/telegram.js +1132 -0
  164. package/dist/bubbles/service-bubble/telegram.js.map +1 -0
  165. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +494 -0
  166. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts.map +1 -0
  167. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.integration.flow.d.ts +31 -0
  168. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.integration.flow.d.ts.map +1 -0
  169. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.integration.flow.js +100 -0
  170. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.integration.flow.js.map +1 -0
  171. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.js +1301 -0
  172. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.js.map +1 -0
  173. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +473 -0
  174. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts.map +1 -0
  175. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.js +230 -0
  176. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.js.map +1 -0
  177. package/dist/bubbles/tool-bubble/amazon-shopping-tool/index.d.ts +3 -0
  178. package/dist/bubbles/tool-bubble/amazon-shopping-tool/index.d.ts.map +1 -0
  179. package/dist/bubbles/tool-bubble/amazon-shopping-tool/index.js +3 -0
  180. package/dist/bubbles/tool-bubble/amazon-shopping-tool/index.js.map +1 -0
  181. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +76 -20
  182. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts.map +1 -1
  183. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js +12 -0
  184. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js.map +1 -1
  185. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +14 -14
  186. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +188 -0
  187. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts.map +1 -0
  188. package/dist/bubbles/tool-bubble/code-edit-tool.js +321 -0
  189. package/dist/bubbles/tool-bubble/code-edit-tool.js.map +1 -0
  190. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +740 -0
  191. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts.map +1 -0
  192. package/dist/bubbles/tool-bubble/company-enrichment-tool.js +350 -0
  193. package/dist/bubbles/tool-bubble/company-enrichment-tool.js.map +1 -0
  194. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +8 -4
  195. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -1
  196. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +115 -10
  197. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -1
  198. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +455 -0
  199. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts.map +1 -0
  200. package/dist/bubbles/tool-bubble/google-maps-tool.js +206 -0
  201. package/dist/bubbles/tool-bubble/google-maps-tool.js.map +1 -0
  202. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +36 -36
  203. package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -1
  204. package/dist/bubbles/tool-bubble/instagram-tool.js +4 -2
  205. package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -1
  206. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +830 -453
  207. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
  208. package/dist/bubbles/tool-bubble/linkedin-tool.js +236 -14
  209. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
  210. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
  211. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +66 -66
  212. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +17 -16
  213. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -1
  214. package/dist/bubbles/tool-bubble/research-agent-tool.js +32 -17
  215. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
  216. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  217. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +485 -0
  218. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts.map +1 -0
  219. package/dist/bubbles/tool-bubble/tiktok-tool.js +226 -0
  220. package/dist/bubbles/tool-bubble/tiktok-tool.js.map +1 -0
  221. package/dist/bubbles/tool-bubble/tool-template.d.ts +8 -8
  222. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +947 -0
  223. package/dist/bubbles/tool-bubble/twitter-tool.d.ts.map +1 -0
  224. package/dist/bubbles/tool-bubble/twitter-tool.js +497 -0
  225. package/dist/bubbles/tool-bubble/twitter-tool.js.map +1 -0
  226. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +22 -16
  227. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts.map +1 -1
  228. package/dist/bubbles/tool-bubble/web-crawl-tool.js +58 -59
  229. package/dist/bubbles/tool-bubble/web-crawl-tool.js.map +1 -1
  230. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
  231. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts.map +1 -1
  232. package/dist/bubbles/tool-bubble/web-extract-tool.js +17 -17
  233. package/dist/bubbles/tool-bubble/web-extract-tool.js.map +1 -1
  234. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +21 -113
  235. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -1
  236. package/dist/bubbles/tool-bubble/web-scrape-tool.js +55 -73
  237. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
  238. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +20 -9
  239. package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -1
  240. package/dist/bubbles/tool-bubble/web-search-tool.js +45 -35
  241. package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -1
  242. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +25 -25
  243. package/dist/bubbles/tool-bubble/youtube-tool.d.ts.map +1 -1
  244. package/dist/bubbles/tool-bubble/youtube-tool.js +8 -5
  245. package/dist/bubbles/tool-bubble/youtube-tool.js.map +1 -1
  246. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
  247. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +30 -30
  248. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +1 -1
  249. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +22 -22
  250. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +1 -1
  251. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +70 -70
  252. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -1
  253. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +4 -4
  254. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -1
  255. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +36 -36
  256. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +1 -1
  257. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +14 -14
  258. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts.map +1 -1
  259. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +6 -6
  260. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -1
  261. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +18 -18
  262. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts.map +1 -1
  263. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +24 -4
  264. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -1
  265. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +19 -19
  266. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -1
  267. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +8 -8
  268. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -1
  269. package/dist/bubbles.json +260 -77
  270. package/dist/index.d.ts +25 -4
  271. package/dist/index.d.ts.map +1 -1
  272. package/dist/index.js +18 -3
  273. package/dist/index.js.map +1 -1
  274. package/dist/logging/BubbleLogger.d.ts +55 -16
  275. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  276. package/dist/logging/BubbleLogger.js +192 -77
  277. package/dist/logging/BubbleLogger.js.map +1 -1
  278. package/dist/logging/StreamingBubbleLogger.d.ts +21 -1
  279. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
  280. package/dist/logging/StreamingBubbleLogger.js +80 -8
  281. package/dist/logging/StreamingBubbleLogger.js.map +1 -1
  282. package/dist/logging/WebhookStreamLogger.d.ts +66 -0
  283. package/dist/logging/WebhookStreamLogger.d.ts.map +1 -0
  284. package/dist/logging/WebhookStreamLogger.js +291 -0
  285. package/dist/logging/WebhookStreamLogger.js.map +1 -0
  286. package/dist/types/available-tools.d.ts +1 -1
  287. package/dist/types/available-tools.d.ts.map +1 -1
  288. package/dist/types/available-tools.js +7 -0
  289. package/dist/types/available-tools.js.map +1 -1
  290. package/dist/types/base-bubble-class.d.ts +6 -4
  291. package/dist/types/base-bubble-class.d.ts.map +1 -1
  292. package/dist/types/base-bubble-class.js +30 -23
  293. package/dist/types/base-bubble-class.js.map +1 -1
  294. package/dist/types/bubble.d.ts +2 -0
  295. package/dist/types/bubble.d.ts.map +1 -1
  296. package/dist/types/service-bubble-class.d.ts +1 -1
  297. package/dist/types/service-bubble-class.d.ts.map +1 -1
  298. package/dist/types/service-bubble-class.js +2 -2
  299. package/dist/types/service-bubble-class.js.map +1 -1
  300. package/dist/types/tool-bubble-class.d.ts +1 -1
  301. package/dist/types/tool-bubble-class.d.ts.map +1 -1
  302. package/dist/types/tool-bubble-class.js +60 -10
  303. package/dist/types/tool-bubble-class.js.map +1 -1
  304. package/dist/types/workflow-bubble-class.d.ts +1 -1
  305. package/dist/types/workflow-bubble-class.d.ts.map +1 -1
  306. package/dist/types/workflow-bubble-class.js +2 -2
  307. package/dist/types/workflow-bubble-class.js.map +1 -1
  308. package/dist/utils/agent-formatter.d.ts +14 -2
  309. package/dist/utils/agent-formatter.d.ts.map +1 -1
  310. package/dist/utils/agent-formatter.js +174 -26
  311. package/dist/utils/agent-formatter.js.map +1 -1
  312. package/dist/utils/bubbleflow-validation.d.ts +7 -0
  313. package/dist/utils/bubbleflow-validation.d.ts.map +1 -1
  314. package/dist/utils/bubbleflow-validation.js +171 -6
  315. package/dist/utils/bubbleflow-validation.js.map +1 -1
  316. package/dist/utils/json-parsing.d.ts.map +1 -1
  317. package/dist/utils/json-parsing.js +146 -0
  318. package/dist/utils/json-parsing.js.map +1 -1
  319. package/dist/utils/safe-gemini-chat.d.ts +31 -0
  320. package/dist/utils/safe-gemini-chat.d.ts.map +1 -0
  321. package/dist/utils/safe-gemini-chat.js +93 -0
  322. package/dist/utils/safe-gemini-chat.js.map +1 -0
  323. package/dist/utils/schema-comparison.d.ts +92 -0
  324. package/dist/utils/schema-comparison.d.ts.map +1 -0
  325. package/dist/utils/schema-comparison.js +716 -0
  326. package/dist/utils/schema-comparison.js.map +1 -0
  327. package/dist/utils/zod-schema.d.ts +24 -0
  328. package/dist/utils/zod-schema.d.ts.map +1 -0
  329. package/dist/utils/zod-schema.js +56 -0
  330. package/dist/utils/zod-schema.js.map +1 -0
  331. package/package.json +6 -4
  332. package/dist/bubbles/service-bubble/google-sheets.d.ts +0 -1811
  333. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +0 -1
  334. package/dist/bubbles/service-bubble/google-sheets.js.map +0 -1
  335. package/dist/bubbles/service-bubble/x-twitter.d.ts +0 -814
  336. package/dist/bubbles/service-bubble/x-twitter.d.ts.map +0 -1
  337. package/dist/bubbles/service-bubble/x-twitter.js +0 -445
  338. package/dist/bubbles/service-bubble/x-twitter.js.map +0 -1
  339. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +0 -125
  340. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +0 -1
  341. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +0 -808
  342. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +0 -1
  343. package/dist/test-gm.d.ts +0 -10
  344. package/dist/test-gm.d.ts.map +0 -1
  345. package/dist/test-gm.js +0 -95
  346. package/dist/test-gm.js.map +0 -1
  347. package/dist/utils/param-helper.d.ts +0 -2
  348. package/dist/utils/param-helper.d.ts.map +0 -1
  349. package/dist/utils/param-helper.js +0 -5
  350. package/dist/utils/param-helper.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twitter-tool.d.ts","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/twitter-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,497 @@
1
+ import { z } from 'zod';
2
+ import { ToolBubble } from '../../types/tool-bubble-class.js';
3
+ import { CredentialType } from '@bubblelab/shared-schemas';
4
+ import { ApifyBubble } from '../service-bubble/apify/apify.js';
5
+ // Unified Twitter data types
6
+ const TwitterUserSchema = z.object({
7
+ id: z.string().nullable().describe('User ID'),
8
+ name: z.string().nullable().describe('User display name'),
9
+ userName: z.string().nullable().describe('User handle (username)'),
10
+ description: z.string().nullable().describe('User bio'),
11
+ isVerified: z.boolean().nullable().describe('Whether user is verified'),
12
+ isBlueVerified: z
13
+ .boolean()
14
+ .nullable()
15
+ .describe('Whether user has Twitter Blue'),
16
+ profilePicture: z.string().nullable().describe('Profile picture URL'),
17
+ followers: z.number().nullable().describe('Number of followers'),
18
+ following: z.number().nullable().describe('Number of following'),
19
+ tweetsCount: z.number().nullable().describe('Total number of tweets'),
20
+ url: z.string().nullable().describe('Profile URL'),
21
+ createdAt: z.string().nullable().describe('Account creation date'),
22
+ });
23
+ const TwitterTweetSchema = z.object({
24
+ id: z.string().nullable().describe('Tweet ID'),
25
+ url: z.string().nullable().describe('Tweet URL'),
26
+ text: z.string().nullable().describe('Tweet text content'),
27
+ author: TwitterUserSchema.nullable().describe('Tweet author information'),
28
+ createdAt: z.string().nullable().describe('Tweet creation date (ISO format)'),
29
+ stats: z
30
+ .object({
31
+ retweetCount: z.number().nullable(),
32
+ replyCount: z.number().nullable(),
33
+ likeCount: z.number().nullable(),
34
+ quoteCount: z.number().nullable(),
35
+ viewCount: z.number().nullable(),
36
+ bookmarkCount: z.number().nullable(),
37
+ })
38
+ .nullable()
39
+ .describe('Tweet engagement statistics'),
40
+ lang: z.string().nullable().describe('Tweet language code'),
41
+ media: z
42
+ .array(z.object({
43
+ type: z.string().nullable(),
44
+ url: z.string().nullable(),
45
+ width: z.number().nullable(),
46
+ height: z.number().nullable(),
47
+ duration: z.number().nullable(),
48
+ }))
49
+ .nullable()
50
+ .describe('Media attachments'),
51
+ entities: z
52
+ .object({
53
+ hashtags: z.array(z.string()).nullable(),
54
+ urls: z.array(z.string()).nullable(),
55
+ mentions: z.array(z.string()).nullable(),
56
+ })
57
+ .nullable()
58
+ .describe('Tweet entities'),
59
+ isRetweet: z.boolean().nullable(),
60
+ isQuote: z.boolean().nullable(),
61
+ isReply: z.boolean().nullable(),
62
+ });
63
+ const TwitterToolParamsSchema = z.object({
64
+ operation: z
65
+ .enum(['scrapeProfile', 'search', 'scrapeUrl'])
66
+ .describe('Operation to perform: scrapeProfile (get tweets from user handles), search (search tweets by query), scrapeUrl (scrape specific Twitter URLs)'),
67
+ // === scrapeProfile operation ===
68
+ twitterHandles: z
69
+ .array(z.string())
70
+ .optional()
71
+ .describe('[scrapeProfile] Twitter handles/usernames to scrape (without @). Example: ["elonmusk", "OpenAI"]'),
72
+ // === search operation ===
73
+ searchTerms: z
74
+ .array(z.string())
75
+ .optional()
76
+ .describe('[search] Search queries. Supports advanced search syntax: https://github.com/igorbrigadir/twitter-advanced-search. Example: ["AI news", "#machinelearning"]'),
77
+ // === scrapeUrl operation ===
78
+ startUrls: z
79
+ .array(z.string())
80
+ .optional()
81
+ .describe('[scrapeUrl] Direct Twitter URLs to scrape. Supports Tweet, Profile, Search, or List URLs. Example: ["https://twitter.com/elonmusk/status/123456"]'),
82
+ // === Common options ===
83
+ maxItems: z
84
+ .number()
85
+ .min(1)
86
+ .max(1000)
87
+ .default(20)
88
+ .optional()
89
+ .describe('Maximum number of tweets to return (default: 20, max: 1000)'),
90
+ sort: z
91
+ .enum(['Top', 'Latest'])
92
+ .optional()
93
+ .describe('[search only] Sort results by "Top" (most relevant) or "Latest" (most recent)'),
94
+ tweetLanguage: z
95
+ .string()
96
+ .optional()
97
+ .describe('Filter tweets by language using ISO 639-1 code (e.g., "en" for English, "es" for Spanish)'),
98
+ credentials: z
99
+ .record(z.nativeEnum(CredentialType), z.string())
100
+ .optional()
101
+ .describe('Required credentials (auto-injected)'),
102
+ });
103
+ const TwitterToolResultSchema = z.object({
104
+ operation: z
105
+ .enum(['scrapeProfile', 'search', 'scrapeUrl'])
106
+ .describe('Operation that was performed'),
107
+ tweets: z.array(TwitterTweetSchema).describe('Array of scraped tweets'),
108
+ totalTweets: z.number().describe('Total number of tweets scraped'),
109
+ success: z.boolean().describe('Whether the operation was successful'),
110
+ error: z.string().describe('Error message if operation failed'),
111
+ });
112
+ /**
113
+ * Generic Twitter/X scraping tool with unified interface
114
+ *
115
+ * This tool abstracts away the underlying scraping service (currently Apify)
116
+ * and provides a simple, opinionated interface for Twitter data extraction.
117
+ *
118
+ * Supports three operations:
119
+ * - scrapeProfile: Scrape user profiles and their tweets
120
+ * - search: Search for tweets by keywords or hashtags
121
+ * - scrapeUrl: Scrape specific Twitter URLs (tweets, profiles, searches, lists)
122
+ *
123
+ * Future versions can add support for other services (BrightData, custom scrapers)
124
+ * while maintaining the same interface.
125
+ */
126
+ export class TwitterTool extends ToolBubble {
127
+ static bubbleName = 'twitter-tool';
128
+ static schema = TwitterToolParamsSchema;
129
+ static resultSchema = TwitterToolResultSchema;
130
+ static shortDescription = 'Scrape Twitter/X profiles, tweets, and search results with a simple, unified interface.';
131
+ static longDescription = `
132
+ Universal Twitter/X scraping tool that provides a simple, opinionated interface for extracting Twitter data.
133
+
134
+ **OPERATIONS:**
135
+ 1. **scrapeProfile**: Scrape user profiles and their tweets
136
+ - Get tweets from specific user handles
137
+ - Track influencer or brand accounts
138
+ - Monitor user activity and engagement
139
+
140
+ 2. **search**: Search for tweets by keywords or hashtags
141
+ - Find tweets by search terms or hashtags
142
+ - Monitor brand mentions and campaigns
143
+ - Research trending topics and conversations
144
+ - Supports advanced search syntax (see Twitter advanced search)
145
+
146
+ 3. **scrapeUrl**: Scrape specific Twitter URLs
147
+ - Scrape individual tweets, profiles, search results, or lists
148
+ - Extract data from specific Twitter URLs
149
+ - Useful for targeted data collection
150
+
151
+ **WHEN TO USE THIS TOOL:**
152
+ - **Any Twitter scraping task** - profiles, tweets, searches, engagement data
153
+ - **Social media research** - influencer analysis, competitor monitoring
154
+ - **Content gathering** - tweets, replies, retweets, engagement metrics
155
+ - **Market research** - brand mentions, user sentiment on Twitter
156
+ - **Trend analysis** - hashtag tracking, viral content discovery
157
+ - **Real-time monitoring** - track conversations and mentions
158
+
159
+ **DO NOT USE research-agent-tool or web-scrape-tool for Twitter** - This tool is specifically optimized for Twitter and provides:
160
+ - Unified data format across all Twitter sources
161
+ - Automatic service selection and optimization
162
+ - Rate limiting and reliability handling
163
+ - Clean, structured data ready for analysis
164
+
165
+ **Simple Interface:**
166
+ Just specify the operation and provide Twitter handles, search terms, or URLs to get back clean, structured data.
167
+ The tool automatically handles:
168
+ - Handle normalization (accepts handles with or without @)
169
+ - Service selection (currently Apify, future: multiple sources)
170
+ - Data transformation to unified format
171
+ - Error handling and retries
172
+
173
+ **What you get:**
174
+ - Tweets with text, engagement stats, timestamps
175
+ - Author information (for scrapeProfile operation)
176
+ - Hashtags, mentions, and URLs
177
+ - Media attachments
178
+ - Language and metadata
179
+
180
+ **Use cases:**
181
+ - Influencer analysis and discovery
182
+ - Brand monitoring and sentiment analysis
183
+ - Competitor research on Twitter
184
+ - Content strategy and trend analysis
185
+ - Market research through Twitter data
186
+ - Campaign performance tracking
187
+ - Hashtag research and optimization
188
+ - Real-time event monitoring
189
+
190
+ The tool uses best-available services behind the scenes while maintaining a consistent, simple interface.
191
+ `;
192
+ static alias = 'twitter';
193
+ static type = 'tool';
194
+ constructor(params = {
195
+ operation: 'scrapeProfile',
196
+ twitterHandles: ['elonmusk'],
197
+ maxItems: 20,
198
+ }, context) {
199
+ super(params, context);
200
+ }
201
+ async performAction() {
202
+ const credentials = this.params?.credentials;
203
+ if (!credentials || !credentials[CredentialType.APIFY_CRED]) {
204
+ return this.createErrorResult('Twitter scraping requires authentication. Please configure APIFY_CRED.');
205
+ }
206
+ try {
207
+ const { operation } = this.params;
208
+ // Validate required fields based on operation
209
+ if (operation === 'scrapeProfile' &&
210
+ (!this.params.twitterHandles || this.params.twitterHandles.length === 0)) {
211
+ return this.createErrorResult('twitterHandles array is required for scrapeProfile operation');
212
+ }
213
+ if (operation === 'search' &&
214
+ (!this.params.searchTerms || this.params.searchTerms.length === 0)) {
215
+ return this.createErrorResult('searchTerms array is required for search operation');
216
+ }
217
+ if (operation === 'scrapeUrl' &&
218
+ (!this.params.startUrls || this.params.startUrls.length === 0)) {
219
+ return this.createErrorResult('startUrls array is required for scrapeUrl operation');
220
+ }
221
+ const result = await (async () => {
222
+ switch (operation) {
223
+ case 'scrapeProfile':
224
+ return await this.handleScrapeProfile(this.params);
225
+ case 'search':
226
+ return await this.handleSearch(this.params);
227
+ case 'scrapeUrl':
228
+ return await this.handleScrapeUrl(this.params);
229
+ default:
230
+ throw new Error(`Unsupported operation: ${operation}`);
231
+ }
232
+ })();
233
+ return result;
234
+ }
235
+ catch (error) {
236
+ return this.createErrorResult(error instanceof Error ? error.message : 'Unknown error occurred');
237
+ }
238
+ }
239
+ /**
240
+ * Create an error result
241
+ */
242
+ createErrorResult(errorMessage) {
243
+ const { operation } = this.params;
244
+ return {
245
+ operation: operation || 'scrapeProfile',
246
+ tweets: [],
247
+ totalTweets: 0,
248
+ success: false,
249
+ error: errorMessage,
250
+ };
251
+ }
252
+ /**
253
+ * Handle scrapeProfile operation
254
+ */
255
+ async handleScrapeProfile(params) {
256
+ // Normalize handles (remove @ if present)
257
+ const normalizedHandles = this.normalizeHandles(params.twitterHandles);
258
+ // Use Apify service to scrape profiles
259
+ const result = await this.scrapeWithApifyProfiles(normalizedHandles, params.maxItems || 20, params.tweetLanguage, params.credentials);
260
+ return {
261
+ operation: 'scrapeProfile',
262
+ tweets: result.tweets,
263
+ totalTweets: result.totalTweets,
264
+ success: result.success,
265
+ error: result.error,
266
+ };
267
+ }
268
+ /**
269
+ * Handle search operation
270
+ */
271
+ async handleSearch(params) {
272
+ // Use Apify service to search tweets
273
+ const result = await this.scrapeWithApifySearch(params.searchTerms, params.maxItems || 20, params.sort, params.tweetLanguage, params.credentials);
274
+ return {
275
+ operation: 'search',
276
+ tweets: result.tweets,
277
+ totalTweets: result.totalTweets,
278
+ success: result.success,
279
+ error: result.error,
280
+ };
281
+ }
282
+ /**
283
+ * Handle scrapeUrl operation
284
+ */
285
+ async handleScrapeUrl(params) {
286
+ // Use Apify service to scrape URLs
287
+ const result = await this.scrapeWithApifyUrls(params.startUrls, params.maxItems || 20, params.tweetLanguage, params.credentials);
288
+ return {
289
+ operation: 'scrapeUrl',
290
+ tweets: result.tweets,
291
+ totalTweets: result.totalTweets,
292
+ success: result.success,
293
+ error: result.error,
294
+ };
295
+ }
296
+ /**
297
+ * Scrape profiles using Apify service
298
+ * This is the current implementation - future versions could add other services
299
+ */
300
+ async scrapeWithApifyProfiles(handles, maxItems, tweetLanguage, credentials) {
301
+ const input = {
302
+ twitterHandles: handles,
303
+ maxItems,
304
+ };
305
+ if (tweetLanguage) {
306
+ input.tweetLanguage = tweetLanguage;
307
+ }
308
+ const tweetProfileScraper = new ApifyBubble({
309
+ actorId: 'apidojo/tweet-scraper',
310
+ input,
311
+ waitForFinish: true,
312
+ timeout: 180000, // 3 minutes
313
+ limit: maxItems,
314
+ credentials,
315
+ }, this.context, 'tweetProfileScraper');
316
+ const apifyResult = await tweetProfileScraper.action();
317
+ if (!apifyResult.data.success) {
318
+ return {
319
+ tweets: [],
320
+ totalTweets: 0,
321
+ success: false,
322
+ error: apifyResult.data.error ||
323
+ 'Failed to scrape Twitter profiles. Please try again.',
324
+ };
325
+ }
326
+ const items = apifyResult.data.items || [];
327
+ const tweets = this.transformTweets(items);
328
+ return {
329
+ tweets,
330
+ totalTweets: tweets.length,
331
+ success: true,
332
+ error: '',
333
+ };
334
+ }
335
+ /**
336
+ * Search tweets using Apify service
337
+ * This is the current implementation - future versions could add other services
338
+ */
339
+ async scrapeWithApifySearch(searchTerms, maxItems, sort, tweetLanguage, credentials) {
340
+ const input = {
341
+ searchTerms,
342
+ maxItems,
343
+ };
344
+ if (sort) {
345
+ input.sort = sort;
346
+ }
347
+ if (tweetLanguage) {
348
+ input.tweetLanguage = tweetLanguage;
349
+ }
350
+ const tweetSearcher = new ApifyBubble({
351
+ actorId: 'apidojo/tweet-scraper',
352
+ input,
353
+ waitForFinish: true,
354
+ timeout: 180000, // 3 minutes
355
+ limit: maxItems,
356
+ credentials,
357
+ }, this.context, 'tweetSearcher');
358
+ const apifyResult = await tweetSearcher.action();
359
+ if (!apifyResult.data.success) {
360
+ return {
361
+ tweets: [],
362
+ totalTweets: 0,
363
+ success: false,
364
+ error: apifyResult.data.error ||
365
+ 'Failed to search Twitter. Please try again.',
366
+ };
367
+ }
368
+ const items = apifyResult.data.items || [];
369
+ const tweets = this.transformTweets(items);
370
+ return {
371
+ tweets,
372
+ totalTweets: tweets.length,
373
+ success: true,
374
+ error: '',
375
+ };
376
+ }
377
+ /**
378
+ * Scrape URLs using Apify service
379
+ * This is the current implementation - future versions could add other services
380
+ */
381
+ async scrapeWithApifyUrls(urls, maxItems, tweetLanguage, credentials) {
382
+ const input = {
383
+ startUrls: urls,
384
+ maxItems,
385
+ };
386
+ if (tweetLanguage) {
387
+ input.tweetLanguage = tweetLanguage;
388
+ }
389
+ const tweetUrlScraper = new ApifyBubble({
390
+ actorId: 'apidojo/tweet-scraper',
391
+ input,
392
+ waitForFinish: true,
393
+ timeout: 180000, // 3 minutes
394
+ limit: maxItems,
395
+ credentials,
396
+ }, this.context, 'tweetUrlScraper');
397
+ const apifyResult = await tweetUrlScraper.action();
398
+ if (!apifyResult.data.success) {
399
+ return {
400
+ tweets: [],
401
+ totalTweets: 0,
402
+ success: false,
403
+ error: apifyResult.data.error ||
404
+ 'Failed to scrape Twitter URLs. Please try again.',
405
+ };
406
+ }
407
+ const items = apifyResult.data.items || [];
408
+ const tweets = this.transformTweets(items);
409
+ return {
410
+ tweets,
411
+ totalTweets: tweets.length,
412
+ success: true,
413
+ error: '',
414
+ };
415
+ }
416
+ /**
417
+ * Normalize Twitter handles (remove @ if present)
418
+ */
419
+ normalizeHandles(handles) {
420
+ return handles.map((handle) => {
421
+ // Remove @ if present
422
+ return handle.startsWith('@') ? handle.slice(1) : handle;
423
+ });
424
+ }
425
+ transformTweets(items) {
426
+ return items.map((item) => ({
427
+ id: item.id || null,
428
+ url: item.url || null,
429
+ text: item.text || null,
430
+ author: item.author
431
+ ? {
432
+ id: item.author.id || null,
433
+ name: item.author.name || null,
434
+ userName: item.author.userName || null,
435
+ description: item.author.description || null,
436
+ isVerified: item.author.isVerified || null,
437
+ isBlueVerified: item.author.isBlueVerified || null,
438
+ profilePicture: item.author.profilePicture || null,
439
+ followers: item.author.followers || null,
440
+ following: item.author.following || null,
441
+ tweetsCount: item.author.tweetsCount || null,
442
+ url: item.author.url || null,
443
+ createdAt: item.author.createdAt || null,
444
+ }
445
+ : null,
446
+ createdAt: item.createdAt || null,
447
+ stats: {
448
+ retweetCount: item.retweetCount || null,
449
+ replyCount: item.replyCount || null,
450
+ likeCount: item.likeCount || null,
451
+ quoteCount: item.quoteCount || null,
452
+ viewCount: item.viewCount || null,
453
+ bookmarkCount: item.bookmarkCount || null,
454
+ },
455
+ lang: item.lang || null,
456
+ media: item.media
457
+ ? item.media.map((m) => {
458
+ if (typeof m === 'string') {
459
+ return {
460
+ type: null,
461
+ url: m,
462
+ width: null,
463
+ height: null,
464
+ duration: null,
465
+ };
466
+ }
467
+ return {
468
+ type: m.type || null,
469
+ url: m.url || null,
470
+ width: m.width || null,
471
+ height: m.height || null,
472
+ duration: m.duration || null,
473
+ };
474
+ })
475
+ : null,
476
+ entities: item.entities
477
+ ? {
478
+ hashtags: item.entities.hashtags
479
+ ? item.entities.hashtags.map((h) => h.text || '').filter((t) => t)
480
+ : null,
481
+ urls: item.entities.urls
482
+ ? item.entities.urls.map((u) => u.url || '').filter((u) => u)
483
+ : null,
484
+ mentions: item.entities.userMentions
485
+ ? item.entities.userMentions
486
+ .map((m) => m.screenName || '')
487
+ .filter((m) => m)
488
+ : null,
489
+ }
490
+ : null,
491
+ isRetweet: item.isRetweet || null,
492
+ isQuote: item.isQuote || null,
493
+ isReply: item.isReply || null,
494
+ }));
495
+ }
496
+ }
497
+ //# sourceMappingURL=twitter-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twitter-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/twitter-tool.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,9 @@ declare const WebCrawlToolParamsSchema: z.ZodObject<{
19
19
  waitFor: number;
20
20
  credentials?: Partial<Record<CredentialType, string>> | undefined;
21
21
  maxPages?: number | undefined;
22
- crawlDepth?: number | undefined;
23
- includePaths?: string[] | undefined;
24
22
  excludePaths?: string[] | undefined;
23
+ includePaths?: string[] | undefined;
24
+ crawlDepth?: number | undefined;
25
25
  }, {
26
26
  url: string;
27
27
  format?: "markdown" | undefined;
@@ -29,9 +29,9 @@ declare const WebCrawlToolParamsSchema: z.ZodObject<{
29
29
  onlyMainContent?: boolean | undefined;
30
30
  waitFor?: number | undefined;
31
31
  maxPages?: number | undefined;
32
- crawlDepth?: number | undefined;
33
- includePaths?: string[] | undefined;
34
32
  excludePaths?: string[] | undefined;
33
+ includePaths?: string[] | undefined;
34
+ crawlDepth?: number | undefined;
35
35
  }>;
36
36
  declare const WebCrawlToolResultSchema: z.ZodObject<{
37
37
  url: z.ZodString;
@@ -54,6 +54,7 @@ declare const WebCrawlToolResultSchema: z.ZodObject<{
54
54
  depth?: number | undefined;
55
55
  }>, "many">;
56
56
  totalPages: z.ZodNumber;
57
+ creditsUsed: z.ZodNumber;
57
58
  metadata: z.ZodOptional<z.ZodObject<{
58
59
  loadTime: z.ZodOptional<z.ZodNumber>;
59
60
  crawlDepth: z.ZodOptional<z.ZodNumber>;
@@ -68,15 +69,16 @@ declare const WebCrawlToolResultSchema: z.ZodObject<{
68
69
  maxPagesReached?: boolean | undefined;
69
70
  }>>;
70
71
  }, "strip", z.ZodTypeAny, {
71
- url: string;
72
- success: boolean;
73
72
  error: string;
73
+ success: boolean;
74
+ url: string;
74
75
  pages: {
75
76
  content: string;
76
77
  url: string;
77
78
  title?: string | undefined;
78
79
  depth?: number | undefined;
79
80
  }[];
81
+ creditsUsed: number;
80
82
  totalPages: number;
81
83
  metadata?: {
82
84
  loadTime?: number | undefined;
@@ -84,15 +86,16 @@ declare const WebCrawlToolResultSchema: z.ZodObject<{
84
86
  maxPagesReached?: boolean | undefined;
85
87
  } | undefined;
86
88
  }, {
87
- url: string;
88
- success: boolean;
89
89
  error: string;
90
+ success: boolean;
91
+ url: string;
90
92
  pages: {
91
93
  content: string;
92
94
  url: string;
93
95
  title?: string | undefined;
94
96
  depth?: number | undefined;
95
97
  }[];
98
+ creditsUsed: number;
96
99
  totalPages: number;
97
100
  metadata?: {
98
101
  loadTime?: number | undefined;
@@ -122,9 +125,9 @@ export declare class WebCrawlTool extends ToolBubble<WebCrawlToolParams, WebCraw
122
125
  waitFor: number;
123
126
  credentials?: Partial<Record<CredentialType, string>> | undefined;
124
127
  maxPages?: number | undefined;
125
- crawlDepth?: number | undefined;
126
- includePaths?: string[] | undefined;
127
128
  excludePaths?: string[] | undefined;
129
+ includePaths?: string[] | undefined;
130
+ crawlDepth?: number | undefined;
128
131
  }, {
129
132
  url: string;
130
133
  format?: "markdown" | undefined;
@@ -132,9 +135,9 @@ export declare class WebCrawlTool extends ToolBubble<WebCrawlToolParams, WebCraw
132
135
  onlyMainContent?: boolean | undefined;
133
136
  waitFor?: number | undefined;
134
137
  maxPages?: number | undefined;
135
- crawlDepth?: number | undefined;
136
- includePaths?: string[] | undefined;
137
138
  excludePaths?: string[] | undefined;
139
+ includePaths?: string[] | undefined;
140
+ crawlDepth?: number | undefined;
138
141
  }>;
139
142
  static readonly resultSchema: z.ZodObject<{
140
143
  url: z.ZodString;
@@ -157,6 +160,7 @@ export declare class WebCrawlTool extends ToolBubble<WebCrawlToolParams, WebCraw
157
160
  depth?: number | undefined;
158
161
  }>, "many">;
159
162
  totalPages: z.ZodNumber;
163
+ creditsUsed: z.ZodNumber;
160
164
  metadata: z.ZodOptional<z.ZodObject<{
161
165
  loadTime: z.ZodOptional<z.ZodNumber>;
162
166
  crawlDepth: z.ZodOptional<z.ZodNumber>;
@@ -171,15 +175,16 @@ export declare class WebCrawlTool extends ToolBubble<WebCrawlToolParams, WebCraw
171
175
  maxPagesReached?: boolean | undefined;
172
176
  }>>;
173
177
  }, "strip", z.ZodTypeAny, {
174
- url: string;
175
- success: boolean;
176
178
  error: string;
179
+ success: boolean;
180
+ url: string;
177
181
  pages: {
178
182
  content: string;
179
183
  url: string;
180
184
  title?: string | undefined;
181
185
  depth?: number | undefined;
182
186
  }[];
187
+ creditsUsed: number;
183
188
  totalPages: number;
184
189
  metadata?: {
185
190
  loadTime?: number | undefined;
@@ -187,15 +192,16 @@ export declare class WebCrawlTool extends ToolBubble<WebCrawlToolParams, WebCraw
187
192
  maxPagesReached?: boolean | undefined;
188
193
  } | undefined;
189
194
  }, {
190
- url: string;
191
- success: boolean;
192
195
  error: string;
196
+ success: boolean;
197
+ url: string;
193
198
  pages: {
194
199
  content: string;
195
200
  url: string;
196
201
  title?: string | undefined;
197
202
  depth?: number | undefined;
198
203
  }[];
204
+ creditsUsed: number;
199
205
  totalPages: number;
200
206
  metadata?: {
201
207
  loadTime?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"web-crawl-tool.d.ts","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/web-crawl-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5E,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqD5B,CAAC;AAGH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B5B,CAAC;AAGH,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACnE,KAAK,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACpE,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAExE,qBAAa,YAAa,SAAQ,UAAU,CAC1C,kBAAkB,EAClB,kBAAkB,CACnB;IAEC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAoB;IAC1D,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA4B;IAClD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA4B;IACxD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,gFAC+C;IAC/E,MAAM,CAAC,QAAQ,CAAC,eAAe,k/BAuB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;gBAG5B,MAAM,GAAE,uBAAqC,EAC7C,OAAO,CAAC,EAAE,aAAa;IAKnB,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqHzE;;OAEG;YACW,YAAY;CAgF3B"}
1
+ {"version":3,"file":"web-crawl-tool.d.ts","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/web-crawl-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5E,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqD5B,CAAC;AAGH,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4B5B,CAAC;AAGH,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACnE,KAAK,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACpE,KAAK,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAExE,qBAAa,YAAa,SAAQ,UAAU,CAC1C,kBAAkB,EAClB,kBAAkB,CACnB;IAEC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAoB;IAC1D,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA4B;IAClD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA4B;IACxD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,gFAC+C;IAC/E,MAAM,CAAC,QAAQ,CAAC,eAAe,k/BAuB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;gBAG5B,MAAM,GAAE,uBAAqC,EAC7C,OAAO,CAAC,EAAE,aAAa;IAKnB,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgFzE;;OAEG;YACW,YAAY;CA6G3B"}