@bubblelab/bubble-core 0.1.12 → 0.1.14

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 (72) hide show
  1. package/dist/bubble-bundle.d.ts +122 -99
  2. package/dist/bubble-factory.d.ts +2 -3
  3. package/dist/bubble-factory.d.ts.map +1 -1
  4. package/dist/bubble-factory.js +23 -96
  5. package/dist/bubble-factory.js.map +1 -1
  6. package/dist/bubbles/service-bubble/agi-inc.d.ts +112 -112
  7. package/dist/bubbles/service-bubble/ai-agent.d.ts +62 -62
  8. package/dist/bubbles/service-bubble/airtable.d.ts +152 -152
  9. package/dist/bubbles/service-bubble/apify/apify.d.ts +26 -26
  10. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +51 -51
  11. package/dist/bubbles/service-bubble/eleven-labs.d.ts +52 -52
  12. package/dist/bubbles/service-bubble/firecrawl.d.ts +202 -202
  13. package/dist/bubbles/service-bubble/followupboss.d.ts +260 -260
  14. package/dist/bubbles/service-bubble/github.d.ts +168 -168
  15. package/dist/bubbles/service-bubble/gmail.d.ts +352 -352
  16. package/dist/bubbles/service-bubble/google-calendar.d.ts +148 -148
  17. package/dist/bubbles/service-bubble/google-drive.d.ts +130 -130
  18. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  19. package/dist/bubbles/service-bubble/google-drive.js +55 -17
  20. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  21. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +62 -62
  22. package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
  23. package/dist/bubbles/service-bubble/http.d.ts +16 -16
  24. package/dist/bubbles/service-bubble/insforge-db.d.ts +18 -18
  25. package/dist/bubbles/service-bubble/notion/notion.d.ts +152 -152
  26. package/dist/bubbles/service-bubble/postgresql.d.ts +18 -18
  27. package/dist/bubbles/service-bubble/resend.d.ts +20 -20
  28. package/dist/bubbles/service-bubble/slack.d.ts +318 -318
  29. package/dist/bubbles/service-bubble/storage.d.ts +40 -40
  30. package/dist/bubbles/service-bubble/telegram.d.ts +256 -256
  31. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +33 -33
  32. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  33. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +4 -4
  34. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +4 -4
  35. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +4 -4
  36. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts +146 -0
  37. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts.map +1 -0
  38. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.js +128 -0
  39. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.js.map +1 -0
  40. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +8 -8
  41. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +8 -8
  42. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +294 -294
  43. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
  44. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +14 -14
  45. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  46. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +16 -16
  47. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
  48. package/dist/bubbles/tool-bubble/tool-template.d.ts +4 -4
  49. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +104 -104
  50. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +8 -8
  51. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
  52. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
  53. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +8 -8
  54. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +18 -18
  55. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
  56. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +4 -4
  57. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +4 -4
  58. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +50 -50
  59. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +8 -8
  60. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +8 -8
  61. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +36 -36
  62. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +4 -4
  63. package/dist/bubbles.json +18 -4
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +1 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/types/available-tools.d.ts +1 -1
  69. package/dist/types/available-tools.d.ts.map +1 -1
  70. package/dist/types/available-tools.js +1 -0
  71. package/dist/types/available-tools.js.map +1 -1
  72. package/package.json +2 -2
@@ -104,14 +104,14 @@ declare const SlackDataAssistantResultSchema: z.ZodObject<{
104
104
  wordCount?: number | undefined;
105
105
  }>>;
106
106
  }, "strip", z.ZodTypeAny, {
107
- error: string;
108
107
  success: boolean;
108
+ error: string;
109
+ query?: string | undefined;
109
110
  metadata?: {
110
111
  executionTime: number;
111
112
  rowCount?: number | undefined;
112
113
  wordCount?: number | undefined;
113
114
  } | undefined;
114
- query?: string | undefined;
115
115
  queryExplanation?: string | undefined;
116
116
  queryResults?: Record<string, unknown>[] | undefined;
117
117
  formattedResponse?: string | undefined;
@@ -119,14 +119,14 @@ declare const SlackDataAssistantResultSchema: z.ZodObject<{
119
119
  slackMessageTs?: string | undefined;
120
120
  isDataQuestion?: boolean | undefined;
121
121
  }, {
122
- error: string;
123
122
  success: boolean;
123
+ error: string;
124
+ query?: string | undefined;
124
125
  metadata?: {
125
126
  executionTime: number;
126
127
  rowCount?: number | undefined;
127
128
  wordCount?: number | undefined;
128
129
  } | undefined;
129
- query?: string | undefined;
130
130
  queryExplanation?: string | undefined;
131
131
  queryResults?: Record<string, unknown>[] | undefined;
132
132
  formattedResponse?: string | undefined;
@@ -242,14 +242,14 @@ export declare class SlackDataAssistantWorkflow extends WorkflowBubble<SlackData
242
242
  wordCount?: number | undefined;
243
243
  }>>;
244
244
  }, "strip", z.ZodTypeAny, {
245
- error: string;
246
245
  success: boolean;
246
+ error: string;
247
+ query?: string | undefined;
247
248
  metadata?: {
248
249
  executionTime: number;
249
250
  rowCount?: number | undefined;
250
251
  wordCount?: number | undefined;
251
252
  } | undefined;
252
- query?: string | undefined;
253
253
  queryExplanation?: string | undefined;
254
254
  queryResults?: Record<string, unknown>[] | undefined;
255
255
  formattedResponse?: string | undefined;
@@ -257,14 +257,14 @@ export declare class SlackDataAssistantWorkflow extends WorkflowBubble<SlackData
257
257
  slackMessageTs?: string | undefined;
258
258
  isDataQuestion?: boolean | undefined;
259
259
  }, {
260
- error: string;
261
260
  success: boolean;
261
+ error: string;
262
+ query?: string | undefined;
262
263
  metadata?: {
263
264
  executionTime: number;
264
265
  rowCount?: number | undefined;
265
266
  wordCount?: number | undefined;
266
267
  } | undefined;
267
- query?: string | undefined;
268
268
  queryExplanation?: string | undefined;
269
269
  queryResults?: Record<string, unknown>[] | undefined;
270
270
  formattedResponse?: string | undefined;
@@ -154,7 +154,7 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
154
154
  verbatim?: boolean | undefined;
155
155
  }>, "many">>;
156
156
  }, "strip", z.ZodTypeAny, {
157
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
157
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
158
158
  title?: {
159
159
  type: "plain_text";
160
160
  text: string;
@@ -166,14 +166,14 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
166
166
  emoji?: boolean | undefined;
167
167
  verbatim?: boolean | undefined;
168
168
  } | undefined;
169
- image_url?: string | undefined;
170
- optional?: boolean | undefined;
171
169
  fields?: {
172
170
  type: "plain_text" | "mrkdwn";
173
171
  text: string;
174
172
  emoji?: boolean | undefined;
175
173
  verbatim?: boolean | undefined;
176
174
  }[] | undefined;
175
+ image_url?: string | undefined;
176
+ optional?: boolean | undefined;
177
177
  alt_text?: string | undefined;
178
178
  elements?: {
179
179
  type: "plain_text" | "mrkdwn";
@@ -187,7 +187,7 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
187
187
  label?: unknown;
188
188
  hint?: unknown;
189
189
  }, {
190
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
190
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
191
191
  title?: {
192
192
  type: "plain_text";
193
193
  text: string;
@@ -199,14 +199,14 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
199
199
  emoji?: boolean | undefined;
200
200
  verbatim?: boolean | undefined;
201
201
  } | undefined;
202
- image_url?: string | undefined;
203
- optional?: boolean | undefined;
204
202
  fields?: {
205
203
  type: "plain_text" | "mrkdwn";
206
204
  text: string;
207
205
  emoji?: boolean | undefined;
208
206
  verbatim?: boolean | undefined;
209
207
  }[] | undefined;
208
+ image_url?: string | undefined;
209
+ optional?: boolean | undefined;
210
210
  alt_text?: string | undefined;
211
211
  elements?: {
212
212
  type: "plain_text" | "mrkdwn";
@@ -253,23 +253,23 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
253
253
  error: z.ZodString;
254
254
  success: z.ZodBoolean;
255
255
  }, "strip", z.ZodTypeAny, {
256
- error: string;
257
256
  success: boolean;
257
+ error: string;
258
+ response: string;
259
+ iterations: number;
258
260
  metadata: {
259
261
  verbosityLevel: string;
260
262
  technicalityLevel: string;
261
263
  wordCount: number;
262
264
  blockCount?: number | undefined;
263
265
  };
264
- response: string;
265
- iterations: number;
266
266
  toolCalls?: {
267
267
  tool: string;
268
268
  input?: unknown;
269
269
  output?: unknown;
270
270
  }[] | undefined;
271
271
  blocks?: {
272
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
272
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
273
273
  title?: {
274
274
  type: "plain_text";
275
275
  text: string;
@@ -281,14 +281,14 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
281
281
  emoji?: boolean | undefined;
282
282
  verbatim?: boolean | undefined;
283
283
  } | undefined;
284
- image_url?: string | undefined;
285
- optional?: boolean | undefined;
286
284
  fields?: {
287
285
  type: "plain_text" | "mrkdwn";
288
286
  text: string;
289
287
  emoji?: boolean | undefined;
290
288
  verbatim?: boolean | undefined;
291
289
  }[] | undefined;
290
+ image_url?: string | undefined;
291
+ optional?: boolean | undefined;
292
292
  alt_text?: string | undefined;
293
293
  elements?: {
294
294
  type: "plain_text" | "mrkdwn";
@@ -303,23 +303,23 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
303
303
  hint?: unknown;
304
304
  }[] | undefined;
305
305
  }, {
306
- error: string;
307
306
  success: boolean;
307
+ error: string;
308
+ response: string;
309
+ iterations: number;
308
310
  metadata: {
309
311
  verbosityLevel: string;
310
312
  technicalityLevel: string;
311
313
  wordCount: number;
312
314
  blockCount?: number | undefined;
313
315
  };
314
- response: string;
315
- iterations: number;
316
316
  toolCalls?: {
317
317
  tool: string;
318
318
  input?: unknown;
319
319
  output?: unknown;
320
320
  }[] | undefined;
321
321
  blocks?: {
322
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
322
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
323
323
  title?: {
324
324
  type: "plain_text";
325
325
  text: string;
@@ -331,14 +331,14 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
331
331
  emoji?: boolean | undefined;
332
332
  verbatim?: boolean | undefined;
333
333
  } | undefined;
334
- image_url?: string | undefined;
335
- optional?: boolean | undefined;
336
334
  fields?: {
337
335
  type: "plain_text" | "mrkdwn";
338
336
  text: string;
339
337
  emoji?: boolean | undefined;
340
338
  verbatim?: boolean | undefined;
341
339
  }[] | undefined;
340
+ image_url?: string | undefined;
341
+ optional?: boolean | undefined;
342
342
  alt_text?: string | undefined;
343
343
  elements?: {
344
344
  type: "plain_text" | "mrkdwn";
@@ -512,7 +512,7 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
512
512
  verbatim?: boolean | undefined;
513
513
  }>, "many">>;
514
514
  }, "strip", z.ZodTypeAny, {
515
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
515
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
516
516
  title?: {
517
517
  type: "plain_text";
518
518
  text: string;
@@ -524,14 +524,14 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
524
524
  emoji?: boolean | undefined;
525
525
  verbatim?: boolean | undefined;
526
526
  } | undefined;
527
- image_url?: string | undefined;
528
- optional?: boolean | undefined;
529
527
  fields?: {
530
528
  type: "plain_text" | "mrkdwn";
531
529
  text: string;
532
530
  emoji?: boolean | undefined;
533
531
  verbatim?: boolean | undefined;
534
532
  }[] | undefined;
533
+ image_url?: string | undefined;
534
+ optional?: boolean | undefined;
535
535
  alt_text?: string | undefined;
536
536
  elements?: {
537
537
  type: "plain_text" | "mrkdwn";
@@ -545,7 +545,7 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
545
545
  label?: unknown;
546
546
  hint?: unknown;
547
547
  }, {
548
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
548
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
549
549
  title?: {
550
550
  type: "plain_text";
551
551
  text: string;
@@ -557,14 +557,14 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
557
557
  emoji?: boolean | undefined;
558
558
  verbatim?: boolean | undefined;
559
559
  } | undefined;
560
- image_url?: string | undefined;
561
- optional?: boolean | undefined;
562
560
  fields?: {
563
561
  type: "plain_text" | "mrkdwn";
564
562
  text: string;
565
563
  emoji?: boolean | undefined;
566
564
  verbatim?: boolean | undefined;
567
565
  }[] | undefined;
566
+ image_url?: string | undefined;
567
+ optional?: boolean | undefined;
568
568
  alt_text?: string | undefined;
569
569
  elements?: {
570
570
  type: "plain_text" | "mrkdwn";
@@ -611,23 +611,23 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
611
611
  error: z.ZodString;
612
612
  success: z.ZodBoolean;
613
613
  }, "strip", z.ZodTypeAny, {
614
- error: string;
615
614
  success: boolean;
615
+ error: string;
616
+ response: string;
617
+ iterations: number;
616
618
  metadata: {
617
619
  verbosityLevel: string;
618
620
  technicalityLevel: string;
619
621
  wordCount: number;
620
622
  blockCount?: number | undefined;
621
623
  };
622
- response: string;
623
- iterations: number;
624
624
  toolCalls?: {
625
625
  tool: string;
626
626
  input?: unknown;
627
627
  output?: unknown;
628
628
  }[] | undefined;
629
629
  blocks?: {
630
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
630
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
631
631
  title?: {
632
632
  type: "plain_text";
633
633
  text: string;
@@ -639,14 +639,14 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
639
639
  emoji?: boolean | undefined;
640
640
  verbatim?: boolean | undefined;
641
641
  } | undefined;
642
- image_url?: string | undefined;
643
- optional?: boolean | undefined;
644
642
  fields?: {
645
643
  type: "plain_text" | "mrkdwn";
646
644
  text: string;
647
645
  emoji?: boolean | undefined;
648
646
  verbatim?: boolean | undefined;
649
647
  }[] | undefined;
648
+ image_url?: string | undefined;
649
+ optional?: boolean | undefined;
650
650
  alt_text?: string | undefined;
651
651
  elements?: {
652
652
  type: "plain_text" | "mrkdwn";
@@ -661,23 +661,23 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
661
661
  hint?: unknown;
662
662
  }[] | undefined;
663
663
  }, {
664
- error: string;
665
664
  success: boolean;
665
+ error: string;
666
+ response: string;
667
+ iterations: number;
666
668
  metadata: {
667
669
  verbosityLevel: string;
668
670
  technicalityLevel: string;
669
671
  wordCount: number;
670
672
  blockCount?: number | undefined;
671
673
  };
672
- response: string;
673
- iterations: number;
674
674
  toolCalls?: {
675
675
  tool: string;
676
676
  input?: unknown;
677
677
  output?: unknown;
678
678
  }[] | undefined;
679
679
  blocks?: {
680
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
680
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
681
681
  title?: {
682
682
  type: "plain_text";
683
683
  text: string;
@@ -689,14 +689,14 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
689
689
  emoji?: boolean | undefined;
690
690
  verbatim?: boolean | undefined;
691
691
  } | undefined;
692
- image_url?: string | undefined;
693
- optional?: boolean | undefined;
694
692
  fields?: {
695
693
  type: "plain_text" | "mrkdwn";
696
694
  text: string;
697
695
  emoji?: boolean | undefined;
698
696
  verbatim?: boolean | undefined;
699
697
  }[] | undefined;
698
+ image_url?: string | undefined;
699
+ optional?: boolean | undefined;
700
700
  alt_text?: string | undefined;
701
701
  elements?: {
702
702
  type: "plain_text" | "mrkdwn";
@@ -148,8 +148,8 @@ declare const SlackNotifierResultSchema: z.ZodObject<{
148
148
  originalLength?: number | undefined;
149
149
  }>>;
150
150
  }, "strip", z.ZodTypeAny, {
151
- error: string;
152
151
  success: boolean;
152
+ error: string;
153
153
  messageInfo?: {
154
154
  channelName?: string | undefined;
155
155
  messageTimestamp?: string | undefined;
@@ -163,8 +163,8 @@ declare const SlackNotifierResultSchema: z.ZodObject<{
163
163
  originalLength?: number | undefined;
164
164
  } | undefined;
165
165
  }, {
166
- error: string;
167
166
  success: boolean;
167
+ error: string;
168
168
  messageInfo?: {
169
169
  channelName?: string | undefined;
170
170
  messageTimestamp?: string | undefined;
@@ -344,8 +344,8 @@ export declare class SlackNotifierWorkflowBubble extends WorkflowBubble<SlackNot
344
344
  originalLength?: number | undefined;
345
345
  }>>;
346
346
  }, "strip", z.ZodTypeAny, {
347
- error: string;
348
347
  success: boolean;
348
+ error: string;
349
349
  messageInfo?: {
350
350
  channelName?: string | undefined;
351
351
  messageTimestamp?: string | undefined;
@@ -359,8 +359,8 @@ export declare class SlackNotifierWorkflowBubble extends WorkflowBubble<SlackNot
359
359
  originalLength?: number | undefined;
360
360
  } | undefined;
361
361
  }, {
362
- error: string;
363
362
  success: boolean;
363
+ error: string;
364
364
  messageInfo?: {
365
365
  channelName?: string | undefined;
366
366
  messageTimestamp?: string | undefined;
package/dist/bubbles.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "generatedAt": "2026-01-17T02:02:29.962Z",
4
- "totalCount": 49,
3
+ "generatedAt": "2026-01-19T06:43:08.650Z",
4
+ "totalCount": 50,
5
5
  "bubbles": [
6
6
  {
7
7
  "name": "hello-world",
@@ -20,9 +20,9 @@
20
20
  "type": "service",
21
21
  "shortDescription": "AI agent with LangGraph for tool-enabled conversations, multimodal support, and JSON mode",
22
22
  "useCase": "- Add tools to enhance the AI agent's capabilities (web-search-tool, web-scrape-tool)",
23
- "inputSchema": "{\n message: string // The message or question to send to the AI agent,\n images: { type: \"base64\", data: string // Base64 encoded image data (without data:image/... prefix), mimeType: string // MIME type of the image (e.g., image/png, image/jpeg), description: string | undefined // Optional description or context for the image } | { type: \"url\", url: string // URL to the image (http/https), description: string | undefined // Optional description or context for the image }[] // Array of base64 encoded images to include with the message (for multimodal AI models). Example: [{type: \"base64\", data: \"base64...\", mimeType: \"image/png\", description: \"A beautiful image of a cat\"}] or [{type: \"url\", url: \"https://example.com/image.png\", description: \"A beautiful image of a cat\"}],\n conversationHistory: { role: \"user\" | \"assistant\" | \"tool\" // The role of the message sender, content: string // The message content, toolCallId: string | undefined // Tool call ID for tool messages, name: string | undefined // Tool name for tool messages }[] | undefined // Previous conversation messages for multi-turn conversations. When provided, messages are sent as separate turns to enable KV cache optimization. Format: [{role: \"user\", content: \"...\"}, {role: \"assistant\", content: \"...\"}, ...],\n systemPrompt: string // System prompt that defines the AI agents behavior and personality,\n name: string | undefined // A friendly name for the AI agent,\n model: { model: \"openai/gpt-5\" | \"openai/gpt-5-mini\" | \"openai/gpt-5.1\" | \"openai/gpt-5.2\" | \"google/gemini-2.5-pro\" | \"google/gemini-2.5-flash\" | \"google/gemini-2.5-flash-lite\" | \"google/gemini-2.5-flash-image-preview\" | \"google/gemini-3-pro-preview\" | \"google/gemini-3-pro-image-preview\" | \"google/gemini-3-flash-preview\" | \"anthropic/claude-sonnet-4-5\" | \"anthropic/claude-opus-4-5\" | \"anthropic/claude-haiku-4-5\" | \"openrouter/x-ai/grok-code-fast-1\" | \"openrouter/z-ai/glm-4.6\" | \"openrouter/anthropic/claude-sonnet-4.5\" | \"openrouter/google/gemini-3-pro-preview\" | \"openrouter/morph/morph-v3-large\" | \"openrouter/x-ai/grok-4.1-fast\" | \"openrouter/openai/gpt-oss-120b\" | \"openrouter/deepseek/deepseek-chat-v3.1\" // AI model to use (format: provider/model-name)., temperature: number // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: number | undefined // Maximum number of tokens to generate in response, keep at default of 40000 unless the response is expected to be certain length, reasoningEffort: \"low\" | \"medium\" | \"high\" | undefined // Reasoning effort for model. If not specified, uses primary model reasoningEffort., maxRetries: number // Maximum number of retries for API calls (default: 3). Useful for handling transient errors like 503 Service Unavailable., provider: string[] | undefined // Providers for ai agent (open router only)., jsonMode: boolean // When true, returns clean JSON response, you must provide the exact JSON schema in the system prompt, backupModel: { model: \"openai/gpt-5\" | \"openai/gpt-5-mini\" | \"openai/gpt-5.1\" | \"openai/gpt-5.2\" | \"google/gemini-2.5-pro\" | \"google/gemini-2.5-flash\" | \"google/gemini-2.5-flash-lite\" | \"google/gemini-2.5-flash-image-preview\" | \"google/gemini-3-pro-preview\" | \"google/gemini-3-pro-image-preview\" | \"google/gemini-3-flash-preview\" | \"anthropic/claude-sonnet-4-5\" | \"anthropic/claude-opus-4-5\" | \"anthropic/claude-haiku-4-5\" | \"openrouter/x-ai/grok-code-fast-1\" | \"openrouter/z-ai/glm-4.6\" | \"openrouter/anthropic/claude-sonnet-4.5\" | \"openrouter/google/gemini-3-pro-preview\" | \"openrouter/morph/morph-v3-large\" | \"openrouter/x-ai/grok-4.1-fast\" | \"openrouter/openai/gpt-oss-120b\" | \"openrouter/deepseek/deepseek-chat-v3.1\" // Backup AI model to use if the primary model fails (format: provider/model-name)., temperature: number | undefined // Temperature for backup model. If not specified, uses primary model temperature., maxTokens: number | undefined // Max tokens for backup model. If not specified, uses primary model maxTokens., reasoningEffort: \"low\" | \"medium\" | \"high\" | undefined // Reasoning effort for backup model. If not specified, uses primary model reasoningEffort., maxRetries: number | undefined // Max retries for backup model. If not specified, uses primary model maxRetries. } | undefined // Backup model configuration to use if the primary model fails. } // AI model configuration including provider, temperature, and tokens, retries, and json mode. Always include this.,\n tools: { name: \"web-search-tool\" | \"web-scrape-tool\" | \"web-crawl-tool\" | \"web-extract-tool\" | \"research-agent-tool\" | \"reddit-scrape-tool\" | \"instagram-tool\" | \"list-bubbles-tool\" | \"get-bubble-details-tool\" | \"bubbleflow-validation-tool\" | \"code-edit-tool\" | \"chart-js-tool\" | \"amazon-shopping-tool\" | \"linkedin-tool\" | \"tiktok-tool\" | \"twitter-tool\" | \"google-maps-tool\" | \"youtube-tool\" | \"sql-query-tool\" // Name of the tool type or tool bubble to enable for the AI agent, config: Record<string, unknown> | undefined // Configuration for the tool or tool bubble }[] // Array of pre-registered tools the AI agent can use. Can be tool types (web-search-tool, web-scrape-tool, web-crawl-tool, web-extract-tool, instagram-tool). If using image models, set the tools to [],\n customTools: { name: string // Unique name for your custom tool (e.g., \"calculate-tax\"), description: string // Description of what the tool does - helps the AI know when to use it, schema: unknown // Zod schema object defining the tool parameters. Can be either a plain object (e.g., { amount: z.number() }) or a Zod object directly (e.g., z.object({ amount: z.number() }))., func: unknown // Async function that executes the tool logic. Receives params matching the schema and returns a result. }[] | undefined // Array of custom runtime-defined tools with their own schemas and functions. Use this to add domain-specific tools without pre-registration. Example: [{ name: \"calculate-tax\", description: \"Calculates sales tax\", schema: { amount: z.number() }, func: async (input) => {...} }],\n maxIterations: number // Maximum number of iterations for the agent workflow, 5 iterations per turn of conversation,\n credentials: Record<string, string> | undefined // Object mapping credential types to values (injected at runtime),\n streaming: boolean // Enable real-time streaming of tokens, tool calls, and iteration progress,\n expectedOutputSchema: unknown | undefined // Zod schema or JSON schema string that defines the expected structure of the AI response. When provided, automatically enables JSON mode and instructs the AI to output in the exact format. Example: z.object({ summary: z.string(), items: z.array(z.object({ name: z.string(), score: z.number() })) })\n}",
23
+ "inputSchema": "{\n message: string // The message or question to send to the AI agent,\n images: { type: \"base64\", data: string // Base64 encoded image data (without data:image/... prefix), mimeType: string // MIME type of the image (e.g., image/png, image/jpeg), description: string | undefined // Optional description or context for the image } | { type: \"url\", url: string // URL to the image (http/https), description: string | undefined // Optional description or context for the image }[] // Array of base64 encoded images to include with the message (for multimodal AI models). Example: [{type: \"base64\", data: \"base64...\", mimeType: \"image/png\", description: \"A beautiful image of a cat\"}] or [{type: \"url\", url: \"https://example.com/image.png\", description: \"A beautiful image of a cat\"}],\n conversationHistory: { role: \"user\" | \"assistant\" | \"tool\" // The role of the message sender, content: string // The message content, toolCallId: string | undefined // Tool call ID for tool messages, name: string | undefined // Tool name for tool messages }[] | undefined // Previous conversation messages for multi-turn conversations. When provided, messages are sent as separate turns to enable KV cache optimization. Format: [{role: \"user\", content: \"...\"}, {role: \"assistant\", content: \"...\"}, ...],\n systemPrompt: string // System prompt that defines the AI agents behavior and personality,\n name: string | undefined // A friendly name for the AI agent,\n model: { model: \"openai/gpt-5\" | \"openai/gpt-5-mini\" | \"openai/gpt-5.1\" | \"openai/gpt-5.2\" | \"google/gemini-2.5-pro\" | \"google/gemini-2.5-flash\" | \"google/gemini-2.5-flash-lite\" | \"google/gemini-2.5-flash-image-preview\" | \"google/gemini-3-pro-preview\" | \"google/gemini-3-pro-image-preview\" | \"google/gemini-3-flash-preview\" | \"anthropic/claude-sonnet-4-5\" | \"anthropic/claude-opus-4-5\" | \"anthropic/claude-haiku-4-5\" | \"openrouter/x-ai/grok-code-fast-1\" | \"openrouter/z-ai/glm-4.6\" | \"openrouter/anthropic/claude-sonnet-4.5\" | \"openrouter/google/gemini-3-pro-preview\" | \"openrouter/morph/morph-v3-large\" | \"openrouter/x-ai/grok-4.1-fast\" | \"openrouter/openai/gpt-oss-120b\" | \"openrouter/deepseek/deepseek-chat-v3.1\" // AI model to use (format: provider/model-name)., temperature: number // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: number | undefined // Maximum number of tokens to generate in response, keep at default of 40000 unless the response is expected to be certain length, reasoningEffort: \"low\" | \"medium\" | \"high\" | undefined // Reasoning effort for model. If not specified, uses primary model reasoningEffort., maxRetries: number // Maximum number of retries for API calls (default: 3). Useful for handling transient errors like 503 Service Unavailable., provider: string[] | undefined // Providers for ai agent (open router only)., jsonMode: boolean // When true, returns clean JSON response, you must provide the exact JSON schema in the system prompt, backupModel: { model: \"openai/gpt-5\" | \"openai/gpt-5-mini\" | \"openai/gpt-5.1\" | \"openai/gpt-5.2\" | \"google/gemini-2.5-pro\" | \"google/gemini-2.5-flash\" | \"google/gemini-2.5-flash-lite\" | \"google/gemini-2.5-flash-image-preview\" | \"google/gemini-3-pro-preview\" | \"google/gemini-3-pro-image-preview\" | \"google/gemini-3-flash-preview\" | \"anthropic/claude-sonnet-4-5\" | \"anthropic/claude-opus-4-5\" | \"anthropic/claude-haiku-4-5\" | \"openrouter/x-ai/grok-code-fast-1\" | \"openrouter/z-ai/glm-4.6\" | \"openrouter/anthropic/claude-sonnet-4.5\" | \"openrouter/google/gemini-3-pro-preview\" | \"openrouter/morph/morph-v3-large\" | \"openrouter/x-ai/grok-4.1-fast\" | \"openrouter/openai/gpt-oss-120b\" | \"openrouter/deepseek/deepseek-chat-v3.1\" // Backup AI model to use if the primary model fails (format: provider/model-name)., temperature: number | undefined // Temperature for backup model. If not specified, uses primary model temperature., maxTokens: number | undefined // Max tokens for backup model. If not specified, uses primary model maxTokens., reasoningEffort: \"low\" | \"medium\" | \"high\" | undefined // Reasoning effort for backup model. If not specified, uses primary model reasoningEffort., maxRetries: number | undefined // Max retries for backup model. If not specified, uses primary model maxRetries. } | undefined // Backup model configuration to use if the primary model fails. } // AI model configuration including provider, temperature, and tokens, retries, and json mode. Always include this.,\n tools: { name: \"web-search-tool\" | \"web-scrape-tool\" | \"web-crawl-tool\" | \"web-extract-tool\" | \"research-agent-tool\" | \"reddit-scrape-tool\" | \"instagram-tool\" | \"list-bubbles-tool\" | \"get-bubble-details-tool\" | \"get-trigger-detail-tool\" | \"bubbleflow-validation-tool\" | \"code-edit-tool\" | \"chart-js-tool\" | \"amazon-shopping-tool\" | \"linkedin-tool\" | \"tiktok-tool\" | \"twitter-tool\" | \"google-maps-tool\" | \"youtube-tool\" | \"sql-query-tool\" // Name of the tool type or tool bubble to enable for the AI agent, config: Record<string, unknown> | undefined // Configuration for the tool or tool bubble }[] // Array of pre-registered tools the AI agent can use. Can be tool types (web-search-tool, web-scrape-tool, web-crawl-tool, web-extract-tool, instagram-tool). If using image models, set the tools to [],\n customTools: { name: string // Unique name for your custom tool (e.g., \"calculate-tax\"), description: string // Description of what the tool does - helps the AI know when to use it, schema: unknown // Zod schema object defining the tool parameters. Can be either a plain object (e.g., { amount: z.number() }) or a Zod object directly (e.g., z.object({ amount: z.number() }))., func: unknown // Async function that executes the tool logic. Receives params matching the schema and returns a result. }[] | undefined // Array of custom runtime-defined tools with their own schemas and functions. Use this to add domain-specific tools without pre-registration. Example: [{ name: \"calculate-tax\", description: \"Calculates sales tax\", schema: { amount: z.number() }, func: async (input) => {...} }],\n maxIterations: number // Maximum number of iterations for the agent workflow, 5 iterations per turn of conversation,\n credentials: Record<string, string> | undefined // Object mapping credential types to values (injected at runtime),\n streaming: boolean // Enable real-time streaming of tokens, tool calls, and iteration progress,\n expectedOutputSchema: unknown | undefined // Zod schema or JSON schema string that defines the expected structure of the AI response. When provided, automatically enables JSON mode and instructs the AI to output in the exact format. Example: z.object({ summary: z.string(), items: z.array(z.object({ name: z.string(), score: z.number() })) })\n}",
24
24
  "outputSchema": "{\n response: string // The AI agents final response to the user message. For text responses, returns plain text. If JSON mode is enabled, returns a JSON string. For image generation models (like gemini-2.5-flash-image-preview), returns base64-encoded image data with data URI format (data:image/png;base64,...),\n toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] // Array of tool calls made during the conversation,\n iterations: number // Number of back-and-forth iterations in the agent workflow,\n error: string // Error message of the run, undefined if successful,\n success: boolean // Whether the agent execution completed successfully\n}",
25
- "usageExample": "// Example usage of ai-agent bubble\nconst aiAgent = new AIAgentBubble({\n message: \"example string\", // The message or question to send to the AI agent,\n images: [{ type: \"base64\" // default, data: \"example string\", mimeType: \"image/png\" // default, description: \"example string\" }] // example for array, // Array of base64 encoded images to include with the message (for multimodal AI models). Example: [{type: \"base64\", data: \"base64...\", mimeType: \"image/png\", description: \"A beautiful image of a cat\"}] or [{type: \"url\", url: \"https://example.com/image.png\", description: \"A beautiful image of a cat\"}],\n conversationHistory: [{ role: \"user\" // options: \"user\", \"assistant\", \"tool\" // The role of the message sender, content: \"example string\" // The message content, toolCallId: \"example string\" // Tool call ID for tool messages, name: \"example string\" // Tool name for tool messages }], // Previous conversation messages for multi-turn conversations. When provided, messages are sent as separate turns to enable KV cache optimization. Format: [{role: \"user\", content: \"...\"}, {role: \"assistant\", content: \"...\"}, ...],\n systemPrompt: \"You are a helpful AI assistant\" // default, // System prompt that defines the AI agents behavior and personality,\n name: \"AI Agent\" // default, // A friendly name for the AI agent,\n model: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/x-ai/grok-4.1-fast\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/deepseek/deepseek-chat-v3.1\" // AI model to use (format: provider/model-name)., temperature: 1 // default // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: 64000 // default // Maximum number of tokens to generate in response, keep at default of 40000 unless the response is expected to be certain length, reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for model. If not specified, uses primary model reasoningEffort., maxRetries: 3 // default // Maximum number of retries for API calls (default: 3). Useful for handling transient errors like 503 Service Unavailable., provider: [\"example string\"] // Providers for ai agent (open router only)., jsonMode: false // default // When true, returns clean JSON response, you must provide the exact JSON schema in the system prompt, backupModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/x-ai/grok-4.1-fast\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/deepseek/deepseek-chat-v3.1\" // Backup AI model to use if the primary model fails (format: provider/model-name)., temperature: 42 // Temperature for backup model. If not specified, uses primary model temperature., maxTokens: 42 // Max tokens for backup model. If not specified, uses primary model maxTokens., reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for backup model. If not specified, uses primary model reasoningEffort., maxRetries: 42 // Max retries for backup model. If not specified, uses primary model maxRetries. } // structure // Backup model configuration to use if the primary model fails. } // structure, // AI model configuration including provider, temperature, and tokens, retries, and json mode. Always include this.,\n tools: [{ name: \"web-search-tool\" // options: \"web-search-tool\", \"web-scrape-tool\", \"web-crawl-tool\", \"web-extract-tool\", \"research-agent-tool\", \"reddit-scrape-tool\", \"instagram-tool\", \"list-bubbles-tool\", \"get-bubble-details-tool\", \"bubbleflow-validation-tool\", \"code-edit-tool\", \"chart-js-tool\", \"amazon-shopping-tool\", \"linkedin-tool\", \"tiktok-tool\", \"twitter-tool\", \"google-maps-tool\", \"youtube-tool\", \"sql-query-tool\" // Name of the tool type or tool bubble to enable for the AI agent, config: {} // Configuration for the tool or tool bubble }] // example for array, // Array of pre-registered tools the AI agent can use. Can be tool types (web-search-tool, web-scrape-tool, web-crawl-tool, web-extract-tool, instagram-tool). If using image models, set the tools to [],\n customTools: [{ name: \"example string\" // Unique name for your custom tool (e.g., \"calculate-tax\"), description: \"example string\" // Description of what the tool does - helps the AI know when to use it, schema: {} // Zod schema object defining the tool parameters. Can be either a plain object (e.g., { amount: z.number() }) or a Zod object directly (e.g., z.object({ amount: z.number() })). }] // example for array, // Array of custom runtime-defined tools with their own schemas and functions. Use this to add domain-specific tools without pre-registration. Example: [{ name: \"calculate-tax\", description: \"Calculates sales tax\", schema: { amount: z.number() }, func: async (input) => {...} }],\n maxIterations: 40 // default, // Maximum number of iterations for the agent workflow, 5 iterations per turn of conversation,\n streaming: false // default, // Enable real-time streaming of tokens, tool calls, and iteration progress,\n expectedOutputSchema: \"example string\", // Zod schema or JSON schema string that defines the expected structure of the AI response. When provided, automatically enables JSON mode and instructs the AI to output in the exact format. Example: z.object({ summary: z.string(), items: z.array(z.object({ name: z.string(), score: z.number() })) }),\n});\n\nconst result = await aiAgent.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// response: string // The AI agents final response to the user message. For text responses, returns plain text. If JSON mode is enabled, returns a JSON string. For image generation models (like gemini-2.5-flash-image-preview), returns base64-encoded image data with data URI format (data:image/png;base64,...),\n// toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] // Array of tool calls made during the conversation,\n// iterations: number // Number of back-and-forth iterations in the agent workflow,\n// error: string // Error message of the run, undefined if successful,\n// success: boolean // Whether the agent execution completed successfully\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
25
+ "usageExample": "// Example usage of ai-agent bubble\nconst aiAgent = new AIAgentBubble({\n message: \"example string\", // The message or question to send to the AI agent,\n images: [{ type: \"base64\" // default, data: \"example string\", mimeType: \"image/png\" // default, description: \"example string\" }] // example for array, // Array of base64 encoded images to include with the message (for multimodal AI models). Example: [{type: \"base64\", data: \"base64...\", mimeType: \"image/png\", description: \"A beautiful image of a cat\"}] or [{type: \"url\", url: \"https://example.com/image.png\", description: \"A beautiful image of a cat\"}],\n conversationHistory: [{ role: \"user\" // options: \"user\", \"assistant\", \"tool\" // The role of the message sender, content: \"example string\" // The message content, toolCallId: \"example string\" // Tool call ID for tool messages, name: \"example string\" // Tool name for tool messages }], // Previous conversation messages for multi-turn conversations. When provided, messages are sent as separate turns to enable KV cache optimization. Format: [{role: \"user\", content: \"...\"}, {role: \"assistant\", content: \"...\"}, ...],\n systemPrompt: \"You are a helpful AI assistant\" // default, // System prompt that defines the AI agents behavior and personality,\n name: \"AI Agent\" // default, // A friendly name for the AI agent,\n model: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/x-ai/grok-4.1-fast\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/deepseek/deepseek-chat-v3.1\" // AI model to use (format: provider/model-name)., temperature: 1 // default // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: 64000 // default // Maximum number of tokens to generate in response, keep at default of 40000 unless the response is expected to be certain length, reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for model. If not specified, uses primary model reasoningEffort., maxRetries: 3 // default // Maximum number of retries for API calls (default: 3). Useful for handling transient errors like 503 Service Unavailable., provider: [\"example string\"] // Providers for ai agent (open router only)., jsonMode: false // default // When true, returns clean JSON response, you must provide the exact JSON schema in the system prompt, backupModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/x-ai/grok-4.1-fast\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/deepseek/deepseek-chat-v3.1\" // Backup AI model to use if the primary model fails (format: provider/model-name)., temperature: 42 // Temperature for backup model. If not specified, uses primary model temperature., maxTokens: 42 // Max tokens for backup model. If not specified, uses primary model maxTokens., reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for backup model. If not specified, uses primary model reasoningEffort., maxRetries: 42 // Max retries for backup model. If not specified, uses primary model maxRetries. } // structure // Backup model configuration to use if the primary model fails. } // structure, // AI model configuration including provider, temperature, and tokens, retries, and json mode. Always include this.,\n tools: [{ name: \"web-search-tool\" // options: \"web-search-tool\", \"web-scrape-tool\", \"web-crawl-tool\", \"web-extract-tool\", \"research-agent-tool\", \"reddit-scrape-tool\", \"instagram-tool\", \"list-bubbles-tool\", \"get-bubble-details-tool\", \"get-trigger-detail-tool\", \"bubbleflow-validation-tool\", \"code-edit-tool\", \"chart-js-tool\", \"amazon-shopping-tool\", \"linkedin-tool\", \"tiktok-tool\", \"twitter-tool\", \"google-maps-tool\", \"youtube-tool\", \"sql-query-tool\" // Name of the tool type or tool bubble to enable for the AI agent, config: {} // Configuration for the tool or tool bubble }] // example for array, // Array of pre-registered tools the AI agent can use. Can be tool types (web-search-tool, web-scrape-tool, web-crawl-tool, web-extract-tool, instagram-tool). If using image models, set the tools to [],\n customTools: [{ name: \"example string\" // Unique name for your custom tool (e.g., \"calculate-tax\"), description: \"example string\" // Description of what the tool does - helps the AI know when to use it, schema: {} // Zod schema object defining the tool parameters. Can be either a plain object (e.g., { amount: z.number() }) or a Zod object directly (e.g., z.object({ amount: z.number() })). }] // example for array, // Array of custom runtime-defined tools with their own schemas and functions. Use this to add domain-specific tools without pre-registration. Example: [{ name: \"calculate-tax\", description: \"Calculates sales tax\", schema: { amount: z.number() }, func: async (input) => {...} }],\n maxIterations: 40 // default, // Maximum number of iterations for the agent workflow, 5 iterations per turn of conversation,\n streaming: false // default, // Enable real-time streaming of tokens, tool calls, and iteration progress,\n expectedOutputSchema: \"example string\", // Zod schema or JSON schema string that defines the expected structure of the AI response. When provided, automatically enables JSON mode and instructs the AI to output in the exact format. Example: z.object({ summary: z.string(), items: z.array(z.object({ name: z.string(), score: z.number() })) }),\n});\n\nconst result = await aiAgent.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// response: string // The AI agents final response to the user message. For text responses, returns plain text. If JSON mode is enabled, returns a JSON string. For image generation models (like gemini-2.5-flash-image-preview), returns base64-encoded image data with data URI format (data:image/png;base64,...),\n// toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] // Array of tool calls made during the conversation,\n// iterations: number // Number of back-and-forth iterations in the agent workflow,\n// error: string // Error message of the run, undefined if successful,\n// success: boolean // Whether the agent execution completed successfully\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
26
26
  "requiredCredentials": [
27
27
  "OPENAI_CRED",
28
28
  "GOOGLE_GEMINI_CRED",
@@ -354,6 +354,17 @@
354
354
  "usageExample": "// Example usage of get-bubble-details-tool bubble\nconst getBubbleDetailsTool = new GetBubbleDetailsTool({\n bubbleName: \"example string\", // The name of the bubble to get details about,\n includeInputSchema: false // default, // Include input parameter schema in the response,\n});\n\nconst result = await getBubbleDetailsTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// name: string // Name of the bubble,\n// alias: string | undefined // Short alias for the bubble,\n// inputSchema: string | undefined // String representation of the input parameter schema types,\n// outputSchema: string // String representation of the output schema types,\n// usageExample: string // Code example showing how to use the bubble,\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
355
355
  "requiredCredentials": []
356
356
  },
357
+ {
358
+ "name": "get-trigger-detail-tool",
359
+ "alias": "trigger",
360
+ "type": "tool",
361
+ "shortDescription": "Provides detailed information about BubbleFlow trigger types including setup guides and payload schemas",
362
+ "useCase": "- Understanding how to configure a specific trigger (Slack, Cron, Webhook)",
363
+ "inputSchema": "{\n triggerType: string | undefined // The trigger type to get details about (e.g., 'slack/bot_mentioned', 'webhook/http'). If not provided, returns a list of all available triggers.,\n credentials: Record<string, string> | undefined // Object mapping credential types to values (injected at runtime)\n}",
364
+ "outputSchema": "{\n triggerType: string | undefined // The requested trigger type,\n serviceName: string | undefined // Service name for logo lookup (e.g., Slack, Cron),\n friendlyName: string | undefined // Human-friendly trigger name,\n description: string | undefined // Description of what this trigger does,\n setupGuide: string | undefined // Markdown setup guide for configuring this trigger,\n payloadSchema: string | undefined // JSON Schema string for the payload,\n payloadTypeInterface: string | undefined // TypeScript interface name to use for the payload (e.g., SlackMentionEvent),\n availableTriggers: { type: string, friendlyName: string, description: string }[] | undefined // List of all available triggers (when no specific trigger requested),\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
365
+ "usageExample": "// Example usage of get-trigger-detail-tool bubble\nconst getTriggerDetailTool = new GetTriggerDetailTool({\n triggerType: \"example string\", // The trigger type to get details about (e.g., 'slack/bot_mentioned', 'webhook/http'). If not provided, returns a list of all available triggers.,\n});\n\nconst result = await getTriggerDetailTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// triggerType: string | undefined // The requested trigger type,\n// serviceName: string | undefined // Service name for logo lookup (e.g., Slack, Cron),\n// friendlyName: string | undefined // Human-friendly trigger name,\n// description: string | undefined // Description of what this trigger does,\n// setupGuide: string | undefined // Markdown setup guide for configuring this trigger,\n// payloadSchema: string | undefined // JSON Schema string for the payload,\n// payloadTypeInterface: string | undefined // TypeScript interface name to use for the payload (e.g., SlackMentionEvent),\n// availableTriggers: { type: string, friendlyName: string, description: string }[] | undefined // List of all available triggers (when no specific trigger requested),\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
366
+ "requiredCredentials": []
367
+ },
357
368
  {
358
369
  "name": "list-bubbles-tool",
359
370
  "alias": "list",
@@ -464,6 +475,9 @@
464
475
  "requiredCredentials": [
465
476
  "FIRECRAWL_API_KEY",
466
477
  "GOOGLE_GEMINI_CRED",
478
+ "OPENAI_CRED",
479
+ "ANTHROPIC_CRED",
480
+ "OPENROUTER_CRED",
467
481
  "APIFY_CRED"
468
482
  ]
469
483
  },
package/dist/index.d.ts CHANGED
@@ -53,6 +53,7 @@ export { GenerateDocumentWorkflow } from './bubbles/workflow-bubble/generate-doc
53
53
  export { ParseDocumentWorkflow } from './bubbles/workflow-bubble/parse-document.workflow.js';
54
54
  export { ListBubblesTool } from './bubbles/tool-bubble/list-bubbles-tool.js';
55
55
  export { GetBubbleDetailsTool } from './bubbles/tool-bubble/get-bubble-details-tool.js';
56
+ export { GetTriggerDetailTool } from './bubbles/tool-bubble/get-trigger-detail-tool.js';
56
57
  export { SQLQueryTool } from './bubbles/tool-bubble/sql-query-tool.js';
57
58
  export { BubbleFlowValidationTool } from './bubbles/tool-bubble/bubbleflow-validation-tool.js';
58
59
  export { EditBubbleFlowTool } from './bubbles/tool-bubble/code-edit-tool.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -48,6 +48,7 @@ export { ParseDocumentWorkflow } from './bubbles/workflow-bubble/parse-document.
48
48
  // Export tool bubbles
49
49
  export { ListBubblesTool } from './bubbles/tool-bubble/list-bubbles-tool.js';
50
50
  export { GetBubbleDetailsTool } from './bubbles/tool-bubble/get-bubble-details-tool.js';
51
+ export { GetTriggerDetailTool } from './bubbles/tool-bubble/get-trigger-detail-tool.js';
51
52
  export { SQLQueryTool } from './bubbles/tool-bubble/sql-query-tool.js';
52
53
  export { BubbleFlowValidationTool } from './bubbles/tool-bubble/bubbleflow-validation-tool.js';
53
54
  export { EditBubbleFlowTool } from './bubbles/tool-bubble/code-edit-tool.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { z } from 'zod';
2
- export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "get-bubble-details-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "sql-query-tool"]>;
2
+ export declare const AvailableTools: z.ZodEnum<["web-search-tool", "web-scrape-tool", "web-crawl-tool", "web-extract-tool", "research-agent-tool", "reddit-scrape-tool", "instagram-tool", "list-bubbles-tool", "get-bubble-details-tool", "get-trigger-detail-tool", "bubbleflow-validation-tool", "code-edit-tool", "chart-js-tool", "amazon-shopping-tool", "linkedin-tool", "tiktok-tool", "twitter-tool", "google-maps-tool", "youtube-tool", "sql-query-tool"]>;
3
3
  export type AvailableTool = z.infer<typeof AvailableTools>;
4
4
  //# sourceMappingURL=available-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"available-tools.d.ts","sourceRoot":"","sources":["../../src/types/available-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc,uYAuBgB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"available-tools.d.ts","sourceRoot":"","sources":["../../src/types/available-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc,kaAwBgB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -14,6 +14,7 @@ export const AvailableTools = z.enum([
14
14
  // Existing bubble tools (for reference - these are handled by bubble names)
15
15
  'list-bubbles-tool',
16
16
  'get-bubble-details-tool',
17
+ 'get-trigger-detail-tool',
17
18
  'bubbleflow-validation-tool',
18
19
  'code-edit-tool',
19
20
  'chart-js-tool',
@@ -1 +1 @@
1
- {"version":3,"file":"available-tools.js","sourceRoot":"","sources":["../../src/types/available-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,4DAA4D;AAC5D,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,gBAAgB;IAChB,4EAA4E;IAC5E,mBAAmB;IACnB,yBAAyB;IACzB,4BAA4B;IAC5B,gBAAgB;IAChB,eAAe;IACf,sBAAsB;IACtB,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,gBAAgB;CACwB,CAAC,CAAC"}
1
+ {"version":3,"file":"available-tools.js","sourceRoot":"","sources":["../../src/types/available-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,4DAA4D;AAC5D,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,gBAAgB;IAChB,4EAA4E;IAC5E,mBAAmB;IACnB,yBAAyB;IACzB,yBAAyB;IACzB,4BAA4B;IAC5B,gBAAgB;IAChB,eAAe;IACf,sBAAsB;IACtB,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,cAAc;IACd,gBAAgB;CACwB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubblelab/bubble-core",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -41,7 +41,7 @@
41
41
  "resend": "^4.8.0",
42
42
  "zod": "^3.24.1",
43
43
  "zod-to-json-schema": "^3.24.6",
44
- "@bubblelab/shared-schemas": "0.1.12"
44
+ "@bubblelab/shared-schemas": "0.1.15"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^20.12.12",