@bubblelab/bubble-core 0.1.99 → 0.1.101
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.
- package/dist/bubble-bundle.d.ts +166 -126
- package/dist/bubble-factory.d.ts.map +1 -1
- package/dist/bubble-factory.js +4 -0
- package/dist/bubble-factory.js.map +1 -1
- package/dist/bubbles/service-bubble/agi-inc.d.ts +56 -56
- package/dist/bubbles/service-bubble/ai-agent.d.ts +74 -74
- package/dist/bubbles/service-bubble/airtable.d.ts +98 -98
- package/dist/bubbles/service-bubble/apify/apify.d.ts +30 -30
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +68 -68
- package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +92 -92
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +22 -22
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +28 -28
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +155 -155
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +158 -158
- package/dist/bubbles/service-bubble/eleven-labs.d.ts +32 -32
- package/dist/bubbles/service-bubble/firecrawl.d.ts +388 -388
- package/dist/bubbles/service-bubble/followupboss.d.ts +376 -376
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +78 -78
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.schema.d.ts +108 -108
- package/dist/bubbles/service-bubble/github.d.ts +140 -140
- package/dist/bubbles/service-bubble/gmail.d.ts +172 -172
- package/dist/bubbles/service-bubble/google-calendar.d.ts +36 -36
- package/dist/bubbles/service-bubble/google-drive.d.ts +84 -84
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +22 -22
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +32 -32
- package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
- package/dist/bubbles/service-bubble/http.d.ts +8 -8
- package/dist/bubbles/service-bubble/insforge-db.d.ts +12 -12
- package/dist/bubbles/service-bubble/jira/jira.d.ts +36 -36
- package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +70 -70
- package/dist/bubbles/service-bubble/notion/notion.d.ts +126 -126
- package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
- package/dist/bubbles/service-bubble/resend.d.ts +12 -12
- package/dist/bubbles/service-bubble/slack/slack.d.ts +633 -633
- package/dist/bubbles/service-bubble/storage.d.ts +20 -20
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +68 -68
- package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +141 -141
- package/dist/bubbles/service-bubble/telegram.d.ts +976 -976
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +22 -22
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +15 -15
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +52 -52
- package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +40 -40
- package/dist/bubbles/tool-bubble/instagram-tool.d.ts +38 -38
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.d.ts +2 -2
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +475 -475
- package/dist/bubbles/tool-bubble/list-airtable-bases-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/list-airtable-tables-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +166 -166
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +42 -42
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +68 -68
- package/dist/bubbles/tool-bubble/tool-template.d.ts +4 -4
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +194 -194
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +18 -18
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +12 -12
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +516 -0
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/yc-scraper-tool.js +317 -0
- package/dist/bubbles/tool-bubble/yc-scraper-tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +38 -38
- package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +16 -16
- package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +40 -40
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +24 -24
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +8 -8
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +28 -28
- package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +4 -4
- package/dist/bubbles.json +244 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -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,28 +17,28 @@ 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
|
-
|
|
20
|
+
url: string | null;
|
|
21
21
|
description: string | null;
|
|
22
22
|
title: string | null;
|
|
23
23
|
date: string | null;
|
|
24
|
-
|
|
24
|
+
duration: string | null;
|
|
25
25
|
id: string | null;
|
|
26
|
-
thumbnail: string | null;
|
|
27
26
|
comments: number | null;
|
|
27
|
+
thumbnail: string | null;
|
|
28
28
|
viewCount: number | null;
|
|
29
29
|
likes: number | null;
|
|
30
30
|
channelName: string | null;
|
|
31
31
|
channelUrl: string | null;
|
|
32
32
|
subscribers: number | null;
|
|
33
33
|
}, {
|
|
34
|
-
|
|
34
|
+
url: string | null;
|
|
35
35
|
description: string | null;
|
|
36
36
|
title: string | null;
|
|
37
37
|
date: string | null;
|
|
38
|
-
|
|
38
|
+
duration: string | null;
|
|
39
39
|
id: string | null;
|
|
40
|
-
thumbnail: string | null;
|
|
41
40
|
comments: number | null;
|
|
41
|
+
thumbnail: string | null;
|
|
42
42
|
viewCount: number | null;
|
|
43
43
|
likes: number | null;
|
|
44
44
|
channelName: string | null;
|
|
@@ -70,18 +70,18 @@ declare const YouTubeToolParamsSchema: z.ZodObject<{
|
|
|
70
70
|
}, "strip", z.ZodTypeAny, {
|
|
71
71
|
operation: "searchVideos" | "getTranscript" | "scrapeChannel";
|
|
72
72
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
73
|
-
maxResults?: number | undefined;
|
|
74
73
|
videoUrl?: string | undefined;
|
|
75
74
|
searchQueries?: string[] | undefined;
|
|
75
|
+
maxResults?: number | undefined;
|
|
76
76
|
channelUrl?: string | undefined;
|
|
77
77
|
videoUrls?: string[] | undefined;
|
|
78
78
|
includeShorts?: boolean | undefined;
|
|
79
79
|
}, {
|
|
80
80
|
operation: "searchVideos" | "getTranscript" | "scrapeChannel";
|
|
81
81
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
82
|
-
maxResults?: number | undefined;
|
|
83
82
|
videoUrl?: string | undefined;
|
|
84
83
|
searchQueries?: string[] | undefined;
|
|
84
|
+
maxResults?: number | undefined;
|
|
85
85
|
channelUrl?: string | undefined;
|
|
86
86
|
videoUrls?: string[] | undefined;
|
|
87
87
|
includeShorts?: boolean | undefined;
|
|
@@ -103,28 +103,28 @@ 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
|
-
|
|
106
|
+
url: string | null;
|
|
107
107
|
description: string | null;
|
|
108
108
|
title: string | null;
|
|
109
109
|
date: string | null;
|
|
110
|
-
|
|
110
|
+
duration: string | null;
|
|
111
111
|
id: string | null;
|
|
112
|
-
thumbnail: string | null;
|
|
113
112
|
comments: number | null;
|
|
113
|
+
thumbnail: string | null;
|
|
114
114
|
viewCount: number | null;
|
|
115
115
|
likes: number | null;
|
|
116
116
|
channelName: string | null;
|
|
117
117
|
channelUrl: string | null;
|
|
118
118
|
subscribers: number | null;
|
|
119
119
|
}, {
|
|
120
|
-
|
|
120
|
+
url: string | null;
|
|
121
121
|
description: string | null;
|
|
122
122
|
title: string | null;
|
|
123
123
|
date: string | null;
|
|
124
|
-
|
|
124
|
+
duration: string | null;
|
|
125
125
|
id: string | null;
|
|
126
|
-
thumbnail: string | null;
|
|
127
126
|
comments: number | null;
|
|
127
|
+
thumbnail: string | null;
|
|
128
128
|
viewCount: number | null;
|
|
129
129
|
likes: number | null;
|
|
130
130
|
channelName: string | null;
|
|
@@ -149,19 +149,19 @@ declare const YouTubeToolResultSchema: z.ZodObject<{
|
|
|
149
149
|
success: z.ZodBoolean;
|
|
150
150
|
error: z.ZodString;
|
|
151
151
|
}, "strip", z.ZodTypeAny, {
|
|
152
|
-
error: string;
|
|
153
152
|
success: boolean;
|
|
153
|
+
error: string;
|
|
154
154
|
operation: "searchVideos" | "getTranscript" | "scrapeChannel";
|
|
155
155
|
totalResults: number;
|
|
156
156
|
videos?: {
|
|
157
|
-
|
|
157
|
+
url: string | null;
|
|
158
158
|
description: string | null;
|
|
159
159
|
title: string | null;
|
|
160
160
|
date: string | null;
|
|
161
|
-
|
|
161
|
+
duration: string | null;
|
|
162
162
|
id: string | null;
|
|
163
|
-
thumbnail: string | null;
|
|
164
163
|
comments: number | null;
|
|
164
|
+
thumbnail: string | null;
|
|
165
165
|
viewCount: number | null;
|
|
166
166
|
likes: number | null;
|
|
167
167
|
channelName: string | null;
|
|
@@ -175,19 +175,19 @@ declare const YouTubeToolResultSchema: z.ZodObject<{
|
|
|
175
175
|
}[] | undefined;
|
|
176
176
|
fullTranscriptText?: string | undefined;
|
|
177
177
|
}, {
|
|
178
|
-
error: string;
|
|
179
178
|
success: boolean;
|
|
179
|
+
error: string;
|
|
180
180
|
operation: "searchVideos" | "getTranscript" | "scrapeChannel";
|
|
181
181
|
totalResults: number;
|
|
182
182
|
videos?: {
|
|
183
|
-
|
|
183
|
+
url: string | null;
|
|
184
184
|
description: string | null;
|
|
185
185
|
title: string | null;
|
|
186
186
|
date: string | null;
|
|
187
|
-
|
|
187
|
+
duration: string | null;
|
|
188
188
|
id: string | null;
|
|
189
|
-
thumbnail: string | null;
|
|
190
189
|
comments: number | null;
|
|
190
|
+
thumbnail: string | null;
|
|
191
191
|
viewCount: number | null;
|
|
192
192
|
likes: number | null;
|
|
193
193
|
channelName: string | null;
|
|
@@ -228,18 +228,18 @@ export declare class YouTubeTool extends ToolBubble<YouTubeToolParams, YouTubeTo
|
|
|
228
228
|
}, "strip", z.ZodTypeAny, {
|
|
229
229
|
operation: "searchVideos" | "getTranscript" | "scrapeChannel";
|
|
230
230
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
231
|
-
maxResults?: number | undefined;
|
|
232
231
|
videoUrl?: string | undefined;
|
|
233
232
|
searchQueries?: string[] | undefined;
|
|
233
|
+
maxResults?: number | undefined;
|
|
234
234
|
channelUrl?: string | undefined;
|
|
235
235
|
videoUrls?: string[] | undefined;
|
|
236
236
|
includeShorts?: boolean | undefined;
|
|
237
237
|
}, {
|
|
238
238
|
operation: "searchVideos" | "getTranscript" | "scrapeChannel";
|
|
239
239
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
240
|
-
maxResults?: number | undefined;
|
|
241
240
|
videoUrl?: string | undefined;
|
|
242
241
|
searchQueries?: string[] | undefined;
|
|
242
|
+
maxResults?: number | undefined;
|
|
243
243
|
channelUrl?: string | undefined;
|
|
244
244
|
videoUrls?: string[] | undefined;
|
|
245
245
|
includeShorts?: boolean | undefined;
|
|
@@ -261,28 +261,28 @@ 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
|
-
|
|
264
|
+
url: string | null;
|
|
265
265
|
description: string | null;
|
|
266
266
|
title: string | null;
|
|
267
267
|
date: string | null;
|
|
268
|
-
|
|
268
|
+
duration: string | null;
|
|
269
269
|
id: string | null;
|
|
270
|
-
thumbnail: string | null;
|
|
271
270
|
comments: number | null;
|
|
271
|
+
thumbnail: string | null;
|
|
272
272
|
viewCount: number | null;
|
|
273
273
|
likes: number | null;
|
|
274
274
|
channelName: string | null;
|
|
275
275
|
channelUrl: string | null;
|
|
276
276
|
subscribers: number | null;
|
|
277
277
|
}, {
|
|
278
|
-
|
|
278
|
+
url: string | null;
|
|
279
279
|
description: string | null;
|
|
280
280
|
title: string | null;
|
|
281
281
|
date: string | null;
|
|
282
|
-
|
|
282
|
+
duration: string | null;
|
|
283
283
|
id: string | null;
|
|
284
|
-
thumbnail: string | null;
|
|
285
284
|
comments: number | null;
|
|
285
|
+
thumbnail: string | null;
|
|
286
286
|
viewCount: number | null;
|
|
287
287
|
likes: number | null;
|
|
288
288
|
channelName: string | null;
|
|
@@ -307,19 +307,19 @@ export declare class YouTubeTool extends ToolBubble<YouTubeToolParams, YouTubeTo
|
|
|
307
307
|
success: z.ZodBoolean;
|
|
308
308
|
error: z.ZodString;
|
|
309
309
|
}, "strip", z.ZodTypeAny, {
|
|
310
|
-
error: string;
|
|
311
310
|
success: boolean;
|
|
311
|
+
error: string;
|
|
312
312
|
operation: "searchVideos" | "getTranscript" | "scrapeChannel";
|
|
313
313
|
totalResults: number;
|
|
314
314
|
videos?: {
|
|
315
|
-
|
|
315
|
+
url: string | null;
|
|
316
316
|
description: string | null;
|
|
317
317
|
title: string | null;
|
|
318
318
|
date: string | null;
|
|
319
|
-
|
|
319
|
+
duration: string | null;
|
|
320
320
|
id: string | null;
|
|
321
|
-
thumbnail: string | null;
|
|
322
321
|
comments: number | null;
|
|
322
|
+
thumbnail: string | null;
|
|
323
323
|
viewCount: number | null;
|
|
324
324
|
likes: number | null;
|
|
325
325
|
channelName: string | null;
|
|
@@ -333,19 +333,19 @@ export declare class YouTubeTool extends ToolBubble<YouTubeToolParams, YouTubeTo
|
|
|
333
333
|
}[] | undefined;
|
|
334
334
|
fullTranscriptText?: string | undefined;
|
|
335
335
|
}, {
|
|
336
|
-
error: string;
|
|
337
336
|
success: boolean;
|
|
337
|
+
error: string;
|
|
338
338
|
operation: "searchVideos" | "getTranscript" | "scrapeChannel";
|
|
339
339
|
totalResults: number;
|
|
340
340
|
videos?: {
|
|
341
|
-
|
|
341
|
+
url: string | null;
|
|
342
342
|
description: string | null;
|
|
343
343
|
title: string | null;
|
|
344
344
|
date: string | null;
|
|
345
|
-
|
|
345
|
+
duration: string | null;
|
|
346
346
|
id: string | null;
|
|
347
|
-
thumbnail: string | null;
|
|
348
347
|
comments: number | null;
|
|
348
|
+
thumbnail: string | null;
|
|
349
349
|
viewCount: number | null;
|
|
350
350
|
likes: number | null;
|
|
351
351
|
channelName: string | null;
|
|
@@ -107,8 +107,8 @@ declare const DatabaseAnalyzerResultSchema: z.ZodObject<{
|
|
|
107
107
|
analysisTimestamp: Date;
|
|
108
108
|
}>>;
|
|
109
109
|
}, "strip", z.ZodTypeAny, {
|
|
110
|
-
error: string;
|
|
111
110
|
success: boolean;
|
|
111
|
+
error: string;
|
|
112
112
|
databaseSchema?: {
|
|
113
113
|
rawData?: Record<string, unknown>[] | undefined;
|
|
114
114
|
cleanedJSON?: string | undefined;
|
|
@@ -121,8 +121,8 @@ declare const DatabaseAnalyzerResultSchema: z.ZodObject<{
|
|
|
121
121
|
analysisTimestamp: Date;
|
|
122
122
|
} | undefined;
|
|
123
123
|
}, {
|
|
124
|
-
error: string;
|
|
125
124
|
success: boolean;
|
|
125
|
+
error: string;
|
|
126
126
|
databaseSchema?: {
|
|
127
127
|
rawData?: Record<string, unknown>[] | undefined;
|
|
128
128
|
cleanedJSON?: string | undefined;
|
|
@@ -261,8 +261,8 @@ export declare class DatabaseAnalyzerWorkflowBubble extends WorkflowBubble<Datab
|
|
|
261
261
|
analysisTimestamp: Date;
|
|
262
262
|
}>>;
|
|
263
263
|
}, "strip", z.ZodTypeAny, {
|
|
264
|
-
error: string;
|
|
265
264
|
success: boolean;
|
|
265
|
+
error: string;
|
|
266
266
|
databaseSchema?: {
|
|
267
267
|
rawData?: Record<string, unknown>[] | undefined;
|
|
268
268
|
cleanedJSON?: string | undefined;
|
|
@@ -275,8 +275,8 @@ export declare class DatabaseAnalyzerWorkflowBubble extends WorkflowBubble<Datab
|
|
|
275
275
|
analysisTimestamp: Date;
|
|
276
276
|
} | undefined;
|
|
277
277
|
}, {
|
|
278
|
-
error: string;
|
|
279
278
|
success: boolean;
|
|
279
|
+
error: string;
|
|
280
280
|
databaseSchema?: {
|
|
281
281
|
rawData?: Record<string, unknown>[] | undefined;
|
|
282
282
|
cleanedJSON?: string | undefined;
|