@bubblelab/bubble-core 0.1.76 → 0.1.78

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 (48) hide show
  1. package/dist/bubble-bundle.d.ts +73 -72
  2. package/dist/bubbles/service-bubble/ai-agent.d.ts +38 -38
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  4. package/dist/bubbles/service-bubble/ai-agent.js +1 -0
  5. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  6. package/dist/bubbles/service-bubble/airtable.d.ts +92 -92
  7. package/dist/bubbles/service-bubble/apify/apify.d.ts +10 -10
  8. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +2 -2
  9. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
  10. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +4 -4
  11. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +8 -8
  12. package/dist/bubbles/service-bubble/firecrawl.d.ts +242 -242
  13. package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
  14. package/dist/bubbles/service-bubble/github.d.ts +40 -40
  15. package/dist/bubbles/service-bubble/gmail.d.ts +124 -124
  16. package/dist/bubbles/service-bubble/http.d.ts +8 -8
  17. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  18. package/dist/bubbles/service-bubble/jira/jira.d.ts +8 -8
  19. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +10 -10
  20. package/dist/bubbles/service-bubble/notion/notion.d.ts +453 -453
  21. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  22. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  23. package/dist/bubbles/service-bubble/slack/slack.d.ts +295 -295
  24. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +4 -4
  25. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +4 -4
  26. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +2 -2
  27. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +2 -2
  28. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +8 -8
  29. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +12 -12
  30. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +8 -8
  31. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +52 -52
  32. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +8 -8
  33. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  34. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  35. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +8 -8
  36. package/dist/bubbles/tool-bubble/tool-template.d.ts +8 -8
  37. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +36 -36
  38. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +4 -4
  39. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
  40. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
  41. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +10 -10
  42. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +8 -8
  43. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +8 -8
  44. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +30 -30
  45. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +18 -18
  46. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +118 -118
  47. package/dist/bubbles.json +4 -3
  48. package/package.json +2 -2
@@ -41,6 +41,11 @@ declare const SlackFormatterAgentParamsSchema: z.ZodObject<{
41
41
  additionalContext: z.ZodOptional<z.ZodString>;
42
42
  }, "strip", z.ZodTypeAny, {
43
43
  message: string;
44
+ verbosity: "1" | "2" | "3" | "4" | "5";
45
+ technicality: "1" | "2" | "3" | "4" | "5";
46
+ includeBlockKit: boolean;
47
+ includeQuery: boolean;
48
+ includeExplanation: boolean;
44
49
  model: {
45
50
  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/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research";
46
51
  temperature: number;
@@ -52,32 +57,27 @@ declare const SlackFormatterAgentParamsSchema: z.ZodObject<{
52
57
  config?: Record<string, unknown> | undefined;
53
58
  }[];
54
59
  maxIterations: number;
55
- verbosity: "1" | "2" | "3" | "4" | "5";
56
- technicality: "1" | "2" | "3" | "4" | "5";
57
- includeBlockKit: boolean;
58
- includeQuery: boolean;
59
- includeExplanation: boolean;
60
60
  credentials?: Partial<Record<CredentialType, string>> | undefined;
61
61
  additionalContext?: string | undefined;
62
62
  }, {
63
63
  message: string;
64
- credentials?: Partial<Record<CredentialType, string>> | undefined;
64
+ verbosity?: "1" | "2" | "3" | "4" | "5" | undefined;
65
+ technicality?: "1" | "2" | "3" | "4" | "5" | undefined;
66
+ includeBlockKit?: boolean | undefined;
67
+ includeQuery?: boolean | undefined;
68
+ includeExplanation?: boolean | undefined;
65
69
  model?: {
66
70
  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/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined;
67
71
  temperature?: number | undefined;
68
72
  maxTokens?: number | undefined;
69
73
  } | undefined;
74
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
70
75
  tools?: {
71
76
  name: string;
72
77
  credentials?: Partial<Record<CredentialType, string>> | undefined;
73
78
  config?: Record<string, unknown> | undefined;
74
79
  }[] | undefined;
75
80
  maxIterations?: number | undefined;
76
- verbosity?: "1" | "2" | "3" | "4" | "5" | undefined;
77
- technicality?: "1" | "2" | "3" | "4" | "5" | undefined;
78
- includeBlockKit?: boolean | undefined;
79
- includeQuery?: boolean | undefined;
80
- includeExplanation?: boolean | undefined;
81
81
  additionalContext?: string | undefined;
82
82
  }>;
83
83
  declare const SlackFormatterAgentResultSchema: z.ZodObject<{
@@ -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: "section" | "header" | "divider" | "context" | "actions" | "input" | "file" | "image";
158
158
  title?: {
159
159
  type: "plain_text";
160
160
  text: string;
@@ -166,28 +166,28 @@ 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;
169
+ block_id?: string | undefined;
170
+ accessory?: unknown;
171
171
  fields?: {
172
172
  type: "plain_text" | "mrkdwn";
173
173
  text: string;
174
174
  emoji?: boolean | undefined;
175
175
  verbatim?: boolean | undefined;
176
176
  }[] | undefined;
177
+ element?: unknown;
178
+ label?: unknown;
179
+ hint?: unknown;
180
+ optional?: boolean | undefined;
177
181
  alt_text?: string | undefined;
182
+ image_url?: string | undefined;
178
183
  elements?: {
179
184
  type: "plain_text" | "mrkdwn";
180
185
  text: string;
181
186
  emoji?: boolean | undefined;
182
187
  verbatim?: boolean | undefined;
183
188
  }[] | undefined;
184
- block_id?: string | undefined;
185
- accessory?: unknown;
186
- element?: unknown;
187
- label?: unknown;
188
- hint?: unknown;
189
189
  }, {
190
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
190
+ type: "section" | "header" | "divider" | "context" | "actions" | "input" | "file" | "image";
191
191
  title?: {
192
192
  type: "plain_text";
193
193
  text: string;
@@ -199,26 +199,26 @@ 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;
202
+ block_id?: string | undefined;
203
+ accessory?: unknown;
204
204
  fields?: {
205
205
  type: "plain_text" | "mrkdwn";
206
206
  text: string;
207
207
  emoji?: boolean | undefined;
208
208
  verbatim?: boolean | undefined;
209
209
  }[] | undefined;
210
+ element?: unknown;
211
+ label?: unknown;
212
+ hint?: unknown;
213
+ optional?: boolean | undefined;
210
214
  alt_text?: string | undefined;
215
+ image_url?: string | undefined;
211
216
  elements?: {
212
217
  type: "plain_text" | "mrkdwn";
213
218
  text: string;
214
219
  emoji?: boolean | undefined;
215
220
  verbatim?: boolean | undefined;
216
221
  }[] | undefined;
217
- block_id?: string | undefined;
218
- accessory?: unknown;
219
- element?: unknown;
220
- label?: unknown;
221
- hint?: unknown;
222
222
  }>, "many">>;
223
223
  metadata: z.ZodObject<{
224
224
  verbosityLevel: z.ZodString;
@@ -253,23 +253,18 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
253
253
  error: z.ZodString;
254
254
  success: z.ZodBoolean;
255
255
  }, "strip", z.ZodTypeAny, {
256
- error: string;
257
- success: boolean;
256
+ response: string;
258
257
  metadata: {
259
258
  verbosityLevel: string;
260
259
  technicalityLevel: string;
261
260
  wordCount: number;
262
261
  blockCount?: number | undefined;
263
262
  };
264
- response: string;
265
263
  iterations: number;
266
- toolCalls?: {
267
- tool: string;
268
- input?: unknown;
269
- output?: unknown;
270
- }[] | undefined;
264
+ error: string;
265
+ success: boolean;
271
266
  blocks?: {
272
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
267
+ type: "section" | "header" | "divider" | "context" | "actions" | "input" | "file" | "image";
273
268
  title?: {
274
269
  type: "plain_text";
275
270
  text: string;
@@ -281,45 +276,45 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
281
276
  emoji?: boolean | undefined;
282
277
  verbatim?: boolean | undefined;
283
278
  } | undefined;
284
- image_url?: string | undefined;
285
- optional?: boolean | undefined;
279
+ block_id?: string | undefined;
280
+ accessory?: unknown;
286
281
  fields?: {
287
282
  type: "plain_text" | "mrkdwn";
288
283
  text: string;
289
284
  emoji?: boolean | undefined;
290
285
  verbatim?: boolean | undefined;
291
286
  }[] | undefined;
287
+ element?: unknown;
288
+ label?: unknown;
289
+ hint?: unknown;
290
+ optional?: boolean | undefined;
292
291
  alt_text?: string | undefined;
292
+ image_url?: string | undefined;
293
293
  elements?: {
294
294
  type: "plain_text" | "mrkdwn";
295
295
  text: string;
296
296
  emoji?: boolean | undefined;
297
297
  verbatim?: boolean | undefined;
298
298
  }[] | undefined;
299
- block_id?: string | undefined;
300
- accessory?: unknown;
301
- element?: unknown;
302
- label?: unknown;
303
- hint?: unknown;
299
+ }[] | undefined;
300
+ toolCalls?: {
301
+ tool: string;
302
+ input?: unknown;
303
+ output?: unknown;
304
304
  }[] | undefined;
305
305
  }, {
306
- error: string;
307
- success: boolean;
306
+ response: string;
308
307
  metadata: {
309
308
  verbosityLevel: string;
310
309
  technicalityLevel: string;
311
310
  wordCount: number;
312
311
  blockCount?: number | undefined;
313
312
  };
314
- response: string;
315
313
  iterations: number;
316
- toolCalls?: {
317
- tool: string;
318
- input?: unknown;
319
- output?: unknown;
320
- }[] | undefined;
314
+ error: string;
315
+ success: boolean;
321
316
  blocks?: {
322
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
317
+ type: "section" | "header" | "divider" | "context" | "actions" | "input" | "file" | "image";
323
318
  title?: {
324
319
  type: "plain_text";
325
320
  text: string;
@@ -331,26 +326,31 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
331
326
  emoji?: boolean | undefined;
332
327
  verbatim?: boolean | undefined;
333
328
  } | undefined;
334
- image_url?: string | undefined;
335
- optional?: boolean | undefined;
329
+ block_id?: string | undefined;
330
+ accessory?: unknown;
336
331
  fields?: {
337
332
  type: "plain_text" | "mrkdwn";
338
333
  text: string;
339
334
  emoji?: boolean | undefined;
340
335
  verbatim?: boolean | undefined;
341
336
  }[] | undefined;
337
+ element?: unknown;
338
+ label?: unknown;
339
+ hint?: unknown;
340
+ optional?: boolean | undefined;
342
341
  alt_text?: string | undefined;
342
+ image_url?: string | undefined;
343
343
  elements?: {
344
344
  type: "plain_text" | "mrkdwn";
345
345
  text: string;
346
346
  emoji?: boolean | undefined;
347
347
  verbatim?: boolean | undefined;
348
348
  }[] | undefined;
349
- block_id?: string | undefined;
350
- accessory?: unknown;
351
- element?: unknown;
352
- label?: unknown;
353
- hint?: unknown;
349
+ }[] | undefined;
350
+ toolCalls?: {
351
+ tool: string;
352
+ input?: unknown;
353
+ output?: unknown;
354
354
  }[] | undefined;
355
355
  }>;
356
356
  type SlackFormatterAgentParams = z.input<typeof SlackFormatterAgentParamsSchema>;
@@ -399,6 +399,11 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
399
399
  additionalContext: z.ZodOptional<z.ZodString>;
400
400
  }, "strip", z.ZodTypeAny, {
401
401
  message: string;
402
+ verbosity: "1" | "2" | "3" | "4" | "5";
403
+ technicality: "1" | "2" | "3" | "4" | "5";
404
+ includeBlockKit: boolean;
405
+ includeQuery: boolean;
406
+ includeExplanation: boolean;
402
407
  model: {
403
408
  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/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research";
404
409
  temperature: number;
@@ -410,32 +415,27 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
410
415
  config?: Record<string, unknown> | undefined;
411
416
  }[];
412
417
  maxIterations: number;
413
- verbosity: "1" | "2" | "3" | "4" | "5";
414
- technicality: "1" | "2" | "3" | "4" | "5";
415
- includeBlockKit: boolean;
416
- includeQuery: boolean;
417
- includeExplanation: boolean;
418
418
  credentials?: Partial<Record<CredentialType, string>> | undefined;
419
419
  additionalContext?: string | undefined;
420
420
  }, {
421
421
  message: string;
422
- credentials?: Partial<Record<CredentialType, string>> | undefined;
422
+ verbosity?: "1" | "2" | "3" | "4" | "5" | undefined;
423
+ technicality?: "1" | "2" | "3" | "4" | "5" | undefined;
424
+ includeBlockKit?: boolean | undefined;
425
+ includeQuery?: boolean | undefined;
426
+ includeExplanation?: boolean | undefined;
423
427
  model?: {
424
428
  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/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined;
425
429
  temperature?: number | undefined;
426
430
  maxTokens?: number | undefined;
427
431
  } | undefined;
432
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
428
433
  tools?: {
429
434
  name: string;
430
435
  credentials?: Partial<Record<CredentialType, string>> | undefined;
431
436
  config?: Record<string, unknown> | undefined;
432
437
  }[] | undefined;
433
438
  maxIterations?: number | undefined;
434
- verbosity?: "1" | "2" | "3" | "4" | "5" | undefined;
435
- technicality?: "1" | "2" | "3" | "4" | "5" | undefined;
436
- includeBlockKit?: boolean | undefined;
437
- includeQuery?: boolean | undefined;
438
- includeExplanation?: boolean | undefined;
439
439
  additionalContext?: string | undefined;
440
440
  }>;
441
441
  static readonly resultSchema: z.ZodObject<{
@@ -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: "section" | "header" | "divider" | "context" | "actions" | "input" | "file" | "image";
516
516
  title?: {
517
517
  type: "plain_text";
518
518
  text: string;
@@ -524,28 +524,28 @@ 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;
527
+ block_id?: string | undefined;
528
+ accessory?: unknown;
529
529
  fields?: {
530
530
  type: "plain_text" | "mrkdwn";
531
531
  text: string;
532
532
  emoji?: boolean | undefined;
533
533
  verbatim?: boolean | undefined;
534
534
  }[] | undefined;
535
+ element?: unknown;
536
+ label?: unknown;
537
+ hint?: unknown;
538
+ optional?: boolean | undefined;
535
539
  alt_text?: string | undefined;
540
+ image_url?: string | undefined;
536
541
  elements?: {
537
542
  type: "plain_text" | "mrkdwn";
538
543
  text: string;
539
544
  emoji?: boolean | undefined;
540
545
  verbatim?: boolean | undefined;
541
546
  }[] | undefined;
542
- block_id?: string | undefined;
543
- accessory?: unknown;
544
- element?: unknown;
545
- label?: unknown;
546
- hint?: unknown;
547
547
  }, {
548
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
548
+ type: "section" | "header" | "divider" | "context" | "actions" | "input" | "file" | "image";
549
549
  title?: {
550
550
  type: "plain_text";
551
551
  text: string;
@@ -557,26 +557,26 @@ 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;
560
+ block_id?: string | undefined;
561
+ accessory?: unknown;
562
562
  fields?: {
563
563
  type: "plain_text" | "mrkdwn";
564
564
  text: string;
565
565
  emoji?: boolean | undefined;
566
566
  verbatim?: boolean | undefined;
567
567
  }[] | undefined;
568
+ element?: unknown;
569
+ label?: unknown;
570
+ hint?: unknown;
571
+ optional?: boolean | undefined;
568
572
  alt_text?: string | undefined;
573
+ image_url?: string | undefined;
569
574
  elements?: {
570
575
  type: "plain_text" | "mrkdwn";
571
576
  text: string;
572
577
  emoji?: boolean | undefined;
573
578
  verbatim?: boolean | undefined;
574
579
  }[] | undefined;
575
- block_id?: string | undefined;
576
- accessory?: unknown;
577
- element?: unknown;
578
- label?: unknown;
579
- hint?: unknown;
580
580
  }>, "many">>;
581
581
  metadata: z.ZodObject<{
582
582
  verbosityLevel: z.ZodString;
@@ -611,23 +611,18 @@ 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
- success: boolean;
614
+ response: string;
616
615
  metadata: {
617
616
  verbosityLevel: string;
618
617
  technicalityLevel: string;
619
618
  wordCount: number;
620
619
  blockCount?: number | undefined;
621
620
  };
622
- response: string;
623
621
  iterations: number;
624
- toolCalls?: {
625
- tool: string;
626
- input?: unknown;
627
- output?: unknown;
628
- }[] | undefined;
622
+ error: string;
623
+ success: boolean;
629
624
  blocks?: {
630
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
625
+ type: "section" | "header" | "divider" | "context" | "actions" | "input" | "file" | "image";
631
626
  title?: {
632
627
  type: "plain_text";
633
628
  text: string;
@@ -639,45 +634,45 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
639
634
  emoji?: boolean | undefined;
640
635
  verbatim?: boolean | undefined;
641
636
  } | undefined;
642
- image_url?: string | undefined;
643
- optional?: boolean | undefined;
637
+ block_id?: string | undefined;
638
+ accessory?: unknown;
644
639
  fields?: {
645
640
  type: "plain_text" | "mrkdwn";
646
641
  text: string;
647
642
  emoji?: boolean | undefined;
648
643
  verbatim?: boolean | undefined;
649
644
  }[] | undefined;
645
+ element?: unknown;
646
+ label?: unknown;
647
+ hint?: unknown;
648
+ optional?: boolean | undefined;
650
649
  alt_text?: string | undefined;
650
+ image_url?: string | undefined;
651
651
  elements?: {
652
652
  type: "plain_text" | "mrkdwn";
653
653
  text: string;
654
654
  emoji?: boolean | undefined;
655
655
  verbatim?: boolean | undefined;
656
656
  }[] | undefined;
657
- block_id?: string | undefined;
658
- accessory?: unknown;
659
- element?: unknown;
660
- label?: unknown;
661
- hint?: unknown;
657
+ }[] | undefined;
658
+ toolCalls?: {
659
+ tool: string;
660
+ input?: unknown;
661
+ output?: unknown;
662
662
  }[] | undefined;
663
663
  }, {
664
- error: string;
665
- success: boolean;
664
+ response: string;
666
665
  metadata: {
667
666
  verbosityLevel: string;
668
667
  technicalityLevel: string;
669
668
  wordCount: number;
670
669
  blockCount?: number | undefined;
671
670
  };
672
- response: string;
673
671
  iterations: number;
674
- toolCalls?: {
675
- tool: string;
676
- input?: unknown;
677
- output?: unknown;
678
- }[] | undefined;
672
+ error: string;
673
+ success: boolean;
679
674
  blocks?: {
680
- type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
675
+ type: "section" | "header" | "divider" | "context" | "actions" | "input" | "file" | "image";
681
676
  title?: {
682
677
  type: "plain_text";
683
678
  text: string;
@@ -689,26 +684,31 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
689
684
  emoji?: boolean | undefined;
690
685
  verbatim?: boolean | undefined;
691
686
  } | undefined;
692
- image_url?: string | undefined;
693
- optional?: boolean | undefined;
687
+ block_id?: string | undefined;
688
+ accessory?: unknown;
694
689
  fields?: {
695
690
  type: "plain_text" | "mrkdwn";
696
691
  text: string;
697
692
  emoji?: boolean | undefined;
698
693
  verbatim?: boolean | undefined;
699
694
  }[] | undefined;
695
+ element?: unknown;
696
+ label?: unknown;
697
+ hint?: unknown;
698
+ optional?: boolean | undefined;
700
699
  alt_text?: string | undefined;
700
+ image_url?: string | undefined;
701
701
  elements?: {
702
702
  type: "plain_text" | "mrkdwn";
703
703
  text: string;
704
704
  emoji?: boolean | undefined;
705
705
  verbatim?: boolean | undefined;
706
706
  }[] | undefined;
707
- block_id?: string | undefined;
708
- accessory?: unknown;
709
- element?: unknown;
710
- label?: unknown;
711
- hint?: unknown;
707
+ }[] | undefined;
708
+ toolCalls?: {
709
+ tool: string;
710
+ input?: unknown;
711
+ output?: unknown;
712
712
  }[] | undefined;
713
713
  }>;
714
714
  static readonly shortDescription = "AI agent for creating well-formatted Slack messages with adjustable verbosity and technicality";
package/dist/bubbles.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "2.0.0",
3
- "generatedAt": "2026-02-02T10:41:40.296Z",
3
+ "generatedAt": "2026-02-02T12:00:47.429Z",
4
4
  "totalCount": 58,
5
5
  "bubbles": [
6
6
  {
@@ -68,7 +68,7 @@
68
68
  "type": "service",
69
69
  "shortDescription": "AI agent with LangGraph for tool-enabled conversations, multimodal support, and JSON mode",
70
70
  "useCase": "- Add tools to enhance the AI agent's capabilities (web-search-tool, web-scrape-tool)",
71
- "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 reasoning: string | undefined // The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models.,\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 totalCost: number | undefined // Total cost in USD for this request (includes tokens + web search for deep research models),\n error: string // Error message of the run, undefined if successful,\n success: boolean // Whether the agent execution completed successfully\n}",
71
+ "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 reasoning: string | null | undefined // The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models.,\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 totalCost: number | undefined // Total cost in USD for this request (includes tokens + web search for deep research models),\n error: string // Error message of the run, undefined if successful,\n success: boolean // Whether the agent execution completed successfully\n}",
72
72
  "inputJsonSchema": {
73
73
  "type": "object",
74
74
  "properties": {
@@ -473,6 +473,7 @@
473
473
  },
474
474
  "reasoning": {
475
475
  "type": "string",
476
+ "nullable": true,
476
477
  "description": "The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models."
477
478
  },
478
479
  "toolCalls": {
@@ -524,7 +525,7 @@
524
525
  ],
525
526
  "additionalProperties": false
526
527
  },
527
- "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/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // 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/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // 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\", \"people-search-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// reasoning: string | undefined // The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models.,\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// totalCost: number | undefined // Total cost in USD for this request (includes tokens + web search for deep research models),\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);",
528
+ "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/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // 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/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // 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\", \"people-search-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// reasoning: string | null | undefined // The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models.,\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// totalCost: number | undefined // Total cost in USD for this request (includes tokens + web search for deep research models),\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);",
528
529
  "requiredCredentials": [
529
530
  "OPENAI_CRED",
530
531
  "GOOGLE_GEMINI_CRED",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubblelab/bubble-core",
3
- "version": "0.1.76",
3
+ "version": "0.1.78",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -40,7 +40,7 @@
40
40
  "puppeteer-core": "^24.10.0",
41
41
  "resend": "^4.8.0",
42
42
  "zod": "^3.24.1",
43
- "@bubblelab/shared-schemas": "0.1.77"
43
+ "@bubblelab/shared-schemas": "0.1.79"
44
44
  },
45
45
  "devDependencies": {
46
46
  "zod-to-json-schema": "^3.24.6",