@bubblelab/bubble-core 0.1.98 → 0.1.100

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 (64) hide show
  1. package/dist/bubble-bundle.d.ts +127 -87
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +4 -0
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/ai-agent.d.ts +84 -84
  6. package/dist/bubbles/service-bubble/airtable.d.ts +100 -100
  7. package/dist/bubbles/service-bubble/apify/apify.d.ts +14 -14
  8. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +74 -74
  9. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +102 -102
  10. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +4 -4
  11. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +4 -4
  12. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +4 -4
  13. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +8 -8
  14. package/dist/bubbles/service-bubble/firecrawl.d.ts +272 -272
  15. package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
  16. package/dist/bubbles/service-bubble/github.d.ts +40 -40
  17. package/dist/bubbles/service-bubble/gmail.d.ts +104 -104
  18. package/dist/bubbles/service-bubble/google-calendar.d.ts +80 -80
  19. package/dist/bubbles/service-bubble/google-drive.d.ts +40 -40
  20. package/dist/bubbles/service-bubble/http.d.ts +4 -4
  21. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  22. package/dist/bubbles/service-bubble/jira/jira.d.ts +12 -12
  23. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +14 -14
  24. package/dist/bubbles/service-bubble/notion/notion.d.ts +68 -68
  25. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  26. package/dist/bubbles/service-bubble/resend.d.ts +24 -24
  27. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
  28. package/dist/bubbles/service-bubble/resend.js +9 -7
  29. package/dist/bubbles/service-bubble/resend.js.map +1 -1
  30. package/dist/bubbles/service-bubble/slack/slack.d.ts +68 -68
  31. package/dist/bubbles/service-bubble/storage.d.ts +20 -20
  32. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +211 -4
  33. package/dist/bubbles/service-bubble/stripe/stripe.d.ts.map +1 -1
  34. package/dist/bubbles/service-bubble/stripe/stripe.js +87 -2
  35. package/dist/bubbles/service-bubble/stripe/stripe.js.map +1 -1
  36. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +243 -4
  37. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts.map +1 -1
  38. package/dist/bubbles/service-bubble/stripe/stripe.schema.js +118 -0
  39. package/dist/bubbles/service-bubble/stripe/stripe.schema.js.map +1 -1
  40. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +2 -2
  41. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +2 -2
  42. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +52 -52
  43. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  44. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  45. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +16 -16
  46. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +46 -46
  47. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +4 -4
  48. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
  49. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
  50. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +516 -0
  51. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts.map +1 -0
  52. package/dist/bubbles/tool-bubble/yc-scraper-tool.js +317 -0
  53. package/dist/bubbles/tool-bubble/yc-scraper-tool.js.map +1 -0
  54. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +10 -10
  55. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +44 -44
  56. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +16 -16
  57. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
  58. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +26 -26
  59. package/dist/bubbles.json +549 -15
  60. package/dist/index.d.ts +2 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +1 -0
  63. package/dist/index.js.map +1 -1
  64. package/package.json +4 -4
@@ -0,0 +1,317 @@
1
+ import { z } from 'zod';
2
+ import { ToolBubble } from '../../types/tool-bubble-class.js';
3
+ import { CredentialType } from '@bubblelab/shared-schemas';
4
+ import { ApifyBubble } from '../service-bubble/apify/apify.js';
5
+ // Y Combinator batch format: Season + Year (e.g., "W24", "S23", "F22", "Sp24")
6
+ // Seasons: W (Winter), S (Summer), F (Fall), Sp (Spring)
7
+ // Founder schema - represents a founder/person extracted from YC data
8
+ const YCFounderSchema = z.object({
9
+ name: z.string().nullable().describe('Founder full name'),
10
+ title: z.string().nullable().describe('Founder title/role at the company'),
11
+ linkedinUrl: z.string().nullable().describe('LinkedIn profile URL'),
12
+ bio: z.string().nullable().describe('Founder bio/description'),
13
+ twitterUrl: z.string().nullable().describe('Twitter/X profile URL'),
14
+ });
15
+ // Company schema - represents a YC company
16
+ const YCCompanySchema = z.object({
17
+ companyName: z.string().nullable().describe('Company name'),
18
+ description: z.string().nullable().describe('Company description'),
19
+ batch: z.string().nullable().describe('YC batch (e.g., W24, S23)'),
20
+ website: z.string().nullable().describe('Company website URL'),
21
+ ycUrl: z.string().nullable().describe('YC company page URL'),
22
+ founders: z.array(YCFounderSchema).describe('List of founders'),
23
+ });
24
+ // Person output schema - flattened founder with company context
25
+ const YCPersonSchema = z.object({
26
+ name: z.string().nullable().describe('Person full name'),
27
+ title: z.string().nullable().describe('Title/role at the company'),
28
+ currentEmployers: z
29
+ .array(z.object({
30
+ companyName: z.string().nullable().describe('Company name'),
31
+ }))
32
+ .describe('Current employers (YC companies)'),
33
+ linkedinUrl: z.string().nullable().describe('LinkedIn profile URL'),
34
+ twitterUrl: z.string().nullable().describe('Twitter/X profile URL'),
35
+ bio: z.string().nullable().describe('Founder bio/description'),
36
+ emails: z
37
+ .array(z.string())
38
+ .nullable()
39
+ .describe('Email addresses (if available)'),
40
+ });
41
+ // Tool parameters schema
42
+ const YCScraperToolParamsSchema = z.object({
43
+ batch: z
44
+ .string()
45
+ .optional()
46
+ .describe('[ONEOF:source] YC batch to scrape (e.g., "W24" for Winter 2024, "S23" for Summer 2023).'),
47
+ url: z
48
+ .string()
49
+ .optional()
50
+ .describe('[ONEOF:source] Direct YC directory URL to scrape. Example: "https://www.ycombinator.com/companies?batch=Winter%202026". Use this for advanced filtering or full batch names.'),
51
+ maxCompanies: z
52
+ .number()
53
+ .min(1)
54
+ .max(500)
55
+ .default(50)
56
+ .optional()
57
+ .describe('Maximum number of companies to scrape (default: 50, max: 500)'),
58
+ includeFounders: z
59
+ .boolean()
60
+ .default(true)
61
+ .optional()
62
+ .describe('Whether to scrape founder details (default: true)'),
63
+ credentials: z
64
+ .record(z.nativeEnum(CredentialType), z.string())
65
+ .optional()
66
+ .describe('Required credentials (auto-injected)'),
67
+ });
68
+ // Tool result schema
69
+ const YCScraperToolResultSchema = z.object({
70
+ // People array - flattened founders with company context
71
+ people: z
72
+ .array(YCPersonSchema)
73
+ .describe('Array of founders/people extracted'),
74
+ // Companies array - for those who want company-level data
75
+ companies: z.array(YCCompanySchema).describe('Array of YC companies scraped'),
76
+ // Metadata
77
+ totalPeople: z.number().describe('Total number of people/founders found'),
78
+ totalCompanies: z.number().describe('Total number of companies scraped'),
79
+ batch: z.string().nullable().describe('YC batch that was scraped'),
80
+ url: z.string().nullable().describe('URL that was scraped'),
81
+ // Standard fields
82
+ success: z.boolean().describe('Whether the operation was successful'),
83
+ error: z.string().describe('Error message if operation failed'),
84
+ });
85
+ /**
86
+ * Y Combinator Scraper Tool
87
+ *
88
+ * Scrapes Y Combinator company directory to extract company and founder data.
89
+ * Perfect for:
90
+ * - Finding YC founders for networking/outreach
91
+ * - Researching YC companies by batch
92
+ * - Building databases of startup founders
93
+ * - Lead generation targeting YC alumni
94
+ *
95
+ * Uses the Apify Y Combinator scraper actor behind the scenes.
96
+ */
97
+ export class YCScraperTool extends ToolBubble {
98
+ static bubbleName = 'yc-scraper-tool';
99
+ static schema = YCScraperToolParamsSchema;
100
+ static resultSchema = YCScraperToolResultSchema;
101
+ static shortDescription = 'Scrape Y Combinator directory for company and founder data. Find founders by batch (W24, S23, etc.) with LinkedIn profiles.';
102
+ static longDescription = `
103
+ Y Combinator directory scraper for extracting company and founder data.
104
+
105
+ **OPERATIONS:**
106
+ - Scrape companies and founders by YC batch (e.g., W24, S23, W22)
107
+ - Extract founder details including LinkedIn profiles, titles, and bios
108
+ - Get company information including descriptions and websites
109
+
110
+ **WHEN TO USE THIS TOOL:**
111
+ - **YC founder outreach** - find founders from specific batches for networking
112
+ - **Lead generation** - build lists of YC founders for sales/recruiting
113
+ - **Research** - analyze YC companies by batch, industry, or founder background
114
+ - **Competitive analysis** - research YC companies in specific sectors
115
+
116
+ **BATCH FORMAT:**
117
+ - W = Winter batch (January start)
118
+ - S = Summer batch (June start)
119
+ - Examples: W24 (Winter 2024), S23 (Summer 2023), W22 (Winter 2022)
120
+
121
+ **OUTPUT:**
122
+ - People array: Flattened list of founders with company context
123
+ - Companies array: Company-level data with nested founders
124
+ - LinkedIn URLs for direct founder outreach
125
+
126
+ **TIPS:**
127
+ - Start with smaller maxCompanies (20-50) for faster results
128
+ - Use the batch parameter for easier filtering
129
+ - Use url parameter for advanced filtering (industry, location, etc.)
130
+
131
+ The tool uses Apify's Y Combinator scraper for reliable data extraction.
132
+ `;
133
+ static alias = 'yc';
134
+ static type = 'tool';
135
+ constructor(params = {
136
+ batch: 'W24',
137
+ maxCompanies: 50,
138
+ includeFounders: true,
139
+ }, context) {
140
+ super(params, context);
141
+ }
142
+ async performAction() {
143
+ const credentials = this.params?.credentials;
144
+ if (!credentials || !credentials[CredentialType.APIFY_CRED]) {
145
+ return this.createErrorResult('YC scraping requires Apify authentication. Please configure APIFY_CRED.');
146
+ }
147
+ try {
148
+ const { batch, url, maxCompanies, includeFounders } = this.params;
149
+ // Build the YC directory URL
150
+ let scrapeUrl;
151
+ if (batch) {
152
+ // Convert batch format (e.g., "W24" -> "Winter 2024")
153
+ const formattedBatch = this.formatBatchForUrl(batch);
154
+ scrapeUrl = `https://www.ycombinator.com/companies?batch=${encodeURIComponent(formattedBatch)}`;
155
+ }
156
+ else if (url) {
157
+ scrapeUrl = url;
158
+ }
159
+ else {
160
+ return this.createErrorResult('Either batch (e.g., "W24") or url parameter is required');
161
+ }
162
+ // Call the Apify YC scraper
163
+ const apifyScraper = new ApifyBubble({
164
+ actorId: 'michael.g/y-combinator-scraper',
165
+ input: {
166
+ scrape_founders: includeFounders ?? true,
167
+ scrape_open_jobs: false,
168
+ url: scrapeUrl,
169
+ scrape_all_companies: false,
170
+ },
171
+ waitForFinish: true,
172
+ timeout: 300000, // 5 minutes
173
+ credentials: credentials,
174
+ limit: maxCompanies || 50,
175
+ }, this.context, 'ycScraper');
176
+ const result = await apifyScraper.action();
177
+ if (!result.data.success) {
178
+ return this.createErrorResult(result.data.error || 'YC scraper failed. Please try again.');
179
+ }
180
+ const items = (result.data.items || []);
181
+ // Limit to maxCompanies
182
+ const limitedCompanies = items.slice(0, maxCompanies || 50);
183
+ // Transform to our output format
184
+ const companies = this.transformCompanies(limitedCompanies);
185
+ const people = this.extractPeople(limitedCompanies);
186
+ return {
187
+ people,
188
+ companies,
189
+ totalPeople: people.length,
190
+ totalCompanies: companies.length,
191
+ batch: batch?.toUpperCase() || null,
192
+ url: scrapeUrl,
193
+ success: true,
194
+ error: '',
195
+ };
196
+ }
197
+ catch (error) {
198
+ return this.createErrorResult(error instanceof Error ? error.message : 'Unknown error occurred');
199
+ }
200
+ }
201
+ /**
202
+ * Convert batch to full format for URL
203
+ * Handles multiple input formats:
204
+ * - "W24", "S23", "F22", "Sp24" -> "Winter 2024", "Summer 2023", "Fall 2022", "Spring 2024"
205
+ * - "W2024", "S2023", "F2022", "Sp2024" -> full year variants
206
+ * - "Winter 2024", "Summer 2023", "Fall 2022", "Spring 2024" -> pass through
207
+ * - "winter2024", "Winter24", "fall24", "spring24" -> normalized format
208
+ */
209
+ formatBatchForUrl(batch) {
210
+ const normalized = batch.trim();
211
+ // Map short season codes to full names
212
+ const seasonMap = {
213
+ W: 'Winter',
214
+ S: 'Summer',
215
+ F: 'Fall',
216
+ SP: 'Spring',
217
+ };
218
+ // Helper to get season name from code
219
+ const getSeasonName = (code) => {
220
+ const upper = code.toUpperCase();
221
+ return seasonMap[upper];
222
+ };
223
+ // Pattern 1: "Sp24" or "Sp2024" (Spring - check first since it's 2 chars)
224
+ const springMatch = normalized.match(/^(sp)(\d{2,4})$/i);
225
+ if (springMatch) {
226
+ const [, , year] = springMatch;
227
+ const fullYear = year.length === 2 ? `20${year}` : year;
228
+ return `Spring ${fullYear}`;
229
+ }
230
+ // Pattern 2: Short format "W24", "S24", or "F24"
231
+ const shortMatch = normalized.match(/^([WSF])(\d{2})$/i);
232
+ if (shortMatch) {
233
+ const [, season, yearShort] = shortMatch;
234
+ const seasonName = getSeasonName(season);
235
+ return `${seasonName} 20${yearShort}`;
236
+ }
237
+ // Pattern 3: Short format with full year "W2024", "S2024", or "F2024"
238
+ const shortFullYearMatch = normalized.match(/^([WSF])(\d{4})$/i);
239
+ if (shortFullYearMatch) {
240
+ const [, season, year] = shortFullYearMatch;
241
+ const seasonName = getSeasonName(season);
242
+ return `${seasonName} ${year}`;
243
+ }
244
+ // Pattern 4: Full name with 2-digit year "Winter24", "Summer24", "Fall24", "Spring24"
245
+ const fullNameShortYearMatch = normalized.match(/^(winter|summer|fall|spring)\s*(\d{2})$/i);
246
+ if (fullNameShortYearMatch) {
247
+ const [, season, yearShort] = fullNameShortYearMatch;
248
+ const seasonName = season.charAt(0).toUpperCase() + season.slice(1).toLowerCase();
249
+ return `${seasonName} 20${yearShort}`;
250
+ }
251
+ // Pattern 5: Full name with 4-digit year "Winter2024", "Winter 2024", etc.
252
+ const fullNameFullYearMatch = normalized.match(/^(winter|summer|fall|spring)\s*(\d{4})$/i);
253
+ if (fullNameFullYearMatch) {
254
+ const [, season, year] = fullNameFullYearMatch;
255
+ const seasonName = season.charAt(0).toUpperCase() + season.slice(1).toLowerCase();
256
+ return `${seasonName} ${year}`;
257
+ }
258
+ // No pattern matched - return as-is
259
+ return batch;
260
+ }
261
+ /**
262
+ * Create an error result
263
+ */
264
+ createErrorResult(errorMessage) {
265
+ return {
266
+ people: [],
267
+ companies: [],
268
+ totalPeople: 0,
269
+ totalCompanies: 0,
270
+ batch: this.params.batch?.toUpperCase() || null,
271
+ url: this.params.url || null,
272
+ success: false,
273
+ error: errorMessage,
274
+ };
275
+ }
276
+ /**
277
+ * Transform Apify companies to our format
278
+ */
279
+ transformCompanies(items) {
280
+ return items.map((company) => ({
281
+ companyName: company.company_name || null,
282
+ description: company.long_description || company.short_description || null,
283
+ batch: company.batch || null,
284
+ website: company.website || null,
285
+ ycUrl: company.yc_url || null,
286
+ founders: (company.founders || []).map((founder) => ({
287
+ name: founder.name || null,
288
+ title: founder.title || null,
289
+ linkedinUrl: founder.linkedin || null,
290
+ bio: founder.bio || null,
291
+ twitterUrl: founder.x || null,
292
+ })),
293
+ }));
294
+ }
295
+ /**
296
+ * Extract and flatten founders into people array
297
+ */
298
+ extractPeople(items) {
299
+ const people = [];
300
+ for (const company of items) {
301
+ const founders = company.founders || [];
302
+ for (const founder of founders) {
303
+ people.push({
304
+ name: founder.name || null,
305
+ title: founder.title || null,
306
+ currentEmployers: [{ companyName: company.company_name || null }],
307
+ linkedinUrl: founder.linkedin || null,
308
+ twitterUrl: founder.x || null,
309
+ bio: founder.bio || null,
310
+ emails: null, // YC scraper doesn't provide emails
311
+ });
312
+ }
313
+ }
314
+ return people;
315
+ }
316
+ }
317
+ //# sourceMappingURL=yc-scraper-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yc-scraper-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/yc-scraper-tool.ts"],"names":[],"mappings":"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"}
@@ -17,11 +17,11 @@ declare const YouTubeVideoSchema: z.ZodObject<{
17
17
  comments: z.ZodNullable<z.ZodNumber>;
18
18
  thumbnail: z.ZodNullable<z.ZodString>;
19
19
  }, "strip", z.ZodTypeAny, {
20
+ duration: string | null;
20
21
  description: string | null;
21
22
  title: string | null;
22
23
  date: string | null;
23
24
  url: string | null;
24
- duration: string | null;
25
25
  id: string | null;
26
26
  thumbnail: string | null;
27
27
  comments: number | null;
@@ -31,11 +31,11 @@ declare const YouTubeVideoSchema: z.ZodObject<{
31
31
  channelUrl: string | null;
32
32
  subscribers: number | null;
33
33
  }, {
34
+ duration: string | null;
34
35
  description: string | null;
35
36
  title: string | null;
36
37
  date: string | null;
37
38
  url: string | null;
38
- duration: string | null;
39
39
  id: string | null;
40
40
  thumbnail: string | null;
41
41
  comments: number | null;
@@ -103,11 +103,11 @@ declare const YouTubeToolResultSchema: z.ZodObject<{
103
103
  comments: z.ZodNullable<z.ZodNumber>;
104
104
  thumbnail: z.ZodNullable<z.ZodString>;
105
105
  }, "strip", z.ZodTypeAny, {
106
+ duration: string | null;
106
107
  description: string | null;
107
108
  title: string | null;
108
109
  date: string | null;
109
110
  url: string | null;
110
- duration: string | null;
111
111
  id: string | null;
112
112
  thumbnail: string | null;
113
113
  comments: number | null;
@@ -117,11 +117,11 @@ declare const YouTubeToolResultSchema: z.ZodObject<{
117
117
  channelUrl: string | null;
118
118
  subscribers: number | null;
119
119
  }, {
120
+ duration: string | null;
120
121
  description: string | null;
121
122
  title: string | null;
122
123
  date: string | null;
123
124
  url: string | null;
124
- duration: string | null;
125
125
  id: string | null;
126
126
  thumbnail: string | null;
127
127
  comments: number | null;
@@ -154,11 +154,11 @@ declare const YouTubeToolResultSchema: z.ZodObject<{
154
154
  operation: "searchVideos" | "getTranscript" | "scrapeChannel";
155
155
  totalResults: number;
156
156
  videos?: {
157
+ duration: string | null;
157
158
  description: string | null;
158
159
  title: string | null;
159
160
  date: string | null;
160
161
  url: string | null;
161
- duration: string | null;
162
162
  id: string | null;
163
163
  thumbnail: string | null;
164
164
  comments: number | null;
@@ -180,11 +180,11 @@ declare const YouTubeToolResultSchema: z.ZodObject<{
180
180
  operation: "searchVideos" | "getTranscript" | "scrapeChannel";
181
181
  totalResults: number;
182
182
  videos?: {
183
+ duration: string | null;
183
184
  description: string | null;
184
185
  title: string | null;
185
186
  date: string | null;
186
187
  url: string | null;
187
- duration: string | null;
188
188
  id: string | null;
189
189
  thumbnail: string | null;
190
190
  comments: number | null;
@@ -261,11 +261,11 @@ export declare class YouTubeTool extends ToolBubble<YouTubeToolParams, YouTubeTo
261
261
  comments: z.ZodNullable<z.ZodNumber>;
262
262
  thumbnail: z.ZodNullable<z.ZodString>;
263
263
  }, "strip", z.ZodTypeAny, {
264
+ duration: string | null;
264
265
  description: string | null;
265
266
  title: string | null;
266
267
  date: string | null;
267
268
  url: string | null;
268
- duration: string | null;
269
269
  id: string | null;
270
270
  thumbnail: string | null;
271
271
  comments: number | null;
@@ -275,11 +275,11 @@ export declare class YouTubeTool extends ToolBubble<YouTubeToolParams, YouTubeTo
275
275
  channelUrl: string | null;
276
276
  subscribers: number | null;
277
277
  }, {
278
+ duration: string | null;
278
279
  description: string | null;
279
280
  title: string | null;
280
281
  date: string | null;
281
282
  url: string | null;
282
- duration: string | null;
283
283
  id: string | null;
284
284
  thumbnail: string | null;
285
285
  comments: number | null;
@@ -312,11 +312,11 @@ export declare class YouTubeTool extends ToolBubble<YouTubeToolParams, YouTubeTo
312
312
  operation: "searchVideos" | "getTranscript" | "scrapeChannel";
313
313
  totalResults: number;
314
314
  videos?: {
315
+ duration: string | null;
315
316
  description: string | null;
316
317
  title: string | null;
317
318
  date: string | null;
318
319
  url: string | null;
319
- duration: string | null;
320
320
  id: string | null;
321
321
  thumbnail: string | null;
322
322
  comments: number | null;
@@ -338,11 +338,11 @@ export declare class YouTubeTool extends ToolBubble<YouTubeToolParams, YouTubeTo
338
338
  operation: "searchVideos" | "getTranscript" | "scrapeChannel";
339
339
  totalResults: number;
340
340
  videos?: {
341
+ duration: string | null;
341
342
  description: string | null;
342
343
  title: string | null;
343
344
  date: string | null;
344
345
  url: string | null;
345
- duration: string | null;
346
346
  id: string | null;
347
347
  thumbnail: string | null;
348
348
  comments: number | null;