@bubblelab/bubble-core 0.1.71 → 0.1.72

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 (33) hide show
  1. package/dist/bubble-bundle.d.ts +47 -47
  2. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts +24 -24
  4. package/dist/bubbles/service-bubble/airtable.d.ts +24 -24
  5. package/dist/bubbles/service-bubble/apify/apify.d.ts +10 -10
  6. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +40 -40
  7. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +31 -31
  8. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +80 -80
  9. package/dist/bubbles/service-bubble/firecrawl.d.ts +274 -274
  10. package/dist/bubbles/service-bubble/followupboss.d.ts +84 -84
  11. package/dist/bubbles/service-bubble/github.d.ts +36 -36
  12. package/dist/bubbles/service-bubble/gmail.d.ts +88 -88
  13. package/dist/bubbles/service-bubble/google-drive.d.ts +1 -62
  14. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  15. package/dist/bubbles/service-bubble/google-drive.js +0 -58
  16. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  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/postgresql.d.ts +8 -8
  20. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  21. package/dist/bubbles/service-bubble/slack/slack.d.ts +216 -216
  22. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +11 -11
  23. package/dist/bubbles/service-bubble/telegram.d.ts +2 -2
  24. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +10 -10
  25. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +234 -234
  26. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +18 -18
  27. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  28. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +56 -56
  29. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +80 -80
  30. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +16 -16
  31. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +24 -24
  32. package/dist/bubbles.json +2 -67
  33. package/package.json +2 -2
@@ -139,13 +139,13 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
139
139
  type: string;
140
140
  name: string;
141
141
  id: number;
142
- x: number;
143
- y: number;
144
142
  width: number;
145
143
  height: number;
146
144
  label: string;
147
145
  page: number;
148
146
  choices: string[];
147
+ x: number;
148
+ y: number;
149
149
  field_type: string;
150
150
  current_value: string;
151
151
  rect: [number, number, number, number];
@@ -155,13 +155,13 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
155
155
  type: string;
156
156
  name: string;
157
157
  id: number;
158
- x: number;
159
- y: number;
160
158
  width: number;
161
159
  height: number;
162
160
  label: string;
163
161
  page: number;
164
162
  choices: string[];
163
+ x: number;
164
+ y: number;
165
165
  field_type: string;
166
166
  current_value: string;
167
167
  rect: [number, number, number, number];
@@ -179,13 +179,13 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
179
179
  type: string;
180
180
  name: string;
181
181
  id: number;
182
- x: number;
183
- y: number;
184
182
  width: number;
185
183
  height: number;
186
184
  label: string;
187
185
  page: number;
188
186
  choices: string[];
187
+ x: number;
188
+ y: number;
189
189
  field_type: string;
190
190
  current_value: string;
191
191
  rect: [number, number, number, number];
@@ -201,13 +201,13 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
201
201
  type: string;
202
202
  name: string;
203
203
  id: number;
204
- x: number;
205
- y: number;
206
204
  width: number;
207
205
  height: number;
208
206
  label: string;
209
207
  page: number;
210
208
  choices: string[];
209
+ x: number;
210
+ y: number;
211
211
  field_type: string;
212
212
  current_value: string;
213
213
  rect: [number, number, number, number];
@@ -618,13 +618,13 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
618
618
  type: string;
619
619
  name: string;
620
620
  id: number;
621
- x: number;
622
- y: number;
623
621
  width: number;
624
622
  height: number;
625
623
  label: string;
626
624
  page: number;
627
625
  choices: string[];
626
+ x: number;
627
+ y: number;
628
628
  field_type: string;
629
629
  current_value: string;
630
630
  rect: [number, number, number, number];
@@ -634,13 +634,13 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
634
634
  type: string;
635
635
  name: string;
636
636
  id: number;
637
- x: number;
638
- y: number;
639
637
  width: number;
640
638
  height: number;
641
639
  label: string;
642
640
  page: number;
643
641
  choices: string[];
642
+ x: number;
643
+ y: number;
644
644
  field_type: string;
645
645
  current_value: string;
646
646
  rect: [number, number, number, number];
@@ -658,13 +658,13 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
658
658
  type: string;
659
659
  name: string;
660
660
  id: number;
661
- x: number;
662
- y: number;
663
661
  width: number;
664
662
  height: number;
665
663
  label: string;
666
664
  page: number;
667
665
  choices: string[];
666
+ x: number;
667
+ y: number;
668
668
  field_type: string;
669
669
  current_value: string;
670
670
  rect: [number, number, number, number];
@@ -680,13 +680,13 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
680
680
  type: string;
681
681
  name: string;
682
682
  id: number;
683
- x: number;
684
- y: number;
685
683
  width: number;
686
684
  height: number;
687
685
  label: string;
688
686
  page: number;
689
687
  choices: string[];
688
+ x: number;
689
+ y: number;
690
690
  field_type: string;
691
691
  current_value: string;
692
692
  rect: [number, number, number, number];
@@ -154,7 +154,7 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
154
154
  verbatim?: boolean | undefined;
155
155
  }>, "many">>;
156
156
  }, "strip", z.ZodTypeAny, {
157
- type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
157
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
158
158
  title?: {
159
159
  type: "plain_text";
160
160
  text: string;
@@ -178,16 +178,16 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
178
178
  emoji?: boolean | undefined;
179
179
  verbatim?: boolean | undefined;
180
180
  }[] | undefined;
181
- element?: unknown;
182
181
  image_url?: string | undefined;
183
182
  optional?: boolean | undefined;
184
183
  alt_text?: string | undefined;
185
184
  block_id?: string | undefined;
186
185
  accessory?: unknown;
186
+ element?: unknown;
187
187
  label?: unknown;
188
188
  hint?: unknown;
189
189
  }, {
190
- type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
190
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
191
191
  title?: {
192
192
  type: "plain_text";
193
193
  text: string;
@@ -211,12 +211,12 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
211
211
  emoji?: boolean | undefined;
212
212
  verbatim?: boolean | undefined;
213
213
  }[] | undefined;
214
- element?: unknown;
215
214
  image_url?: string | undefined;
216
215
  optional?: boolean | undefined;
217
216
  alt_text?: string | undefined;
218
217
  block_id?: string | undefined;
219
218
  accessory?: unknown;
219
+ element?: unknown;
220
220
  label?: unknown;
221
221
  hint?: unknown;
222
222
  }>, "many">>;
@@ -255,21 +255,21 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
255
255
  }, "strip", z.ZodTypeAny, {
256
256
  success: boolean;
257
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: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
272
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
273
273
  title?: {
274
274
  type: "plain_text";
275
275
  text: string;
@@ -293,33 +293,33 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
293
293
  emoji?: boolean | undefined;
294
294
  verbatim?: boolean | undefined;
295
295
  }[] | undefined;
296
- element?: unknown;
297
296
  image_url?: string | undefined;
298
297
  optional?: boolean | undefined;
299
298
  alt_text?: string | undefined;
300
299
  block_id?: string | undefined;
301
300
  accessory?: unknown;
301
+ element?: unknown;
302
302
  label?: unknown;
303
303
  hint?: unknown;
304
304
  }[] | undefined;
305
305
  }, {
306
306
  success: boolean;
307
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: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
322
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
323
323
  title?: {
324
324
  type: "plain_text";
325
325
  text: string;
@@ -343,12 +343,12 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
343
343
  emoji?: boolean | undefined;
344
344
  verbatim?: boolean | undefined;
345
345
  }[] | undefined;
346
- element?: unknown;
347
346
  image_url?: string | undefined;
348
347
  optional?: boolean | undefined;
349
348
  alt_text?: string | undefined;
350
349
  block_id?: string | undefined;
351
350
  accessory?: unknown;
351
+ element?: unknown;
352
352
  label?: unknown;
353
353
  hint?: unknown;
354
354
  }[] | undefined;
@@ -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: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
515
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
516
516
  title?: {
517
517
  type: "plain_text";
518
518
  text: string;
@@ -536,16 +536,16 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
536
536
  emoji?: boolean | undefined;
537
537
  verbatim?: boolean | undefined;
538
538
  }[] | undefined;
539
- element?: unknown;
540
539
  image_url?: string | undefined;
541
540
  optional?: boolean | undefined;
542
541
  alt_text?: string | undefined;
543
542
  block_id?: string | undefined;
544
543
  accessory?: unknown;
544
+ element?: unknown;
545
545
  label?: unknown;
546
546
  hint?: unknown;
547
547
  }, {
548
- type: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
548
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
549
549
  title?: {
550
550
  type: "plain_text";
551
551
  text: string;
@@ -569,12 +569,12 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
569
569
  emoji?: boolean | undefined;
570
570
  verbatim?: boolean | undefined;
571
571
  }[] | undefined;
572
- element?: unknown;
573
572
  image_url?: string | undefined;
574
573
  optional?: boolean | undefined;
575
574
  alt_text?: string | undefined;
576
575
  block_id?: string | undefined;
577
576
  accessory?: unknown;
577
+ element?: unknown;
578
578
  label?: unknown;
579
579
  hint?: unknown;
580
580
  }>, "many">>;
@@ -613,21 +613,21 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
613
613
  }, "strip", z.ZodTypeAny, {
614
614
  success: boolean;
615
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: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
630
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
631
631
  title?: {
632
632
  type: "plain_text";
633
633
  text: string;
@@ -651,33 +651,33 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
651
651
  emoji?: boolean | undefined;
652
652
  verbatim?: boolean | undefined;
653
653
  }[] | undefined;
654
- element?: unknown;
655
654
  image_url?: string | undefined;
656
655
  optional?: boolean | undefined;
657
656
  alt_text?: string | undefined;
658
657
  block_id?: string | undefined;
659
658
  accessory?: unknown;
659
+ element?: unknown;
660
660
  label?: unknown;
661
661
  hint?: unknown;
662
662
  }[] | undefined;
663
663
  }, {
664
664
  success: boolean;
665
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: "file" | "image" | "context" | "input" | "section" | "header" | "divider" | "actions";
680
+ type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
681
681
  title?: {
682
682
  type: "plain_text";
683
683
  text: string;
@@ -701,12 +701,12 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
701
701
  emoji?: boolean | undefined;
702
702
  verbatim?: boolean | undefined;
703
703
  }[] | undefined;
704
- element?: unknown;
705
704
  image_url?: string | undefined;
706
705
  optional?: boolean | undefined;
707
706
  alt_text?: string | undefined;
708
707
  block_id?: string | undefined;
709
708
  accessory?: unknown;
709
+ element?: unknown;
710
710
  label?: unknown;
711
711
  hint?: unknown;
712
712
  }[] | undefined;
package/dist/bubbles.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "2.0.0",
3
- "generatedAt": "2026-02-01T07:08:12.310Z",
3
+ "generatedAt": "2026-02-01T07:27:38.239Z",
4
4
  "totalCount": 58,
5
5
  "bubbles": [
6
6
  {
@@ -8793,41 +8793,6 @@
8793
8793
  "new_name"
8794
8794
  ],
8795
8795
  "additionalProperties": false
8796
- },
8797
- {
8798
- "type": "object",
8799
- "properties": {
8800
- "operation": {
8801
- "type": "string",
8802
- "enum": [
8803
- "create_tab"
8804
- ],
8805
- "description": "Create a new tab in a Google Doc"
8806
- },
8807
- "document_id": {
8808
- "type": "string",
8809
- "minLength": 1,
8810
- "description": "The ID of the Google Doc to add a tab to"
8811
- },
8812
- "title": {
8813
- "type": "string",
8814
- "minLength": 1,
8815
- "description": "Title for the new tab"
8816
- },
8817
- "credentials": {
8818
- "type": "object",
8819
- "additionalProperties": {
8820
- "type": "string"
8821
- },
8822
- "description": "Object mapping credential types to values (injected at runtime)"
8823
- }
8824
- },
8825
- "required": [
8826
- "operation",
8827
- "document_id",
8828
- "title"
8829
- ],
8830
- "additionalProperties": false
8831
8796
  }
8832
8797
  ]
8833
8798
  },
@@ -9631,40 +9596,10 @@
9631
9596
  "error"
9632
9597
  ],
9633
9598
  "additionalProperties": false
9634
- },
9635
- {
9636
- "type": "object",
9637
- "properties": {
9638
- "operation": {
9639
- "type": "string",
9640
- "enum": [
9641
- "create_tab"
9642
- ],
9643
- "description": "Create a new tab in a Google Doc"
9644
- },
9645
- "success": {
9646
- "type": "boolean",
9647
- "description": "Whether the tab was created successfully"
9648
- },
9649
- "tab_id": {
9650
- "type": "string",
9651
- "description": "ID of the newly created tab"
9652
- },
9653
- "error": {
9654
- "type": "string",
9655
- "description": "Error message if operation failed"
9656
- }
9657
- },
9658
- "required": [
9659
- "operation",
9660
- "success",
9661
- "error"
9662
- ],
9663
- "additionalProperties": false
9664
9599
  }
9665
9600
  ]
9666
9601
  },
9667
- "usageExample": "// Upload File example\nconst googleDrive_upload_file = new GoogleDriveBubble({\n operation: \"upload_file\", // Upload a file to Google Drive\n name: \"example string\", // Name for the uploaded file\n content: \"example string\", // File content as base64 encoded string or plain text\n mimeType: \"example string\", // MIME type of the file (auto-detected if not provided)\n parent_folder_id: \"example string\", // ID of the parent folder (uploads to root if not provided)\n convert_to_google_docs: false // default, // Convert uploaded file to Google Docs format if possible\n});\n\nconst result = await googleDrive_upload_file.action();\n// outputSchema for result.data when operation === 'upload_file':\n// {\n// operation: \"upload_file\" // Upload a file to Google Drive,\n// success: boolean // Whether the file was uploaded successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // Uploaded file metadata,\n// error: string // Error message if operation failed\n// }\n\n\n// Download File example\nconst googleDrive_download_file = new GoogleDriveBubble({\n operation: \"download_file\", // Download a file from Google Drive\n file_id: \"example string\", // Google Drive file ID to download\n export_format: \"example string\", // Export format for Google Workspace files (e.g., \"application/pdf\", \"text/plain\")\n});\n\nconst result = await googleDrive_download_file.action();\n// outputSchema for result.data when operation === 'download_file':\n// {\n// operation: \"download_file\" // Download a file from Google Drive,\n// success: boolean // Whether the file was downloaded successfully,\n// content: string | undefined // File content as plain text (for text-based files) or base64 encoded string (for binary files),\n// filename: string | undefined // Original filename,\n// mimeType: string | undefined // MIME type of the downloaded file,\n// error: string // Error message if operation failed\n// }\n\n\n// List Files example\nconst googleDrive_list_files = new GoogleDriveBubble({\n operation: \"list_files\", // List files and folders in Google Drive\n folder_id: \"example string\", // ID of folder to list files from (lists from root if not provided)\n query: \"example string\", // Search query to filter files (e.g., \"name contains 'report'\"\n max_results: 100 // default, // Maximum number of files to return\n include_folders: true // default, // Include folders in the results\n order_by: \"modifiedTime desc\" // default, // Order results by field (e.g., \"name\", \"modifiedTime desc\")\n});\n\nconst result = await googleDrive_list_files.action();\n// outputSchema for result.data when operation === 'list_files':\n// {\n// operation: \"list_files\" // List files and folders in Google Drive,\n// success: boolean // Whether the file list was retrieved successfully,\n// files: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners }[] | undefined // List of files and folders,\n// total_count: number | undefined // Total number of files found,\n// next_page_token: string | undefined // Token for fetching next page of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Folder example\nconst googleDrive_create_folder = new GoogleDriveBubble({\n operation: \"create_folder\", // Create a new folder in Google Drive\n name: \"example string\", // Name of the folder to create\n parent_folder_id: \"example string\", // ID of the parent folder (creates in root if not provided)\n});\n\nconst result = await googleDrive_create_folder.action();\n// outputSchema for result.data when operation === 'create_folder':\n// {\n// operation: \"create_folder\" // Create a new folder in Google Drive,\n// success: boolean // Whether the folder was created successfully,\n// folder: { id: string // Unique folder identifier, name: string // Name of the folder, webViewLink: string | undefined // Link to view the folder in Google Drive, parents: string[] | undefined // Parent folder IDs } | undefined // Created folder metadata,\n// error: string // Error message if operation failed\n// }\n\n\n// Delete File example\nconst googleDrive_delete_file = new GoogleDriveBubble({\n operation: \"delete_file\", // Delete a file or folder from Google Drive\n file_id: \"example string\", // Google Drive file or folder ID to delete\n permanent: false // default, // Permanently delete (true) or move to trash (false)\n});\n\nconst result = await googleDrive_delete_file.action();\n// outputSchema for result.data when operation === 'delete_file':\n// {\n// operation: \"delete_file\" // Delete a file or folder from Google Drive,\n// success: boolean // Whether the file was deleted successfully,\n// deleted_file_id: string | undefined // ID of the deleted file,\n// error: string // Error message if operation failed\n// }\n\n\n// Get File Info example\nconst googleDrive_get_file_info = new GoogleDriveBubble({\n operation: \"get_file_info\", // Get detailed information about a file or folder\n file_id: \"example string\", // Google Drive file or folder ID to get info for\n include_permissions: false // default, // Include file permissions in the response\n});\n\nconst result = await googleDrive_get_file_info.action();\n// outputSchema for result.data when operation === 'get_file_info':\n// {\n// operation: \"get_file_info\" // Get detailed information about a file or folder,\n// success: boolean // Whether the file information was retrieved successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // File metadata and information,\n// permissions: { id: string, type: string, role: string, emailAddress: string | undefined // Permission holder email address, displayName: string | undefined // Permission holder display name }[] | undefined // File permissions (if requested),\n// error: string // Error message if operation failed\n// }\n\n\n// Share File example\nconst googleDrive_share_file = new GoogleDriveBubble({\n operation: \"share_file\", // Share a file or folder with specific users or make it public\n file_id: \"example string\", // Google Drive file or folder ID to share\n email_address: \"example string\", // Email address to share with (for specific user sharing)\n role: \"reader\" // options: \"reader\", \"writer\", \"commenter\", \"owner\", // Permission role to grant\n type: \"user\" // options: \"user\", \"group\", \"domain\", \"anyone\", // Type of permission to create\n send_notification: true // default, // Send notification email to the user\n});\n\nconst result = await googleDrive_share_file.action();\n// outputSchema for result.data when operation === 'share_file':\n// {\n// operation: \"share_file\" // Share a file or folder with specific users or make it public,\n// success: boolean // Whether the file was shared successfully,\n// permission_id: string | undefined // ID of the created permission,\n// share_link: string | undefined // Shareable link to the file,\n// error: string // Error message if operation failed\n// }\n\n\n// Move File example\nconst googleDrive_move_file = new GoogleDriveBubble({\n operation: \"move_file\", // Move a file or folder to a different location in Google Drive\n file_id: \"example string\", // Google Drive file or folder ID to move\n new_parent_folder_id: \"example string\", // ID of the new parent folder (moves to root if not provided)\n remove_parent_folder_id: \"example string\", // ID of the parent folder to remove (removes from all parents if not provided)\n});\n\nconst result = await googleDrive_move_file.action();\n// outputSchema for result.data when operation === 'move_file':\n// {\n// operation: \"move_file\" // Move a file or folder to a different location in Google Drive,\n// success: boolean // Whether the file was moved successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // Updated file metadata after move,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Doc example\nconst googleDrive_get_doc = new GoogleDriveBubble({\n operation: \"get_doc\", // Get the content and metadata of a Google Doc using the Google Docs API, use this over download_file for Google Docs\n document_id: \"example string\", // The ID of the Google Doc to retrieve\n tab_id: \"example string\", // Specific tab ID to read. If omitted, reads first tab.\n include_all_tabs: false // default, // Return info for all tabs including their plain text content\n});\n\nconst result = await googleDrive_get_doc.action();\n// outputSchema for result.data when operation === 'get_doc':\n// {\n// operation: \"get_doc\" // Get the content and metadata of a Google Doc using the Google Docs API,\n// success: boolean // Whether the document was retrieved successfully,\n// document: { documentId: string // The ID of the document, title: string // The title of the document, revisionId: string | undefined // The revision ID of the document, body: Record<string, unknown> | undefined // The main body of the document containing content array, suggestionsViewMode: string | undefined // The suggestions view mode applied to the document, inlineObjects: Record<string, unknown> | undefined // The inline objects (images, etc.) in the document, lists: Record<string, unknown> | undefined // The lists in the document, keyed by list ID } | undefined // The Google Docs document content and metadata,\n// plainText: string | undefined // Extracted plain text content from the document,\n// tabs: { tabId: string // Unique tab identifier, title: string // Tab title, index: number // Tab position index, plainText: string | undefined // Plain text content of the tab }[] | undefined // All tabs in the document,\n// error: string // Error message if operation failed\n// }\n\n\n// Update Doc example\nconst googleDrive_update_doc = new GoogleDriveBubble({\n operation: \"update_doc\", // Update a Google Doc with new content using the Google Docs API batchUpdate\n document_id: \"example string\", // The ID of the Google Doc to update\n content: \"example string\", // The text or markdown content to write to the document (auto-detected)\n mode: \"replace\" // options: \"replace\", \"append\", // Update mode: \"replace\" clears existing content first, \"append\" adds to the end\n tab_id: \"example string\", // Tab to write to. If omitted, writes to first tab.\n});\n\nconst result = await googleDrive_update_doc.action();\n// outputSchema for result.data when operation === 'update_doc':\n// {\n// operation: \"update_doc\" // Update a Google Doc with new content using the Google Docs API batchUpdate,\n// success: boolean // Whether the document was updated successfully,\n// documentId: string | undefined // The ID of the updated document,\n// revisionId: string | undefined // The new revision ID after the update,\n// error: string // Error message if operation failed\n// }\n\n\n// Replace Text example\nconst googleDrive_replace_text = new GoogleDriveBubble({\n operation: \"replace_text\", // Find and replace text in a Google Doc while preserving formatting\n document_id: \"example string\", // The ID of the Google Doc to perform replacements in\n replacements: [{ find: \"example string\" // Text to find, replace: \"example string\" // Text to replace with, match_case: true // default // Whether to match case when finding text }], // List of find/replace pairs\n tab_id: \"example string\", // Tab to perform replacements in. If omitted, applies to all tabs.\n});\n\nconst result = await googleDrive_replace_text.action();\n// outputSchema for result.data when operation === 'replace_text':\n// {\n// operation: \"replace_text\" // Find and replace text in a Google Doc,\n// success: boolean // Whether the replacements were made successfully,\n// replacements_made: number | undefined // Total number of replacements made,\n// error: string // Error message if operation failed\n// }\n\n\n// Copy Doc example\nconst googleDrive_copy_doc = new GoogleDriveBubble({\n operation: \"copy_doc\", // Create a copy of a Google Doc (useful for templates)\n document_id: \"example string\", // Source document ID to copy\n new_name: \"example string\", // Name for the new document\n parent_folder_id: \"example string\", // Folder to place the copy in\n});\n\nconst result = await googleDrive_copy_doc.action();\n// outputSchema for result.data when operation === 'copy_doc':\n// {\n// operation: \"copy_doc\" // Create a copy of a Google Doc,\n// success: boolean // Whether the document was copied successfully,\n// new_document_id: string | undefined // ID of the new document,\n// new_document_url: string | undefined // URL to view the new document,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Tab example\nconst googleDrive_create_tab = new GoogleDriveBubble({\n operation: \"create_tab\", // Create a new tab in a Google Doc\n document_id: \"example string\", // The ID of the Google Doc to add a tab to\n title: \"example string\", // Title for the new tab\n});\n\nconst result = await googleDrive_create_tab.action();\n// outputSchema for result.data when operation === 'create_tab':\n// {\n// operation: \"create_tab\" // Create a new tab in a Google Doc,\n// success: boolean // Whether the tab was created successfully,\n// tab_id: string | undefined // ID of the newly created tab,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`google-drive failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
9602
+ "usageExample": "// Upload File example\nconst googleDrive_upload_file = new GoogleDriveBubble({\n operation: \"upload_file\", // Upload a file to Google Drive\n name: \"example string\", // Name for the uploaded file\n content: \"example string\", // File content as base64 encoded string or plain text\n mimeType: \"example string\", // MIME type of the file (auto-detected if not provided)\n parent_folder_id: \"example string\", // ID of the parent folder (uploads to root if not provided)\n convert_to_google_docs: false // default, // Convert uploaded file to Google Docs format if possible\n});\n\nconst result = await googleDrive_upload_file.action();\n// outputSchema for result.data when operation === 'upload_file':\n// {\n// operation: \"upload_file\" // Upload a file to Google Drive,\n// success: boolean // Whether the file was uploaded successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // Uploaded file metadata,\n// error: string // Error message if operation failed\n// }\n\n\n// Download File example\nconst googleDrive_download_file = new GoogleDriveBubble({\n operation: \"download_file\", // Download a file from Google Drive\n file_id: \"example string\", // Google Drive file ID to download\n export_format: \"example string\", // Export format for Google Workspace files (e.g., \"application/pdf\", \"text/plain\")\n});\n\nconst result = await googleDrive_download_file.action();\n// outputSchema for result.data when operation === 'download_file':\n// {\n// operation: \"download_file\" // Download a file from Google Drive,\n// success: boolean // Whether the file was downloaded successfully,\n// content: string | undefined // File content as plain text (for text-based files) or base64 encoded string (for binary files),\n// filename: string | undefined // Original filename,\n// mimeType: string | undefined // MIME type of the downloaded file,\n// error: string // Error message if operation failed\n// }\n\n\n// List Files example\nconst googleDrive_list_files = new GoogleDriveBubble({\n operation: \"list_files\", // List files and folders in Google Drive\n folder_id: \"example string\", // ID of folder to list files from (lists from root if not provided)\n query: \"example string\", // Search query to filter files (e.g., \"name contains 'report'\"\n max_results: 100 // default, // Maximum number of files to return\n include_folders: true // default, // Include folders in the results\n order_by: \"modifiedTime desc\" // default, // Order results by field (e.g., \"name\", \"modifiedTime desc\")\n});\n\nconst result = await googleDrive_list_files.action();\n// outputSchema for result.data when operation === 'list_files':\n// {\n// operation: \"list_files\" // List files and folders in Google Drive,\n// success: boolean // Whether the file list was retrieved successfully,\n// files: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners }[] | undefined // List of files and folders,\n// total_count: number | undefined // Total number of files found,\n// next_page_token: string | undefined // Token for fetching next page of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Create Folder example\nconst googleDrive_create_folder = new GoogleDriveBubble({\n operation: \"create_folder\", // Create a new folder in Google Drive\n name: \"example string\", // Name of the folder to create\n parent_folder_id: \"example string\", // ID of the parent folder (creates in root if not provided)\n});\n\nconst result = await googleDrive_create_folder.action();\n// outputSchema for result.data when operation === 'create_folder':\n// {\n// operation: \"create_folder\" // Create a new folder in Google Drive,\n// success: boolean // Whether the folder was created successfully,\n// folder: { id: string // Unique folder identifier, name: string // Name of the folder, webViewLink: string | undefined // Link to view the folder in Google Drive, parents: string[] | undefined // Parent folder IDs } | undefined // Created folder metadata,\n// error: string // Error message if operation failed\n// }\n\n\n// Delete File example\nconst googleDrive_delete_file = new GoogleDriveBubble({\n operation: \"delete_file\", // Delete a file or folder from Google Drive\n file_id: \"example string\", // Google Drive file or folder ID to delete\n permanent: false // default, // Permanently delete (true) or move to trash (false)\n});\n\nconst result = await googleDrive_delete_file.action();\n// outputSchema for result.data when operation === 'delete_file':\n// {\n// operation: \"delete_file\" // Delete a file or folder from Google Drive,\n// success: boolean // Whether the file was deleted successfully,\n// deleted_file_id: string | undefined // ID of the deleted file,\n// error: string // Error message if operation failed\n// }\n\n\n// Get File Info example\nconst googleDrive_get_file_info = new GoogleDriveBubble({\n operation: \"get_file_info\", // Get detailed information about a file or folder\n file_id: \"example string\", // Google Drive file or folder ID to get info for\n include_permissions: false // default, // Include file permissions in the response\n});\n\nconst result = await googleDrive_get_file_info.action();\n// outputSchema for result.data when operation === 'get_file_info':\n// {\n// operation: \"get_file_info\" // Get detailed information about a file or folder,\n// success: boolean // Whether the file information was retrieved successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // File metadata and information,\n// permissions: { id: string, type: string, role: string, emailAddress: string | undefined // Permission holder email address, displayName: string | undefined // Permission holder display name }[] | undefined // File permissions (if requested),\n// error: string // Error message if operation failed\n// }\n\n\n// Share File example\nconst googleDrive_share_file = new GoogleDriveBubble({\n operation: \"share_file\", // Share a file or folder with specific users or make it public\n file_id: \"example string\", // Google Drive file or folder ID to share\n email_address: \"example string\", // Email address to share with (for specific user sharing)\n role: \"reader\" // options: \"reader\", \"writer\", \"commenter\", \"owner\", // Permission role to grant\n type: \"user\" // options: \"user\", \"group\", \"domain\", \"anyone\", // Type of permission to create\n send_notification: true // default, // Send notification email to the user\n});\n\nconst result = await googleDrive_share_file.action();\n// outputSchema for result.data when operation === 'share_file':\n// {\n// operation: \"share_file\" // Share a file or folder with specific users or make it public,\n// success: boolean // Whether the file was shared successfully,\n// permission_id: string | undefined // ID of the created permission,\n// share_link: string | undefined // Shareable link to the file,\n// error: string // Error message if operation failed\n// }\n\n\n// Move File example\nconst googleDrive_move_file = new GoogleDriveBubble({\n operation: \"move_file\", // Move a file or folder to a different location in Google Drive\n file_id: \"example string\", // Google Drive file or folder ID to move\n new_parent_folder_id: \"example string\", // ID of the new parent folder (moves to root if not provided)\n remove_parent_folder_id: \"example string\", // ID of the parent folder to remove (removes from all parents if not provided)\n});\n\nconst result = await googleDrive_move_file.action();\n// outputSchema for result.data when operation === 'move_file':\n// {\n// operation: \"move_file\" // Move a file or folder to a different location in Google Drive,\n// success: boolean // Whether the file was moved successfully,\n// file: { id: string // Unique file identifier, name: string // Name of the file, mimeType: string // MIME type of the file, size: string | undefined // Size of the file in bytes, createdTime: string | undefined // Creation time in RFC 3339 format, modifiedTime: string | undefined // Last modified time in RFC 3339 format, webViewLink: string | undefined // Link to view the file in Google Drive, webContentLink: string | undefined // Link to download the file, parents: string[] | undefined // Parent folder IDs, shared: boolean | undefined // Whether the file is shared, owners: { displayName: string | undefined // Owner display name, emailAddress: string | undefined // Owner email address }[] | undefined // File owners } | undefined // Updated file metadata after move,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Doc example\nconst googleDrive_get_doc = new GoogleDriveBubble({\n operation: \"get_doc\", // Get the content and metadata of a Google Doc using the Google Docs API, use this over download_file for Google Docs\n document_id: \"example string\", // The ID of the Google Doc to retrieve\n tab_id: \"example string\", // Specific tab ID to read. If omitted, reads first tab.\n include_all_tabs: false // default, // Return info for all tabs including their plain text content\n});\n\nconst result = await googleDrive_get_doc.action();\n// outputSchema for result.data when operation === 'get_doc':\n// {\n// operation: \"get_doc\" // Get the content and metadata of a Google Doc using the Google Docs API,\n// success: boolean // Whether the document was retrieved successfully,\n// document: { documentId: string // The ID of the document, title: string // The title of the document, revisionId: string | undefined // The revision ID of the document, body: Record<string, unknown> | undefined // The main body of the document containing content array, suggestionsViewMode: string | undefined // The suggestions view mode applied to the document, inlineObjects: Record<string, unknown> | undefined // The inline objects (images, etc.) in the document, lists: Record<string, unknown> | undefined // The lists in the document, keyed by list ID } | undefined // The Google Docs document content and metadata,\n// plainText: string | undefined // Extracted plain text content from the document,\n// tabs: { tabId: string // Unique tab identifier, title: string // Tab title, index: number // Tab position index, plainText: string | undefined // Plain text content of the tab }[] | undefined // All tabs in the document,\n// error: string // Error message if operation failed\n// }\n\n\n// Update Doc example\nconst googleDrive_update_doc = new GoogleDriveBubble({\n operation: \"update_doc\", // Update a Google Doc with new content using the Google Docs API batchUpdate\n document_id: \"example string\", // The ID of the Google Doc to update\n content: \"example string\", // The text or markdown content to write to the document (auto-detected)\n mode: \"replace\" // options: \"replace\", \"append\", // Update mode: \"replace\" clears existing content first, \"append\" adds to the end\n tab_id: \"example string\", // Tab to write to. If omitted, writes to first tab.\n});\n\nconst result = await googleDrive_update_doc.action();\n// outputSchema for result.data when operation === 'update_doc':\n// {\n// operation: \"update_doc\" // Update a Google Doc with new content using the Google Docs API batchUpdate,\n// success: boolean // Whether the document was updated successfully,\n// documentId: string | undefined // The ID of the updated document,\n// revisionId: string | undefined // The new revision ID after the update,\n// error: string // Error message if operation failed\n// }\n\n\n// Replace Text example\nconst googleDrive_replace_text = new GoogleDriveBubble({\n operation: \"replace_text\", // Find and replace text in a Google Doc while preserving formatting\n document_id: \"example string\", // The ID of the Google Doc to perform replacements in\n replacements: [{ find: \"example string\" // Text to find, replace: \"example string\" // Text to replace with, match_case: true // default // Whether to match case when finding text }], // List of find/replace pairs\n tab_id: \"example string\", // Tab to perform replacements in. If omitted, applies to all tabs.\n});\n\nconst result = await googleDrive_replace_text.action();\n// outputSchema for result.data when operation === 'replace_text':\n// {\n// operation: \"replace_text\" // Find and replace text in a Google Doc,\n// success: boolean // Whether the replacements were made successfully,\n// replacements_made: number | undefined // Total number of replacements made,\n// error: string // Error message if operation failed\n// }\n\n\n// Copy Doc example\nconst googleDrive_copy_doc = new GoogleDriveBubble({\n operation: \"copy_doc\", // Create a copy of a Google Doc (useful for templates)\n document_id: \"example string\", // Source document ID to copy\n new_name: \"example string\", // Name for the new document\n parent_folder_id: \"example string\", // Folder to place the copy in\n});\n\nconst result = await googleDrive_copy_doc.action();\n// outputSchema for result.data when operation === 'copy_doc':\n// {\n// operation: \"copy_doc\" // Create a copy of a Google Doc,\n// success: boolean // Whether the document was copied successfully,\n// new_document_id: string | undefined // ID of the new document,\n// new_document_url: string | undefined // URL to view the new document,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`google-drive failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
9668
9603
  "requiredCredentials": [
9669
9604
  "GOOGLE_DRIVE_CRED"
9670
9605
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubblelab/bubble-core",
3
- "version": "0.1.71",
3
+ "version": "0.1.72",
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.72"
43
+ "@bubblelab/shared-schemas": "0.1.73"
44
44
  },
45
45
  "devDependencies": {
46
46
  "zod-to-json-schema": "^3.24.6",