@bubblelab/bubble-core 0.1.0

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 (275) hide show
  1. package/LICENSE.txt +202 -0
  2. package/dist/bubble-bundle.d.ts +2021 -0
  3. package/dist/bubble-factory.d.ts +161 -0
  4. package/dist/bubble-factory.d.ts.map +1 -0
  5. package/dist/bubble-factory.js +426 -0
  6. package/dist/bubble-factory.js.map +1 -0
  7. package/dist/bubble-flow/bubble-flow-class.d.ts +19 -0
  8. package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -0
  9. package/dist/bubble-flow/bubble-flow-class.js +23 -0
  10. package/dist/bubble-flow/bubble-flow-class.js.map +1 -0
  11. package/dist/bubble-flow/sample/data-analyst-flow.d.ts +15 -0
  12. package/dist/bubble-flow/sample/data-analyst-flow.d.ts.map +1 -0
  13. package/dist/bubble-flow/sample/data-analyst-flow.js +63 -0
  14. package/dist/bubble-flow/sample/data-analyst-flow.js.map +1 -0
  15. package/dist/bubble-flow/sample/error-ts.d.ts +23 -0
  16. package/dist/bubble-flow/sample/error-ts.d.ts.map +1 -0
  17. package/dist/bubble-flow/sample/error-ts.js +31 -0
  18. package/dist/bubble-flow/sample/error-ts.js.map +1 -0
  19. package/dist/bubble-flow/sample/sanitytest.d.ts +10 -0
  20. package/dist/bubble-flow/sample/sanitytest.d.ts.map +1 -0
  21. package/dist/bubble-flow/sample/sanitytest.js +13 -0
  22. package/dist/bubble-flow/sample/sanitytest.js.map +1 -0
  23. package/dist/bubble-flow/sample/simple-webhook-2.d.ts +19 -0
  24. package/dist/bubble-flow/sample/simple-webhook-2.d.ts.map +1 -0
  25. package/dist/bubble-flow/sample/simple-webhook-2.js +23 -0
  26. package/dist/bubble-flow/sample/simple-webhook-2.js.map +1 -0
  27. package/dist/bubble-flow/sample/simple-webhook.d.ts +10 -0
  28. package/dist/bubble-flow/sample/simple-webhook.d.ts.map +1 -0
  29. package/dist/bubble-flow/sample/simple-webhook.js +18 -0
  30. package/dist/bubble-flow/sample/simple-webhook.js.map +1 -0
  31. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts +29 -0
  32. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts.map +1 -0
  33. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js +150 -0
  34. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js.map +1 -0
  35. package/dist/bubble-flow/sample/slack-v0.1.d.ts +10 -0
  36. package/dist/bubble-flow/sample/slack-v0.1.d.ts.map +1 -0
  37. package/dist/bubble-flow/sample/slack-v0.1.js +59 -0
  38. package/dist/bubble-flow/sample/slack-v0.1.js.map +1 -0
  39. package/dist/bubble-flow/sample/slackagenttest.d.ts +10 -0
  40. package/dist/bubble-flow/sample/slackagenttest.d.ts.map +1 -0
  41. package/dist/bubble-flow/sample/slackagenttest.js +59 -0
  42. package/dist/bubble-flow/sample/slackagenttest.js.map +1 -0
  43. package/dist/bubble-trigger/index.d.ts +2 -0
  44. package/dist/bubble-trigger/index.d.ts.map +1 -0
  45. package/dist/bubble-trigger/index.js +2 -0
  46. package/dist/bubble-trigger/index.js.map +1 -0
  47. package/dist/bubble-trigger/types.d.ts +87 -0
  48. package/dist/bubble-trigger/types.d.ts.map +1 -0
  49. package/dist/bubble-trigger/types.js +14 -0
  50. package/dist/bubble-trigger/types.js.map +1 -0
  51. package/dist/bubbles/service-bubble/ai-agent.d.ts +428 -0
  52. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -0
  53. package/dist/bubbles/service-bubble/ai-agent.js +881 -0
  54. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -0
  55. package/dist/bubbles/service-bubble/gmail.d.ts +3073 -0
  56. package/dist/bubbles/service-bubble/gmail.d.ts.map +1 -0
  57. package/dist/bubbles/service-bubble/gmail.js +908 -0
  58. package/dist/bubbles/service-bubble/gmail.js.map +1 -0
  59. package/dist/bubbles/service-bubble/google-calendar.d.ts +3377 -0
  60. package/dist/bubbles/service-bubble/google-calendar.d.ts.map +1 -0
  61. package/dist/bubbles/service-bubble/google-calendar.js +527 -0
  62. package/dist/bubbles/service-bubble/google-calendar.js.map +1 -0
  63. package/dist/bubbles/service-bubble/google-drive.d.ts +1152 -0
  64. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -0
  65. package/dist/bubbles/service-bubble/google-drive.js +943 -0
  66. package/dist/bubbles/service-bubble/google-drive.js.map +1 -0
  67. package/dist/bubbles/service-bubble/google-sheets.d.ts +1811 -0
  68. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +1 -0
  69. package/dist/bubbles/service-bubble/google-sheets.js +904 -0
  70. package/dist/bubbles/service-bubble/google-sheets.js.map +1 -0
  71. package/dist/bubbles/service-bubble/hello-world.d.ts +74 -0
  72. package/dist/bubbles/service-bubble/hello-world.d.ts.map +1 -0
  73. package/dist/bubbles/service-bubble/hello-world.js +67 -0
  74. package/dist/bubbles/service-bubble/hello-world.js.map +1 -0
  75. package/dist/bubbles/service-bubble/http.d.ts +134 -0
  76. package/dist/bubbles/service-bubble/http.d.ts.map +1 -0
  77. package/dist/bubbles/service-bubble/http.js +184 -0
  78. package/dist/bubbles/service-bubble/http.js.map +1 -0
  79. package/dist/bubbles/service-bubble/postgresql.d.ts +180 -0
  80. package/dist/bubbles/service-bubble/postgresql.d.ts.map +1 -0
  81. package/dist/bubbles/service-bubble/postgresql.js +448 -0
  82. package/dist/bubbles/service-bubble/postgresql.js.map +1 -0
  83. package/dist/bubbles/service-bubble/resend.d.ts +301 -0
  84. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -0
  85. package/dist/bubbles/service-bubble/resend.js +253 -0
  86. package/dist/bubbles/service-bubble/resend.js.map +1 -0
  87. package/dist/bubbles/service-bubble/slack.d.ts +5869 -0
  88. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -0
  89. package/dist/bubbles/service-bubble/slack.js +1536 -0
  90. package/dist/bubbles/service-bubble/slack.js.map +1 -0
  91. package/dist/bubbles/service-bubble/storage.d.ts +571 -0
  92. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -0
  93. package/dist/bubbles/service-bubble/storage.js +504 -0
  94. package/dist/bubbles/service-bubble/storage.js.map +1 -0
  95. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +308 -0
  96. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts.map +1 -0
  97. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js +285 -0
  98. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js.map +1 -0
  99. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +416 -0
  100. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts.map +1 -0
  101. package/dist/bubbles/tool-bubble/chart-js-tool.js +570 -0
  102. package/dist/bubbles/tool-bubble/chart-js-tool.js.map +1 -0
  103. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +99 -0
  104. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -0
  105. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +645 -0
  106. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -0
  107. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +112 -0
  108. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts.map +1 -0
  109. package/dist/bubbles/tool-bubble/list-bubbles-tool.js +82 -0
  110. package/dist/bubbles/tool-bubble/list-bubbles-tool.js.map +1 -0
  111. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +413 -0
  112. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts.map +1 -0
  113. package/dist/bubbles/tool-bubble/reddit-scrape-tool.js +327 -0
  114. package/dist/bubbles/tool-bubble/reddit-scrape-tool.js.map +1 -0
  115. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +122 -0
  116. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -0
  117. package/dist/bubbles/tool-bubble/research-agent-tool.js +343 -0
  118. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -0
  119. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +131 -0
  120. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts.map +1 -0
  121. package/dist/bubbles/tool-bubble/sql-query-tool.js +147 -0
  122. package/dist/bubbles/tool-bubble/sql-query-tool.js.map +1 -0
  123. package/dist/bubbles/tool-bubble/tool-template.d.ts +257 -0
  124. package/dist/bubbles/tool-bubble/tool-template.d.ts.map +1 -0
  125. package/dist/bubbles/tool-bubble/tool-template.js +238 -0
  126. package/dist/bubbles/tool-bubble/tool-template.js.map +1 -0
  127. package/dist/bubbles/tool-bubble/virtual-file-editor-example.d.ts +8 -0
  128. package/dist/bubbles/tool-bubble/virtual-file-editor-example.d.ts.map +1 -0
  129. package/dist/bubbles/tool-bubble/virtual-file-editor-example.js +65 -0
  130. package/dist/bubbles/tool-bubble/virtual-file-editor-example.js.map +1 -0
  131. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.d.ts +125 -0
  132. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.d.ts.map +1 -0
  133. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.js +169 -0
  134. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.js.map +1 -0
  135. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +218 -0
  136. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts.map +1 -0
  137. package/dist/bubbles/tool-bubble/web-crawl-tool.js +255 -0
  138. package/dist/bubbles/tool-bubble/web-crawl-tool.js.map +1 -0
  139. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +134 -0
  140. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts.map +1 -0
  141. package/dist/bubbles/tool-bubble/web-extract-tool.js +175 -0
  142. package/dist/bubbles/tool-bubble/web-extract-tool.js.map +1 -0
  143. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +228 -0
  144. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -0
  145. package/dist/bubbles/tool-bubble/web-scrape-tool.js +214 -0
  146. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -0
  147. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +134 -0
  148. package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -0
  149. package/dist/bubbles/tool-bubble/web-search-tool.js +155 -0
  150. package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -0
  151. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +114 -0
  152. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +1 -0
  153. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +777 -0
  154. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +1 -0
  155. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.d.ts +97 -0
  156. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.d.ts.map +1 -0
  157. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.js +327 -0
  158. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.js.map +1 -0
  159. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +303 -0
  160. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts.map +1 -0
  161. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.js +297 -0
  162. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.js.map +1 -0
  163. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.d.ts +157 -0
  164. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.d.ts.map +1 -0
  165. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.js +310 -0
  166. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.js.map +1 -0
  167. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +543 -0
  168. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts.map +1 -0
  169. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +628 -0
  170. package/dist/bubbles/workflow-bubble/generate-document.workflow.js.map +1 -0
  171. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +679 -0
  172. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts.map +1 -0
  173. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +604 -0
  174. package/dist/bubbles/workflow-bubble/parse-document.workflow.js.map +1 -0
  175. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +1011 -0
  176. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -0
  177. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +841 -0
  178. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -0
  179. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +883 -0
  180. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts.map +1 -0
  181. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +781 -0
  182. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js.map +1 -0
  183. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +300 -0
  184. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts.map +1 -0
  185. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +508 -0
  186. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -0
  187. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +731 -0
  188. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts.map +1 -0
  189. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +690 -0
  190. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -0
  191. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +401 -0
  192. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -0
  193. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +382 -0
  194. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -0
  195. package/dist/bubbles/workflow-bubble/workflow-template.d.ts +144 -0
  196. package/dist/bubbles/workflow-bubble/workflow-template.d.ts.map +1 -0
  197. package/dist/bubbles/workflow-bubble/workflow-template.js +124 -0
  198. package/dist/bubbles/workflow-bubble/workflow-template.js.map +1 -0
  199. package/dist/index.d.ts +46 -0
  200. package/dist/index.d.ts.map +1 -0
  201. package/dist/index.js +53 -0
  202. package/dist/index.js.map +1 -0
  203. package/dist/logging/BubbleLogger.d.ts +146 -0
  204. package/dist/logging/BubbleLogger.d.ts.map +1 -0
  205. package/dist/logging/BubbleLogger.js +472 -0
  206. package/dist/logging/BubbleLogger.js.map +1 -0
  207. package/dist/logging/StreamingBubbleLogger.d.ts +85 -0
  208. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -0
  209. package/dist/logging/StreamingBubbleLogger.js +340 -0
  210. package/dist/logging/StreamingBubbleLogger.js.map +1 -0
  211. package/dist/types/ai-models.d.ts +4 -0
  212. package/dist/types/ai-models.d.ts.map +1 -0
  213. package/dist/types/ai-models.js +14 -0
  214. package/dist/types/ai-models.js.map +1 -0
  215. package/dist/types/available-tools.d.ts +4 -0
  216. package/dist/types/available-tools.d.ts.map +1 -0
  217. package/dist/types/available-tools.js +19 -0
  218. package/dist/types/available-tools.js.map +1 -0
  219. package/dist/types/base-bubble-class.d.ts +47 -0
  220. package/dist/types/base-bubble-class.d.ts.map +1 -0
  221. package/dist/types/base-bubble-class.js +212 -0
  222. package/dist/types/base-bubble-class.js.map +1 -0
  223. package/dist/types/bubble-errors.d.ts +44 -0
  224. package/dist/types/bubble-errors.d.ts.map +1 -0
  225. package/dist/types/bubble-errors.js +51 -0
  226. package/dist/types/bubble-errors.js.map +1 -0
  227. package/dist/types/bubble.d.ts +73 -0
  228. package/dist/types/bubble.d.ts.map +1 -0
  229. package/dist/types/bubble.js +2 -0
  230. package/dist/types/bubble.js.map +1 -0
  231. package/dist/types/credentials.d.ts +6 -0
  232. package/dist/types/credentials.d.ts.map +1 -0
  233. package/dist/types/credentials.js +6 -0
  234. package/dist/types/credentials.js.map +1 -0
  235. package/dist/types/service-bubble-class.d.ts +31 -0
  236. package/dist/types/service-bubble-class.d.ts.map +1 -0
  237. package/dist/types/service-bubble-class.js +36 -0
  238. package/dist/types/service-bubble-class.js.map +1 -0
  239. package/dist/types/streaming-events.d.ts +18 -0
  240. package/dist/types/streaming-events.d.ts.map +1 -0
  241. package/dist/types/streaming-events.js +5 -0
  242. package/dist/types/streaming-events.js.map +1 -0
  243. package/dist/types/tool-bubble-class.d.ts +19 -0
  244. package/dist/types/tool-bubble-class.d.ts.map +1 -0
  245. package/dist/types/tool-bubble-class.js +48 -0
  246. package/dist/types/tool-bubble-class.js.map +1 -0
  247. package/dist/types/workflow-bubble-class.d.ts +25 -0
  248. package/dist/types/workflow-bubble-class.d.ts.map +1 -0
  249. package/dist/types/workflow-bubble-class.js +30 -0
  250. package/dist/types/workflow-bubble-class.js.map +1 -0
  251. package/dist/utils/bubbleflow-parser.d.ts +32 -0
  252. package/dist/utils/bubbleflow-parser.d.ts.map +1 -0
  253. package/dist/utils/bubbleflow-parser.js +332 -0
  254. package/dist/utils/bubbleflow-parser.js.map +1 -0
  255. package/dist/utils/bubbleflow-validation.d.ts +9 -0
  256. package/dist/utils/bubbleflow-validation.d.ts.map +1 -0
  257. package/dist/utils/bubbleflow-validation.js +116 -0
  258. package/dist/utils/bubbleflow-validation.js.map +1 -0
  259. package/dist/utils/json-parsing.d.ts +20 -0
  260. package/dist/utils/json-parsing.d.ts.map +1 -0
  261. package/dist/utils/json-parsing.js +394 -0
  262. package/dist/utils/json-parsing.js.map +1 -0
  263. package/dist/utils/mock-data-generator.d.ts +43 -0
  264. package/dist/utils/mock-data-generator.d.ts.map +1 -0
  265. package/dist/utils/mock-data-generator.js +312 -0
  266. package/dist/utils/mock-data-generator.js.map +1 -0
  267. package/dist/utils/param-helper.d.ts +2 -0
  268. package/dist/utils/param-helper.d.ts.map +1 -0
  269. package/dist/utils/param-helper.js +5 -0
  270. package/dist/utils/param-helper.js.map +1 -0
  271. package/dist/utils/source-bubble-parser.d.ts +31 -0
  272. package/dist/utils/source-bubble-parser.d.ts.map +1 -0
  273. package/dist/utils/source-bubble-parser.js +231 -0
  274. package/dist/utils/source-bubble-parser.js.map +1 -0
  275. package/package.json +63 -0
@@ -0,0 +1,155 @@
1
+ import { z } from 'zod';
2
+ import { ToolBubble } from '../../types/tool-bubble-class.js';
3
+ import FirecrawlApp, {} from '@mendable/firecrawl-js';
4
+ import { CredentialType } from '@bubblelab/shared-schemas';
5
+ // Define the parameters schema - simplified like the MCP server
6
+ const WebSearchToolParamsSchema = z.object({
7
+ query: z
8
+ .string()
9
+ .min(1, 'Search query is required')
10
+ .describe('The search query to execute'),
11
+ limit: z
12
+ .number()
13
+ .min(1, 'Minimum number of search results to return is 1')
14
+ .max(4, 'Maximum number of search results to return is 4')
15
+ .default(3)
16
+ .describe('Maximum number of search results to return'),
17
+ location: z
18
+ .string()
19
+ .optional()
20
+ .describe('Location parameter for search results (e.g., "us", "uk")'),
21
+ credentials: z
22
+ .record(z.nativeEnum(CredentialType), z.string())
23
+ .optional()
24
+ .describe('Required credentials including FIRECRAWL_API_KEY'),
25
+ });
26
+ // Result schema for validation
27
+ const WebSearchToolResultSchema = z.object({
28
+ results: z
29
+ .array(z.object({
30
+ title: z.string().describe('Title of the search result'),
31
+ url: z.string().url().describe('URL of the search result'),
32
+ content: z.string().describe('Content snippet from the search result'),
33
+ }))
34
+ .describe('Array of search results with title, URL, and content'),
35
+ query: z.string().describe('The original search query'),
36
+ totalResults: z.number().describe('Number of results returned'),
37
+ searchEngine: z.string().describe('Search engine used (Firecrawl)'),
38
+ success: z.boolean().describe('Whether the search was successful'),
39
+ error: z.string().describe('Error message if search failed'),
40
+ });
41
+ export class WebSearchTool extends ToolBubble {
42
+ // Required static metadata
43
+ static bubbleName = 'web-search-tool';
44
+ static schema = WebSearchToolParamsSchema;
45
+ static resultSchema = WebSearchToolResultSchema;
46
+ static shortDescription = 'Performs web searches using Firecrawl to find current information from the web';
47
+ static longDescription = `
48
+ A comprehensive web search tool that uses Firecrawl to find current information from the web.
49
+
50
+ Features:
51
+ - High-quality web search results with content extraction
52
+ - Configurable result limits (1-20 results)
53
+ - Location-based search for regional results
54
+ - Clean, structured content extraction from search results
55
+ - Requires FIRECRAWL_API_KEY credential
56
+
57
+ Use cases:
58
+ - Finding current events and news
59
+ - Researching topics with web content
60
+ - Getting up-to-date information for decision making
61
+ - Answering questions that require web knowledge
62
+ - Market research and competitive analysis
63
+ - Real-time data gathering from the web
64
+ `;
65
+ static alias = 'websearch';
66
+ static type = 'tool';
67
+ constructor(params = { query: '' }, context) {
68
+ super(params, context);
69
+ }
70
+ async performAction(context) {
71
+ void context; // Context available but not currently used
72
+ const { query, limit, location } = this.params;
73
+ try {
74
+ // Validate limit range
75
+ const limitedResults = Math.min(Math.max(limit, 1), 20);
76
+ // Get Firecrawl API key from credentials
77
+ const apiKey = this.params.credentials?.FIRECRAWL_API_KEY;
78
+ if (!apiKey) {
79
+ throw new Error('FIRECRAWL_API_KEY is required but not provided in credentials');
80
+ }
81
+ // Initialize Firecrawl client
82
+ const firecrawl = new FirecrawlApp({ apiKey });
83
+ // Build search parameters according to Firecrawl API with defaults
84
+ const searchOptions = {
85
+ limit: limitedResults,
86
+ // Default sources to web search
87
+ sources: ['web'],
88
+ // Default scrape options for better content extraction
89
+ scrapeOptions: {
90
+ formats: ['markdown'],
91
+ onlyMainContent: true,
92
+ },
93
+ };
94
+ // Add optional parameters if provided
95
+ if (location) {
96
+ searchOptions.location = location;
97
+ }
98
+ console.log('[WebSearchTool] Searching with params:', {
99
+ query,
100
+ ...searchOptions,
101
+ });
102
+ // Execute search using Firecrawl
103
+ const searchResult = await firecrawl.search(query, searchOptions);
104
+ // Handle the response based on Firecrawl's actual API structure
105
+ // The search API might return different structures, so handle both cases
106
+ let resultsArray = [];
107
+ if (Array.isArray(searchResult)) {
108
+ resultsArray = searchResult;
109
+ }
110
+ else {
111
+ const response = searchResult;
112
+ if (response?.data && Array.isArray(response.data)) {
113
+ resultsArray = response.data;
114
+ }
115
+ else if (response?.web && Array.isArray(response.web)) {
116
+ resultsArray = response.web;
117
+ }
118
+ else {
119
+ throw new Error('No search results returned or unexpected response format');
120
+ }
121
+ }
122
+ // Transform Firecrawl results to our format
123
+ const results = resultsArray.map((item) => ({
124
+ title: item.title || item.name || 'No title',
125
+ url: item.url || item.link || '',
126
+ content: item.content ||
127
+ item.description ||
128
+ item.text ||
129
+ item.markdown ||
130
+ 'No content available',
131
+ }));
132
+ return {
133
+ results,
134
+ query,
135
+ totalResults: results.length,
136
+ searchEngine: 'Firecrawl',
137
+ success: true,
138
+ error: '',
139
+ };
140
+ }
141
+ catch (error) {
142
+ console.error('[WebSearchTool] Search error:', error);
143
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
144
+ return {
145
+ results: [],
146
+ query,
147
+ totalResults: 0,
148
+ searchEngine: 'Firecrawl',
149
+ success: false,
150
+ error: errorMessage,
151
+ };
152
+ }
153
+ }
154
+ }
155
+ //# sourceMappingURL=web-search-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-search-tool.js","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;AAE9D,OAAO,YAAY,EAAE,EAAsB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAmB,MAAM,2BAA2B,CAAC;AAmB5E,gEAAgE;AAChE,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;SAClC,QAAQ,CAAC,6BAA6B,CAAC;IAC1C,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,iDAAiD,CAAC;SACzD,GAAG,CAAC,CAAC,EAAE,iDAAiD,CAAC;SACzD,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,4CAA4C,CAAC;IACzD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,WAAW,EAAE,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAChD,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;CAChE,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC;SACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACxD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KACvE,CAAC,CACH;SACA,QAAQ,CAAC,sDAAsD,CAAC;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC/D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACnE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC7D,CAAC,CAAC;AAOH,MAAM,OAAO,aAAc,SAAQ,UAGlC;IACC,2BAA2B;IAC3B,MAAM,CAAU,UAAU,GAAe,iBAAiB,CAAC;IAC3D,MAAM,CAAU,MAAM,GAAG,yBAAyB,CAAC;IACnD,MAAM,CAAU,YAAY,GAAG,yBAAyB,CAAC;IACzD,MAAM,CAAU,gBAAgB,GAC9B,gFAAgF,CAAC;IACnF,MAAM,CAAU,eAAe,GAAG;;;;;;;;;;;;;;;;;GAiBjC,CAAC;IACF,MAAM,CAAU,KAAK,GAAG,WAAW,CAAC;IACpC,MAAM,CAAU,IAAI,GAAG,MAAM,CAAC;IAE9B,YACE,SAAmC,EAAE,KAAK,EAAE,EAAE,EAAE,EAChD,OAAuB;QAEvB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,KAAK,OAAO,CAAC,CAAC,2CAA2C;QAEzD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE/C,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAExD,yCAAyC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC;YAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;YACJ,CAAC;YAED,8BAA8B;YAC9B,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAE/C,mEAAmE;YACnE,MAAM,aAAa,GAAiC;gBAClD,KAAK,EAAE,cAAc;gBACrB,gCAAgC;gBAChC,OAAO,EAAE,CAAC,KAAK,CAAC;gBAChB,uDAAuD;gBACvD,aAAa,EAAE;oBACb,OAAO,EAAE,CAAC,UAAU,CAAC;oBACrB,eAAe,EAAE,IAAI;iBACtB;aACF,CAAC;YAEF,sCAAsC;YACtC,IAAI,QAAQ,EAAE,CAAC;gBACb,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE;gBACpD,KAAK;gBACL,GAAG,aAAa;aACjB,CAAC,CAAC;YAEH,iCAAiC;YACjC,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAElE,gEAAgE;YAChE,yEAAyE;YACzE,IAAI,YAAY,GAA4B,EAAE,CAAC;YAE/C,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,YAAY,GAAG,YAAuC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,YAAuC,CAAC;gBACzD,IAAI,QAAQ,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnD,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC/B,CAAC;qBAAM,IAAI,QAAQ,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxD,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAA2B,EAAE,EAAE,CAAC,CAAC;gBACjE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU;gBAC5C,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;gBAChC,OAAO,EACL,IAAI,CAAC,OAAO;oBACZ,IAAI,CAAC,WAAW;oBAChB,IAAI,CAAC,IAAI;oBACT,IAAI,CAAC,QAAQ;oBACb,sBAAsB;aACzB,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,OAAO;gBACP,KAAK;gBACL,YAAY,EAAE,OAAO,CAAC,MAAM;gBAC5B,YAAY,EAAE,WAAW;gBACzB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,EAAE;aACV,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YAEtD,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAE3D,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,KAAK;gBACL,YAAY,EAAE,CAAC;gBACf,YAAY,EAAE,WAAW;gBACzB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY;aACpB,CAAC;QACJ,CAAC;IACH,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * SIMPLE BUBBLEFLOW GENERATOR WORKFLOW
3
+ *
4
+ * A simplified BubbleFlow generator that uses AI agent with tools to generate
5
+ * and validate BubbleFlow code from natural language prompts.
6
+ *
7
+ * Much simpler than the complex workflow - just AI + validation tool!
8
+ */
9
+ import { z } from 'zod';
10
+ import { WorkflowBubble } from '../../types/workflow-bubble-class.js';
11
+ import type { BubbleContext } from '../../types/bubble.js';
12
+ import { CredentialType } from '@bubblelab/shared-schemas';
13
+ import { type StreamingCallback } from '../service-bubble/ai-agent.js';
14
+ /**
15
+ * Parameters schema for the simple BubbleFlow generator
16
+ */
17
+ declare const BubbleFlowGeneratorParamsSchema: z.ZodObject<{
18
+ prompt: z.ZodString;
19
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ prompt: string;
22
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
23
+ }, {
24
+ prompt: string;
25
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
26
+ }>;
27
+ /**
28
+ * Result schema
29
+ */
30
+ declare const BubbleFlowGeneratorResultSchema: z.ZodObject<{
31
+ generatedCode: z.ZodString;
32
+ isValid: z.ZodBoolean;
33
+ success: z.ZodBoolean;
34
+ error: z.ZodString;
35
+ toolCalls: z.ZodArray<z.ZodAny, "many">;
36
+ summary: z.ZodDefault<z.ZodString>;
37
+ inputsSchema: z.ZodDefault<z.ZodString>;
38
+ }, "strip", z.ZodTypeAny, {
39
+ success: boolean;
40
+ error: string;
41
+ toolCalls: any[];
42
+ summary: string;
43
+ generatedCode: string;
44
+ isValid: boolean;
45
+ inputsSchema: string;
46
+ }, {
47
+ success: boolean;
48
+ error: string;
49
+ toolCalls: any[];
50
+ generatedCode: string;
51
+ isValid: boolean;
52
+ summary?: string | undefined;
53
+ inputsSchema?: string | undefined;
54
+ }>;
55
+ type BubbleFlowGeneratorParams = z.output<typeof BubbleFlowGeneratorParamsSchema>;
56
+ type BubbleFlowGeneratorResult = z.output<typeof BubbleFlowGeneratorResultSchema>;
57
+ /**
58
+ * Simple BubbleFlow Generator using AI agent with tools
59
+ */
60
+ export declare class BubbleFlowGeneratorWorkflow extends WorkflowBubble<BubbleFlowGeneratorParams, BubbleFlowGeneratorResult> {
61
+ static readonly type: "workflow";
62
+ static readonly bubbleName = "bubbleflow-generator";
63
+ static readonly schema: z.ZodObject<{
64
+ prompt: z.ZodString;
65
+ credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
66
+ }, "strip", z.ZodTypeAny, {
67
+ prompt: string;
68
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
69
+ }, {
70
+ prompt: string;
71
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
72
+ }>;
73
+ static readonly resultSchema: z.ZodObject<{
74
+ generatedCode: z.ZodString;
75
+ isValid: z.ZodBoolean;
76
+ success: z.ZodBoolean;
77
+ error: z.ZodString;
78
+ toolCalls: z.ZodArray<z.ZodAny, "many">;
79
+ summary: z.ZodDefault<z.ZodString>;
80
+ inputsSchema: z.ZodDefault<z.ZodString>;
81
+ }, "strip", z.ZodTypeAny, {
82
+ success: boolean;
83
+ error: string;
84
+ toolCalls: any[];
85
+ summary: string;
86
+ generatedCode: string;
87
+ isValid: boolean;
88
+ inputsSchema: string;
89
+ }, {
90
+ success: boolean;
91
+ error: string;
92
+ toolCalls: any[];
93
+ generatedCode: string;
94
+ isValid: boolean;
95
+ summary?: string | undefined;
96
+ inputsSchema?: string | undefined;
97
+ }>;
98
+ static readonly shortDescription = "Generate BubbleFlow code from natural language";
99
+ static readonly longDescription = "\n Simple BubbleFlow generator that uses AI with validation tools.\n \n Just provide a natural language prompt describing what you want your BubbleFlow to do,\n and it will generate complete TypeScript code with proper validation.\n \n Example prompts:\n - \"Create a flow that queries my database and sends results to Slack\"\n - \"Build a workflow that processes user data with AI and stores it\"\n - \"Make a flow that analyzes text and generates a summary\"\n ";
100
+ static readonly alias = "generate-flow";
101
+ private bubbleFactory;
102
+ constructor(params: z.input<typeof BubbleFlowGeneratorParamsSchema>, context?: BubbleContext);
103
+ private runValidationAgent;
104
+ private runSummarizeAgent;
105
+ private createSystemPrompt;
106
+ private createStreamingSystemPrompt;
107
+ protected performAction(context?: BubbleContext): Promise<BubbleFlowGeneratorResult>;
108
+ /**
109
+ * Execute the workflow with streaming support for real-time code generation feedback
110
+ */
111
+ actionWithStreaming(streamingCallback: StreamingCallback, context?: BubbleContext): Promise<BubbleFlowGeneratorResult>;
112
+ }
113
+ export {};
114
+ //# sourceMappingURL=bubbleflow-generator.workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubbleflow-generator.workflow.d.ts","sourceRoot":"","sources":["../../../src/bubbles/workflow-bubble/bubbleflow-generator.workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAiCvC;;GAEG;AACH,QAAA,MAAM,+BAA+B;;;;;;;;;EAUnC,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;EAgBnC,CAAC;AAEH,KAAK,yBAAyB,GAAG,CAAC,CAAC,MAAM,CACvC,OAAO,+BAA+B,CACvC,CAAC;AACF,KAAK,yBAAyB,GAAG,CAAC,CAAC,MAAM,CACvC,OAAO,+BAA+B,CACvC,CAAC;AA0DF;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,cAAc,CAC7D,yBAAyB,EACzB,yBAAyB,CAC1B;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAC3C,MAAM,CAAC,QAAQ,CAAC,UAAU,0BAA0B;IACpD,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;OAAmC;IACzD,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;OAAmC;IAC/D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,oDACmB;IACnD,MAAM,CAAC,QAAQ,CAAC,eAAe,kfAU7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,mBAAmB;IAExC,OAAO,CAAC,aAAa,CAAgB;gBAGnC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,EACvD,OAAO,CAAC,EAAE,aAAa;YAMX,kBAAkB;YAmHlB,iBAAiB;IAkF/B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,2BAA2B;cAmBnB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAiPrC;;OAEG;IACU,mBAAmB,CAC9B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,yBAAyB,CAAC;CAiXtC"}