@bubblelab/bubble-core 0.1.10 → 0.1.11

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 (298) hide show
  1. package/dist/bubble-bundle.d.ts +759 -350
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +125 -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 +277 -65
  17. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  18. package/dist/bubbles/service-bubble/ai-agent.js +533 -399
  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 +162 -17
  50. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
  51. package/dist/bubbles/service-bubble/apify/apify.js +205 -32
  52. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
  53. package/dist/bubbles/service-bubble/eleven-labs.d.ts +421 -0
  54. package/dist/bubbles/service-bubble/eleven-labs.d.ts.map +1 -0
  55. package/dist/bubbles/service-bubble/eleven-labs.js +479 -0
  56. package/dist/bubbles/service-bubble/eleven-labs.js.map +1 -0
  57. package/dist/bubbles/service-bubble/firecrawl.d.ts +37748 -0
  58. package/dist/bubbles/service-bubble/firecrawl.d.ts.map +1 -0
  59. package/dist/bubbles/service-bubble/firecrawl.js +1489 -0
  60. package/dist/bubbles/service-bubble/firecrawl.js.map +1 -0
  61. package/dist/bubbles/service-bubble/followupboss.d.ts +6822 -0
  62. package/dist/bubbles/service-bubble/followupboss.d.ts.map +1 -0
  63. package/dist/bubbles/service-bubble/followupboss.js +1394 -0
  64. package/dist/bubbles/service-bubble/followupboss.js.map +1 -0
  65. package/dist/bubbles/service-bubble/github.d.ts +2399 -0
  66. package/dist/bubbles/service-bubble/github.d.ts.map +1 -0
  67. package/dist/bubbles/service-bubble/github.js +1052 -0
  68. package/dist/bubbles/service-bubble/github.js.map +1 -0
  69. package/dist/bubbles/service-bubble/gmail.d.ts +180 -180
  70. package/dist/bubbles/service-bubble/google-calendar.d.ts +60 -60
  71. package/dist/bubbles/service-bubble/google-drive.d.ts +37 -36
  72. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  73. package/dist/bubbles/service-bubble/google-drive.js +35 -3
  74. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  75. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +943 -0
  76. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts.map +1 -0
  77. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +31 -0
  78. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +1 -0
  79. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +184 -0
  80. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +1 -0
  81. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js +401 -0
  82. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js.map +1 -0
  83. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +1024 -0
  84. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts.map +1 -0
  85. package/dist/bubbles/service-bubble/{google-sheets.js → google-sheets/google-sheets.schema.js} +45 -409
  86. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.js.map +1 -0
  87. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts +38 -0
  88. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts.map +1 -0
  89. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js +183 -0
  90. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js.map +1 -0
  91. package/dist/bubbles/service-bubble/google-sheets/index.d.ts +4 -0
  92. package/dist/bubbles/service-bubble/google-sheets/index.d.ts.map +1 -0
  93. package/dist/bubbles/service-bubble/google-sheets/index.js +4 -0
  94. package/dist/bubbles/service-bubble/google-sheets/index.js.map +1 -0
  95. package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
  96. package/dist/bubbles/service-bubble/http.d.ts +4 -4
  97. package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
  98. package/dist/bubbles/service-bubble/http.js +7 -1
  99. package/dist/bubbles/service-bubble/http.js.map +1 -1
  100. package/dist/bubbles/service-bubble/insforge-db.d.ts +140 -0
  101. package/dist/bubbles/service-bubble/insforge-db.d.ts.map +1 -0
  102. package/dist/bubbles/service-bubble/insforge-db.js +260 -0
  103. package/dist/bubbles/service-bubble/insforge-db.js.map +1 -0
  104. package/dist/bubbles/service-bubble/notion/index.d.ts +3 -0
  105. package/dist/bubbles/service-bubble/notion/index.d.ts.map +1 -0
  106. package/dist/bubbles/service-bubble/notion/index.js +3 -0
  107. package/dist/bubbles/service-bubble/notion/index.js.map +1 -0
  108. package/dist/bubbles/service-bubble/notion/notion.d.ts +35405 -0
  109. package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -0
  110. package/dist/bubbles/service-bubble/notion/notion.js +1492 -0
  111. package/dist/bubbles/service-bubble/notion/notion.js.map +1 -0
  112. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +1148 -0
  113. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts.map +1 -0
  114. package/dist/bubbles/service-bubble/notion/property-schemas.js +341 -0
  115. package/dist/bubbles/service-bubble/notion/property-schemas.js.map +1 -0
  116. package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
  117. package/dist/bubbles/service-bubble/resend.d.ts +34 -13
  118. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
  119. package/dist/bubbles/service-bubble/resend.js +133 -2
  120. package/dist/bubbles/service-bubble/resend.js.map +1 -1
  121. package/dist/bubbles/service-bubble/slack.d.ts +241 -241
  122. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -1
  123. package/dist/bubbles/service-bubble/slack.js +2 -2
  124. package/dist/bubbles/service-bubble/slack.js.map +1 -1
  125. package/dist/bubbles/service-bubble/storage.d.ts +25 -21
  126. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -1
  127. package/dist/bubbles/service-bubble/storage.js +43 -2
  128. package/dist/bubbles/service-bubble/storage.js.map +1 -1
  129. package/dist/bubbles/service-bubble/telegram.d.ts +7742 -0
  130. package/dist/bubbles/service-bubble/telegram.d.ts.map +1 -0
  131. package/dist/bubbles/service-bubble/telegram.js +1132 -0
  132. package/dist/bubbles/service-bubble/telegram.js.map +1 -0
  133. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +76 -20
  134. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts.map +1 -1
  135. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js +12 -0
  136. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js.map +1 -1
  137. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +14 -14
  138. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +188 -0
  139. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts.map +1 -0
  140. package/dist/bubbles/tool-bubble/code-edit-tool.js +321 -0
  141. package/dist/bubbles/tool-bubble/code-edit-tool.js.map +1 -0
  142. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +8 -4
  143. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -1
  144. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +115 -10
  145. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -1
  146. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +455 -0
  147. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts.map +1 -0
  148. package/dist/bubbles/tool-bubble/google-maps-tool.js +205 -0
  149. package/dist/bubbles/tool-bubble/google-maps-tool.js.map +1 -0
  150. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +36 -36
  151. package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -1
  152. package/dist/bubbles/tool-bubble/instagram-tool.js +2 -2
  153. package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -1
  154. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +824 -447
  155. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
  156. package/dist/bubbles/tool-bubble/linkedin-tool.js +232 -12
  157. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
  158. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
  159. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +66 -66
  160. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +17 -16
  161. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -1
  162. package/dist/bubbles/tool-bubble/research-agent-tool.js +26 -16
  163. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
  164. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  165. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +485 -0
  166. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts.map +1 -0
  167. package/dist/bubbles/tool-bubble/tiktok-tool.js +226 -0
  168. package/dist/bubbles/tool-bubble/tiktok-tool.js.map +1 -0
  169. package/dist/bubbles/tool-bubble/tool-template.d.ts +8 -8
  170. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +947 -0
  171. package/dist/bubbles/tool-bubble/twitter-tool.d.ts.map +1 -0
  172. package/dist/bubbles/tool-bubble/twitter-tool.js +494 -0
  173. package/dist/bubbles/tool-bubble/twitter-tool.js.map +1 -0
  174. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +22 -16
  175. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts.map +1 -1
  176. package/dist/bubbles/tool-bubble/web-crawl-tool.js +58 -59
  177. package/dist/bubbles/tool-bubble/web-crawl-tool.js.map +1 -1
  178. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
  179. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts.map +1 -1
  180. package/dist/bubbles/tool-bubble/web-extract-tool.js +17 -17
  181. package/dist/bubbles/tool-bubble/web-extract-tool.js.map +1 -1
  182. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +15 -107
  183. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -1
  184. package/dist/bubbles/tool-bubble/web-scrape-tool.js +51 -72
  185. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
  186. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +20 -9
  187. package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -1
  188. package/dist/bubbles/tool-bubble/web-search-tool.js +45 -35
  189. package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -1
  190. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +25 -25
  191. package/dist/bubbles/tool-bubble/youtube-tool.d.ts.map +1 -1
  192. package/dist/bubbles/tool-bubble/youtube-tool.js +5 -5
  193. package/dist/bubbles/tool-bubble/youtube-tool.js.map +1 -1
  194. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
  195. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +30 -30
  196. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +1 -1
  197. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +22 -22
  198. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +1 -1
  199. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +54 -54
  200. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -1
  201. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +4 -4
  202. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -1
  203. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +36 -36
  204. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +1 -1
  205. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +14 -14
  206. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts.map +1 -1
  207. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +6 -6
  208. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -1
  209. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +26 -26
  210. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts.map +1 -1
  211. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +24 -4
  212. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -1
  213. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +19 -19
  214. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -1
  215. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +8 -8
  216. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -1
  217. package/dist/bubbles.json +220 -72
  218. package/dist/index.d.ts +23 -4
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +16 -3
  221. package/dist/index.js.map +1 -1
  222. package/dist/logging/BubbleLogger.d.ts +45 -16
  223. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  224. package/dist/logging/BubbleLogger.js +178 -77
  225. package/dist/logging/BubbleLogger.js.map +1 -1
  226. package/dist/logging/StreamingBubbleLogger.d.ts +13 -1
  227. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
  228. package/dist/logging/StreamingBubbleLogger.js +51 -8
  229. package/dist/logging/StreamingBubbleLogger.js.map +1 -1
  230. package/dist/logging/WebhookStreamLogger.d.ts +66 -0
  231. package/dist/logging/WebhookStreamLogger.d.ts.map +1 -0
  232. package/dist/logging/WebhookStreamLogger.js +291 -0
  233. package/dist/logging/WebhookStreamLogger.js.map +1 -0
  234. package/dist/types/available-tools.d.ts +1 -1
  235. package/dist/types/available-tools.d.ts.map +1 -1
  236. package/dist/types/available-tools.js +1 -0
  237. package/dist/types/available-tools.js.map +1 -1
  238. package/dist/types/base-bubble-class.d.ts +6 -4
  239. package/dist/types/base-bubble-class.d.ts.map +1 -1
  240. package/dist/types/base-bubble-class.js +35 -20
  241. package/dist/types/base-bubble-class.js.map +1 -1
  242. package/dist/types/bubble.d.ts +2 -0
  243. package/dist/types/bubble.d.ts.map +1 -1
  244. package/dist/types/service-bubble-class.d.ts +1 -1
  245. package/dist/types/service-bubble-class.d.ts.map +1 -1
  246. package/dist/types/service-bubble-class.js +2 -2
  247. package/dist/types/service-bubble-class.js.map +1 -1
  248. package/dist/types/tool-bubble-class.d.ts +1 -1
  249. package/dist/types/tool-bubble-class.d.ts.map +1 -1
  250. package/dist/types/tool-bubble-class.js +2 -2
  251. package/dist/types/tool-bubble-class.js.map +1 -1
  252. package/dist/types/workflow-bubble-class.d.ts +1 -1
  253. package/dist/types/workflow-bubble-class.d.ts.map +1 -1
  254. package/dist/types/workflow-bubble-class.js +2 -2
  255. package/dist/types/workflow-bubble-class.js.map +1 -1
  256. package/dist/utils/agent-formatter.d.ts +14 -2
  257. package/dist/utils/agent-formatter.d.ts.map +1 -1
  258. package/dist/utils/agent-formatter.js +174 -26
  259. package/dist/utils/agent-formatter.js.map +1 -1
  260. package/dist/utils/bubbleflow-validation.d.ts +7 -0
  261. package/dist/utils/bubbleflow-validation.d.ts.map +1 -1
  262. package/dist/utils/bubbleflow-validation.js +171 -6
  263. package/dist/utils/bubbleflow-validation.js.map +1 -1
  264. package/dist/utils/json-parsing.d.ts.map +1 -1
  265. package/dist/utils/json-parsing.js +146 -0
  266. package/dist/utils/json-parsing.js.map +1 -1
  267. package/dist/utils/safe-gemini-chat.d.ts +31 -0
  268. package/dist/utils/safe-gemini-chat.d.ts.map +1 -0
  269. package/dist/utils/safe-gemini-chat.js +93 -0
  270. package/dist/utils/safe-gemini-chat.js.map +1 -0
  271. package/dist/utils/schema-comparison.d.ts +92 -0
  272. package/dist/utils/schema-comparison.d.ts.map +1 -0
  273. package/dist/utils/schema-comparison.js +716 -0
  274. package/dist/utils/schema-comparison.js.map +1 -0
  275. package/dist/utils/zod-schema.d.ts +24 -0
  276. package/dist/utils/zod-schema.d.ts.map +1 -0
  277. package/dist/utils/zod-schema.js +56 -0
  278. package/dist/utils/zod-schema.js.map +1 -0
  279. package/package.json +5 -4
  280. package/dist/bubbles/service-bubble/google-sheets.d.ts +0 -1811
  281. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +0 -1
  282. package/dist/bubbles/service-bubble/google-sheets.js.map +0 -1
  283. package/dist/bubbles/service-bubble/x-twitter.d.ts +0 -814
  284. package/dist/bubbles/service-bubble/x-twitter.d.ts.map +0 -1
  285. package/dist/bubbles/service-bubble/x-twitter.js +0 -445
  286. package/dist/bubbles/service-bubble/x-twitter.js.map +0 -1
  287. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +0 -125
  288. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +0 -1
  289. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +0 -808
  290. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +0 -1
  291. package/dist/test-gm.d.ts +0 -10
  292. package/dist/test-gm.d.ts.map +0 -1
  293. package/dist/test-gm.js +0 -95
  294. package/dist/test-gm.js.map +0 -1
  295. package/dist/utils/param-helper.d.ts +0 -2
  296. package/dist/utils/param-helper.d.ts.map +0 -1
  297. package/dist/utils/param-helper.js +0 -5
  298. package/dist/utils/param-helper.js.map +0 -1
@@ -1,35 +1,35 @@
1
1
  import { z } from 'zod';
2
2
  import { ToolBubble } from '../../types/tool-bubble-class.js';
3
- import FirecrawlApp from '@mendable/firecrawl-js';
3
+ import { FirecrawlBubble } from '../service-bubble/firecrawl.js';
4
4
  import { CredentialType } from '@bubblelab/shared-schemas';
5
5
  import { AIAgentBubble } from '../service-bubble/ai-agent.js';
6
6
  // Action types for browser automation (Gemini-compatible: avoid const/anyOf)
7
- const ActionSchema = z.object({
8
- type: z
9
- .enum(['wait', 'click', 'write', 'press', 'scroll', 'executeJavascript'])
10
- .describe('Action type to perform'),
11
- milliseconds: z
12
- .number()
13
- .optional()
14
- .describe('Time to wait in milliseconds (for wait)'),
15
- selector: z
16
- .string()
17
- .optional()
18
- .describe('CSS selector to interact with (wait/click/write/scroll)'),
19
- text: z.string().optional().describe('Text to write (for write)'),
20
- key: z
21
- .string()
22
- .optional()
23
- .describe('Key to press (e.g., "Enter") (for press)'),
24
- direction: z
25
- .enum(['up', 'down'])
26
- .optional()
27
- .describe('Scroll direction (for scroll)'),
28
- script: z
29
- .string()
30
- .optional()
31
- .describe('JavaScript code (for executeJavascript)'),
32
- });
7
+ // const ActionSchema = z.object({
8
+ // type: z
9
+ // .enum(['wait', 'click', 'write', 'press', 'scroll', 'executeJavascript'])
10
+ // .describe('Action type to perform'),
11
+ // milliseconds: z
12
+ // .number()
13
+ // .optional()
14
+ // .describe('Time to wait in milliseconds (for wait)'),
15
+ // selector: z
16
+ // .string()
17
+ // .optional()
18
+ // .describe('CSS selector to interact with (wait/click/write/scroll)'),
19
+ // text: z.string().optional().describe('Text to write (for write)'),
20
+ // key: z
21
+ // .string()
22
+ // .optional()
23
+ // .describe('Key to press (e.g., "Enter") (for press)'),
24
+ // direction: z
25
+ // .enum(['up', 'down'])
26
+ // .optional()
27
+ // .describe('Scroll direction (for scroll)'),
28
+ // script: z
29
+ // .string()
30
+ // .optional()
31
+ // .describe('JavaScript code (for executeJavascript)'),
32
+ // });
33
33
  // Simple, focused parameters with optional advanced features
34
34
  const WebScrapeToolParamsSchema = z.object({
35
35
  url: z
@@ -44,20 +44,6 @@ const WebScrapeToolParamsSchema = z.object({
44
44
  .boolean()
45
45
  .default(true)
46
46
  .describe('Extract only main content, filtering out navigation/footers'),
47
- actions: z
48
- .array(ActionSchema)
49
- .optional()
50
- .describe('Optional browser actions for authentication/navigation (e.g., login flows)'),
51
- headers: z
52
- .record(z.string())
53
- .optional()
54
- .describe('Optional HTTP headers (e.g., for session cookies)'),
55
- waitFor: z
56
- .number()
57
- .min(0)
58
- .max(30000)
59
- .default(3000)
60
- .describe('Time to wait for dynamic content in milliseconds (default: 3000)'),
61
47
  credentials: z
62
48
  .record(z.nativeEnum(CredentialType), z.string())
63
49
  .optional()
@@ -71,6 +57,7 @@ const WebScrapeToolResultSchema = z.object({
71
57
  format: z.string().describe('Format of the returned content'),
72
58
  success: z.boolean().describe('Whether the scraping was successful'),
73
59
  error: z.string().describe('Error message if scraping failed'),
60
+ creditsUsed: z.number().describe('Number of credits used'),
74
61
  metadata: z
75
62
  .object({
76
63
  statusCode: z.number().optional(),
@@ -84,7 +71,7 @@ export class WebScrapeTool extends ToolBubble {
84
71
  static bubbleName = 'web-scrape-tool';
85
72
  static schema = WebScrapeToolParamsSchema;
86
73
  static resultSchema = WebScrapeToolResultSchema;
87
- static shortDescription = 'Scrapes content from a single web page using Firecrawl, good to use after web-search-tool to get the full content of a page';
74
+ static shortDescription = "Scrapes content from a single web page. Useful after web-search-tool to get the full content of a page. Also useful if you need to understand a site's structure or content.";
88
75
  static longDescription = `
89
76
  A simple and powerful web scraping tool that extracts content from any web page.
90
77
 
@@ -115,41 +102,28 @@ export class WebScrapeTool extends ToolBubble {
115
102
  super(params, context);
116
103
  }
117
104
  async performAction() {
118
- const { url, format, onlyMainContent, actions, headers, waitFor } = this.params;
105
+ const { url, format, credentials } = this.params;
119
106
  const startTime = Date.now();
120
107
  try {
121
- // Get Firecrawl API key from credentials
122
- const apiKey = this.params.credentials?.FIRECRAWL_API_KEY;
123
- if (!apiKey) {
124
- throw new Error('FIRECRAWL_API_KEY is required but not provided in credentials');
125
- }
126
- // Initialize Firecrawl client
127
- const firecrawl = new FirecrawlApp({ apiKey });
128
- console.log('[WebScrapeTool] Scraping URL:', url, 'with format:', format);
129
- // Configure scraping options
130
- const scrapeOptions = {
108
+ console.debug('[WebScrapeTool] Scraping URL:', url, 'with format:', format);
109
+ const firecrawl = new FirecrawlBubble({
110
+ operation: 'scrape',
111
+ credentials,
112
+ url,
131
113
  formats: [format],
132
- onlyMainContent,
114
+ // Wait for 2 seconds to ensure the page is loaded
115
+ waitFor: 2000,
133
116
  // Sensible defaults for most use cases
134
- removeBase64Images: true,
135
- waitFor,
136
- };
137
- // Add optional parameters if provided
138
- if (actions && actions.length > 0) {
139
- console.log('[WebScrapeTool] Using browser actions:', actions.length, 'steps');
140
- scrapeOptions.actions = actions;
141
- }
142
- if (headers) {
143
- console.log('[WebScrapeTool] Using custom headers');
144
- scrapeOptions.headers = headers;
145
- }
117
+ maxAge: 172800000,
118
+ parsers: ['pdf'],
119
+ }, this.context, 'web_scrape_tool_firecrawl');
146
120
  // Execute scrape
147
- const response = await firecrawl.scrape(url, scrapeOptions);
121
+ const response = await firecrawl.action();
148
122
  // Extract content based on format
149
123
  let content;
150
124
  let title = '';
151
- if (format === 'markdown' && response.markdown) {
152
- content = response.markdown;
125
+ if (format === 'markdown' && response.data.markdown) {
126
+ content = response.data.markdown;
153
127
  }
154
128
  else {
155
129
  throw new Error(`No content available in ${format} format`);
@@ -161,6 +135,7 @@ export class WebScrapeTool extends ToolBubble {
161
135
  message: `Summarize the scraped content to condense all information and remove any non-essential information, include all links, contact information, companies, don't omit any information. Content: ${content}`,
162
136
  model: {
163
137
  model: 'google/gemini-2.5-flash-lite',
138
+ maxTokens: 80000,
164
139
  },
165
140
  name: 'Scrape Content Summarizer Agent',
166
141
  credentials: this.params.credentials,
@@ -177,19 +152,22 @@ export class WebScrapeTool extends ToolBubble {
177
152
  }
178
153
  }
179
154
  // Extract title from metadata
180
- if (response.metadata?.title) {
181
- title = response.metadata.title;
155
+ if (response.data.metadata?.title) {
156
+ title = response.data.metadata.title;
182
157
  }
183
158
  const loadTime = Date.now() - startTime;
159
+ // Token usage tracking is now centralized in FirecrawlBubble
184
160
  return {
185
161
  content: content.trim(),
186
162
  title,
187
163
  url,
164
+ // Per page 1 credit
165
+ creditsUsed: 1,
188
166
  format,
189
167
  success: true,
190
168
  error: '',
191
169
  metadata: {
192
- statusCode: response.metadata?.statusCode,
170
+ statusCode: response.data.metadata?.statusCode,
193
171
  loadTime,
194
172
  },
195
173
  };
@@ -204,6 +182,7 @@ export class WebScrapeTool extends ToolBubble {
204
182
  format,
205
183
  success: false,
206
184
  error: errorMessage,
185
+ creditsUsed: 0,
207
186
  metadata: {
208
187
  loadTime: Date.now() - startTime,
209
188
  },
@@ -1 +1 @@
1
- {"version":3,"file":"web-scrape-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/web-scrape-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-scrape-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/web-scrape-tool.ts"],"names":[],"mappings":"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"}
@@ -5,18 +5,21 @@ import { CredentialType, type BubbleName } from '@bubblelab/shared-schemas';
5
5
  declare const WebSearchToolParamsSchema: z.ZodObject<{
6
6
  query: z.ZodString;
7
7
  limit: z.ZodDefault<z.ZodNumber>;
8
+ categories: z.ZodDefault<z.ZodArray<z.ZodEnum<["research", "pdf", "github"]>, "many">>;
8
9
  location: z.ZodOptional<z.ZodString>;
9
10
  credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
10
11
  }, "strip", z.ZodTypeAny, {
11
- limit: number;
12
12
  query: string;
13
+ limit: number;
14
+ categories: ("github" | "pdf" | "research")[];
13
15
  credentials?: Partial<Record<CredentialType, string>> | undefined;
14
16
  location?: string | undefined;
15
17
  }, {
16
18
  query: string;
17
- limit?: number | undefined;
18
19
  credentials?: Partial<Record<CredentialType, string>> | undefined;
20
+ limit?: number | undefined;
19
21
  location?: string | undefined;
22
+ categories?: ("github" | "pdf" | "research")[] | undefined;
20
23
  }>;
21
24
  declare const WebSearchToolResultSchema: z.ZodObject<{
22
25
  results: z.ZodArray<z.ZodObject<{
@@ -35,28 +38,31 @@ declare const WebSearchToolResultSchema: z.ZodObject<{
35
38
  query: z.ZodString;
36
39
  totalResults: z.ZodNumber;
37
40
  searchEngine: z.ZodString;
41
+ creditsUsed: z.ZodNumber;
38
42
  success: z.ZodBoolean;
39
43
  error: z.ZodString;
40
44
  }, "strip", z.ZodTypeAny, {
41
- success: boolean;
42
45
  error: string;
46
+ success: boolean;
43
47
  query: string;
44
48
  results: {
45
49
  title: string;
46
50
  content: string;
47
51
  url: string;
48
52
  }[];
53
+ creditsUsed: number;
49
54
  totalResults: number;
50
55
  searchEngine: string;
51
56
  }, {
52
- success: boolean;
53
57
  error: string;
58
+ success: boolean;
54
59
  query: string;
55
60
  results: {
56
61
  title: string;
57
62
  content: string;
58
63
  url: string;
59
64
  }[];
65
+ creditsUsed: number;
60
66
  totalResults: number;
61
67
  searchEngine: string;
62
68
  }>;
@@ -64,23 +70,25 @@ type WebSearchToolParams = z.output<typeof WebSearchToolParamsSchema>;
64
70
  type WebSearchToolResult = z.output<typeof WebSearchToolResultSchema>;
65
71
  type WebSearchToolParamsInput = z.input<typeof WebSearchToolParamsSchema>;
66
72
  export declare class WebSearchTool extends ToolBubble<WebSearchToolParams, WebSearchToolResult> {
67
- private static readonly SEARCH_DELAY;
68
73
  static readonly bubbleName: BubbleName;
69
74
  static readonly schema: z.ZodObject<{
70
75
  query: z.ZodString;
71
76
  limit: z.ZodDefault<z.ZodNumber>;
77
+ categories: z.ZodDefault<z.ZodArray<z.ZodEnum<["research", "pdf", "github"]>, "many">>;
72
78
  location: z.ZodOptional<z.ZodString>;
73
79
  credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
74
80
  }, "strip", z.ZodTypeAny, {
75
- limit: number;
76
81
  query: string;
82
+ limit: number;
83
+ categories: ("github" | "pdf" | "research")[];
77
84
  credentials?: Partial<Record<CredentialType, string>> | undefined;
78
85
  location?: string | undefined;
79
86
  }, {
80
87
  query: string;
81
- limit?: number | undefined;
82
88
  credentials?: Partial<Record<CredentialType, string>> | undefined;
89
+ limit?: number | undefined;
83
90
  location?: string | undefined;
91
+ categories?: ("github" | "pdf" | "research")[] | undefined;
84
92
  }>;
85
93
  static readonly resultSchema: z.ZodObject<{
86
94
  results: z.ZodArray<z.ZodObject<{
@@ -99,28 +107,31 @@ export declare class WebSearchTool extends ToolBubble<WebSearchToolParams, WebSe
99
107
  query: z.ZodString;
100
108
  totalResults: z.ZodNumber;
101
109
  searchEngine: z.ZodString;
110
+ creditsUsed: z.ZodNumber;
102
111
  success: z.ZodBoolean;
103
112
  error: z.ZodString;
104
113
  }, "strip", z.ZodTypeAny, {
105
- success: boolean;
106
114
  error: string;
115
+ success: boolean;
107
116
  query: string;
108
117
  results: {
109
118
  title: string;
110
119
  content: string;
111
120
  url: string;
112
121
  }[];
122
+ creditsUsed: number;
113
123
  totalResults: number;
114
124
  searchEngine: string;
115
125
  }, {
116
- success: boolean;
117
126
  error: string;
127
+ success: boolean;
118
128
  query: string;
119
129
  results: {
120
130
  title: string;
121
131
  content: string;
122
132
  url: string;
123
133
  }[];
134
+ creditsUsed: number;
124
135
  totalResults: number;
125
136
  searchEngine: string;
126
137
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"web-search-tool.d.ts","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/web-search-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;AAoB5E,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;EAmB7B,CAAC;AAGH,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe7B,CAAC;AAGH,KAAK,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACtE,KAAK,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACtE,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE1E,qBAAa,aAAc,SAAQ,UAAU,CAC3C,mBAAmB,EACnB,mBAAmB,CACpB;IAEC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAQ;IAG5C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAqB;IAC3D,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;OAA6B;IACnD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA6B;IACzD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oFACmD;IACnF,MAAM,CAAC,QAAQ,CAAC,eAAe,ssBAiB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,eAAe;IACpC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;gBAG5B,MAAM,GAAE,wBAAwC,EAChD,OAAO,CAAC,EAAE,aAAa;IAKnB,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAyG3E"}
1
+ {"version":3,"file":"web-search-tool.d.ts","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/web-search-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;AAG3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAM5E,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAyB7B,CAAC;AAGH,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB7B,CAAC;AAGH,KAAK,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACtE,KAAK,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AACtE,KAAK,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE1E,qBAAa,aAAc,SAAQ,UAAU,CAC3C,mBAAmB,EACnB,mBAAmB,CACpB;IAIC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAqB;IAC3D,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;OAA6B;IACnD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA6B;IACzD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oFACmD;IACnF,MAAM,CAAC,QAAQ,CAAC,eAAe,ssBAiB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,eAAe;IACpC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;gBAG5B,MAAM,GAAE,wBAAwC,EAChD,OAAO,CAAC,EAAE,aAAa;IAKnB,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA+G3E"}
@@ -1,7 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { ToolBubble } from '../../types/tool-bubble-class.js';
3
- import FirecrawlApp from '@mendable/firecrawl-js';
3
+ import { FirecrawlBubble } from '../service-bubble/firecrawl.js';
4
4
  import { CredentialType } from '@bubblelab/shared-schemas';
5
+ // Firecrawl charges 2 credits per 10 search results
6
+ const CREDITS_PER_10_RESULTS = 2;
5
7
  // Define the parameters schema - simplified like the MCP server
6
8
  const WebSearchToolParamsSchema = z.object({
7
9
  query: z
@@ -10,10 +12,13 @@ const WebSearchToolParamsSchema = z.object({
10
12
  .describe('The search query to execute'),
11
13
  limit: z
12
14
  .number()
13
- .min(1, 'Minimum number of search results to return is 1')
14
- .max(5, 'Maximum number of search results to return is 5')
15
- .default(3)
15
+ .max(50, 'Maximum number of search results to return is 20')
16
+ .default(10)
16
17
  .describe('Maximum number of search results to return'),
18
+ categories: z
19
+ .array(z.enum(['research', 'pdf', 'github']))
20
+ .default([])
21
+ .describe('Categories to find most relevant search results (research, pdf, github)'),
17
22
  location: z
18
23
  .string()
19
24
  .optional()
@@ -35,12 +40,12 @@ const WebSearchToolResultSchema = z.object({
35
40
  query: z.string().describe('The original search query'),
36
41
  totalResults: z.number().describe('Number of results returned'),
37
42
  searchEngine: z.string().describe('Search engine used (Firecrawl)'),
43
+ creditsUsed: z.number().describe('Number of credits used'),
38
44
  success: z.boolean().describe('Whether the search was successful'),
39
45
  error: z.string().describe('Error message if search failed'),
40
46
  });
41
47
  export class WebSearchTool extends ToolBubble {
42
48
  // Delay between searches in milliseconds
43
- static SEARCH_DELAY = 2000;
44
49
  // Required static metadata
45
50
  static bubbleName = 'web-search-tool';
46
51
  static schema = WebSearchToolParamsSchema;
@@ -71,29 +76,16 @@ export class WebSearchTool extends ToolBubble {
71
76
  }
72
77
  async performAction(context) {
73
78
  void context; // Context available but not currently used
74
- // Wait for the configured delay before performing the search
75
- await new Promise((resolve) => setTimeout(resolve, WebSearchTool.SEARCH_DELAY));
76
- const { query, limit, location } = this.params;
79
+ const { query, limit, location, credentials } = this.params;
77
80
  try {
78
- // Validate limit range
79
- const limitedResults = Math.min(Math.max(limit, 1), 20);
80
- // Get Firecrawl API key from credentials
81
- const apiKey = this.params.credentials?.FIRECRAWL_API_KEY;
82
- if (!apiKey) {
83
- throw new Error('FIRECRAWL_API_KEY is required but not provided in credentials');
84
- }
85
- // Initialize Firecrawl client
86
- const firecrawl = new FirecrawlApp({ apiKey });
81
+ // Limit should be multiple of 10
82
+ const limitedResults = Math.ceil(limit / 10) * 10;
87
83
  // Build search parameters according to Firecrawl API with defaults
88
84
  const searchOptions = {
89
85
  limit: limitedResults,
90
86
  // Default sources to web search
91
87
  sources: ['web'],
92
- // Default scrape options for better content extraction
93
- scrapeOptions: {
94
- formats: ['markdown'],
95
- onlyMainContent: true,
96
- },
88
+ timeout: 30000,
97
89
  };
98
90
  // Add optional parameters if provided
99
91
  if (location) {
@@ -103,25 +95,38 @@ export class WebSearchTool extends ToolBubble {
103
95
  query,
104
96
  ...searchOptions,
105
97
  });
98
+ // Initialize Firecrawl bubble
99
+ const firecrawlParams = {
100
+ operation: 'search',
101
+ credentials,
102
+ query,
103
+ ...searchOptions,
104
+ };
105
+ const firecrawl = new FirecrawlBubble(firecrawlParams, this.context, 'web_search_tool_firecrawl');
106
106
  // Execute search using Firecrawl
107
- const searchResult = await firecrawl.search(query, searchOptions);
107
+ const response = await firecrawl.action();
108
108
  // Handle the response based on Firecrawl's actual API structure
109
109
  // The search API might return different structures, so handle both cases
110
110
  let resultsArray = [];
111
- if (Array.isArray(searchResult)) {
112
- resultsArray = searchResult;
111
+ if (!response.success) {
112
+ return {
113
+ results: [],
114
+ query,
115
+ creditsUsed: 0,
116
+ totalResults: 0,
117
+ searchEngine: 'Firecrawl',
118
+ success: false,
119
+ error: response.error || 'Search failed',
120
+ };
121
+ }
122
+ else if (response.data.web) {
123
+ resultsArray = response.data.web;
124
+ }
125
+ else if (response.data.other) {
126
+ resultsArray = response.data.other;
113
127
  }
114
128
  else {
115
- const response = searchResult;
116
- if (response?.data && Array.isArray(response.data)) {
117
- resultsArray = response.data;
118
- }
119
- else if (response?.web && Array.isArray(response.web)) {
120
- resultsArray = response.web;
121
- }
122
- else {
123
- throw new Error('No search results returned or unexpected response format');
124
- }
129
+ throw new Error('No search results returned or unexpected response format');
125
130
  }
126
131
  // Transform Firecrawl results to our format
127
132
  const results = resultsArray.map((item) => ({
@@ -133,11 +138,15 @@ export class WebSearchTool extends ToolBubble {
133
138
  item.markdown ||
134
139
  'No content available',
135
140
  }));
141
+ // Calculate credits: Firecrawl charges 2 credits per 10 results (rounded up)
142
+ // Token usage tracking is now centralized in FirecrawlBubble
143
+ const creditsUsed = Math.ceil(results.length / 10) * CREDITS_PER_10_RESULTS;
136
144
  return {
137
145
  results,
138
146
  query,
139
147
  totalResults: results.length,
140
148
  searchEngine: 'Firecrawl',
149
+ creditsUsed,
141
150
  success: true,
142
151
  error: '',
143
152
  };
@@ -148,6 +157,7 @@ export class WebSearchTool extends ToolBubble {
148
157
  return {
149
158
  results: [],
150
159
  query,
160
+ creditsUsed: 0,
151
161
  totalResults: 0,
152
162
  searchEngine: 'Firecrawl',
153
163
  success: false,
@@ -1 +1 @@
1
- {"version":3,"file":"web-search-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/web-search-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-search-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/web-search-tool.ts"],"names":[],"mappings":"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"}