@bubblelab/bubble-core 0.1.22 → 0.1.23
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 +180 -77
- package/dist/bubble-factory.d.ts.map +1 -1
- package/dist/bubble-factory.js +10 -2
- package/dist/bubble-factory.js.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.d.ts +4 -4
- package/dist/bubbles/service-bubble/airtable.d.ts +82 -82
- package/dist/bubbles/service-bubble/apify/apify.d.ts +4 -4
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +8 -8
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +2784 -0
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/crustdata/crustdata.js +338 -0
- package/dist/bubbles/service-bubble/crustdata/crustdata.js.map +1 -0
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +3995 -0
- package/dist/bubbles/service-bubble/{slack/slack.schema.d.ts.map → crustdata/crustdata.schema.d.ts.map} +1 -1
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js +425 -0
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js.map +1 -0
- package/dist/bubbles/service-bubble/crustdata/index.d.ts +3 -0
- package/dist/bubbles/service-bubble/crustdata/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/crustdata/index.js +5 -0
- package/dist/bubbles/service-bubble/crustdata/index.js.map +1 -0
- package/dist/bubbles/service-bubble/eleven-labs.d.ts +8 -8
- package/dist/bubbles/service-bubble/firecrawl.d.ts +308 -308
- package/dist/bubbles/service-bubble/followupboss.d.ts +236 -236
- package/dist/bubbles/service-bubble/github.d.ts +84 -84
- package/dist/bubbles/service-bubble/gmail.d.ts +439 -439
- package/dist/bubbles/service-bubble/google-calendar.d.ts +100 -100
- package/dist/bubbles/service-bubble/google-drive.d.ts +26 -26
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +10 -10
- package/dist/bubbles/service-bubble/http.d.ts +20 -20
- package/dist/bubbles/service-bubble/insforge-db.d.ts +6 -6
- package/dist/bubbles/service-bubble/notion/notion.d.ts +480 -480
- package/dist/bubbles/service-bubble/postgresql.d.ts +6 -6
- package/dist/bubbles/service-bubble/resend.d.ts +4 -4
- package/dist/bubbles/service-bubble/slack/slack.d.ts +148 -148
- package/dist/bubbles/service-bubble/storage.d.ts +20 -20
- package/dist/bubbles/service-bubble/telegram.d.ts +1276 -1276
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +6 -6
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +740 -0
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/company-enrichment-tool.js +351 -0
- package/dist/bubbles/tool-bubble/company-enrichment-tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +20 -20
- package/dist/bubbles/tool-bubble/instagram-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +122 -122
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +934 -0
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/people-search-tool.js +675 -0
- package/dist/bubbles/tool-bubble/people-search-tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +12 -12
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts +12 -12
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +16 -16
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +8 -8
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +4 -4
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +64 -64
- package/dist/bubbles.json +40 -2
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/schema-comparison.d.ts +16 -0
- package/dist/utils/schema-comparison.d.ts.map +1 -1
- package/dist/utils/schema-comparison.js +98 -6
- package/dist/utils/schema-comparison.js.map +1 -1
- package/package.json +2 -2
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +0 -31
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +0 -184
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +0 -1
- package/dist/bubbles/service-bubble/slack/slack.schema.d.ts +0 -3980
- package/dist/bubbles/service-bubble/slack/slack.schema.js +0 -1061
- package/dist/bubbles/service-bubble/slack/slack.schema.js.map +0 -1
- package/dist/bubbles/service-bubble/slack.d.ts +0 -2
- package/dist/bubbles/service-bubble/slack.d.ts.map +0 -1
- package/dist/bubbles/service-bubble/slack.js +0 -3
- package/dist/bubbles/service-bubble/slack.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company-enrichment-tool.d.ts","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/company-enrichment-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAQ5E,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEjB,CAAC;AAkBH,QAAA,MAAM,iCAAiC;;;;;;;;;;;;EAiBrC,CAAC;AAGH,QAAA,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrC,CAAC;AAGH,KAAK,2BAA2B,GAAG,CAAC,CAAC,MAAM,CACzC,OAAO,iCAAiC,CACzC,CAAC;AACF,KAAK,2BAA2B,GAAG,CAAC,CAAC,MAAM,CACzC,OAAO,iCAAiC,CACzC,CAAC;AACF,KAAK,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,iCAAiC,CACzC,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AACrD,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,qBAAsB,SAAQ,UAAU,CACnD,2BAA2B,EAC3B,2BAA2B,CAC5B;IACC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAA6B;IACnE,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;OAAqC;IAC3D,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAqC;IACjE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,yFACwD;IACxF,MAAM,CAAC,QAAQ,CAAC,eAAe,qzCAqC7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,YAAY;IACjC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;gBAG5B,MAAM,GAAE,gCAG6B,EACrC,OAAO,CAAC,EAAE,aAAa;IAKnB,aAAa,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAwF3D;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAmCzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgDxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAS1B"}
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ToolBubble } from '../../types/tool-bubble-class.js';
|
|
3
|
+
import { CredentialType } from '@bubblelab/shared-schemas';
|
|
4
|
+
import { CrustdataBubble, } from '../service-bubble/crustdata/index.js';
|
|
5
|
+
// Contact schema with full profile information
|
|
6
|
+
const ContactSchema = z.object({
|
|
7
|
+
// Basic info
|
|
8
|
+
name: z.string().nullable().describe('Full name'),
|
|
9
|
+
title: z.string().nullable().describe('Current job title'),
|
|
10
|
+
headline: z.string().nullable().describe('LinkedIn headline'),
|
|
11
|
+
linkedinUrl: z.string().nullable().describe('LinkedIn profile URL'),
|
|
12
|
+
profilePictureUrl: z.string().nullable().describe('Profile picture URL'),
|
|
13
|
+
// Contact info
|
|
14
|
+
emails: z.array(z.string()).nullable().describe('Email addresses'),
|
|
15
|
+
twitterHandle: z.string().nullable().describe('Twitter/X handle'),
|
|
16
|
+
// Classification (CXOs prioritized)
|
|
17
|
+
role: z
|
|
18
|
+
.enum(['cxo', 'decision_maker', 'founder'])
|
|
19
|
+
.describe('Role classification'),
|
|
20
|
+
// Location
|
|
21
|
+
location: z.string().nullable().describe('Location'),
|
|
22
|
+
// Professional background
|
|
23
|
+
skills: z.array(z.string()).nullable().describe('Professional skills'),
|
|
24
|
+
languages: z.array(z.string()).nullable().describe('Languages spoken'),
|
|
25
|
+
summary: z.string().nullable().describe('Professional summary'),
|
|
26
|
+
// Work history
|
|
27
|
+
currentEmployment: z
|
|
28
|
+
.array(z.object({
|
|
29
|
+
title: z.string().nullable().describe('Job title'),
|
|
30
|
+
companyName: z.string().nullable().describe('Company name'),
|
|
31
|
+
companyLinkedinUrl: z
|
|
32
|
+
.string()
|
|
33
|
+
.nullable()
|
|
34
|
+
.describe('Company LinkedIn URL'),
|
|
35
|
+
startDate: z.string().nullable().describe('Start date'),
|
|
36
|
+
description: z.string().nullable().describe('Role description'),
|
|
37
|
+
}))
|
|
38
|
+
.nullable()
|
|
39
|
+
.describe('Current employment positions'),
|
|
40
|
+
pastEmployment: z
|
|
41
|
+
.array(z.object({
|
|
42
|
+
title: z.string().nullable().describe('Job title'),
|
|
43
|
+
companyName: z.string().nullable().describe('Company name'),
|
|
44
|
+
startDate: z.string().nullable().describe('Start date'),
|
|
45
|
+
endDate: z.string().nullable().describe('End date'),
|
|
46
|
+
}))
|
|
47
|
+
.nullable()
|
|
48
|
+
.describe('Past employment positions'),
|
|
49
|
+
// Education
|
|
50
|
+
education: z
|
|
51
|
+
.array(z.object({
|
|
52
|
+
instituteName: z.string().nullable().describe('Institution name'),
|
|
53
|
+
degreeName: z.string().nullable().describe('Degree name'),
|
|
54
|
+
fieldOfStudy: z.string().nullable().describe('Field of study'),
|
|
55
|
+
}))
|
|
56
|
+
.nullable()
|
|
57
|
+
.describe('Education history'),
|
|
58
|
+
});
|
|
59
|
+
// Company info schema for the result
|
|
60
|
+
const CompanyInfoOutputSchema = z.object({
|
|
61
|
+
name: z.string().nullable().describe('Company name'),
|
|
62
|
+
linkedinUrl: z.string().nullable().describe('Company LinkedIn URL'),
|
|
63
|
+
website: z.string().nullable().describe('Company website'),
|
|
64
|
+
industry: z.string().nullable().describe('Industry'),
|
|
65
|
+
description: z.string().nullable().describe('Company description'),
|
|
66
|
+
headcount: z.number().nullable().describe('Employee count'),
|
|
67
|
+
hqCity: z.string().nullable().describe('Headquarters city'),
|
|
68
|
+
hqCountry: z.string().nullable().describe('Headquarters country'),
|
|
69
|
+
yearFounded: z.number().nullable().describe('Year founded'),
|
|
70
|
+
fundingStage: z.string().nullable().describe('Funding stage'),
|
|
71
|
+
totalFunding: z.string().nullable().describe('Total funding raised'),
|
|
72
|
+
});
|
|
73
|
+
// Tool parameters - simple, agent-friendly interface
|
|
74
|
+
const CompanyEnrichmentToolParamsSchema = z.object({
|
|
75
|
+
companyIdentifier: z
|
|
76
|
+
.string()
|
|
77
|
+
.min(1)
|
|
78
|
+
.describe('Company name, domain (e.g., "stripe.com"), or LinkedIn URL. Auto-detects type.'),
|
|
79
|
+
limit: z
|
|
80
|
+
.number()
|
|
81
|
+
.max(50)
|
|
82
|
+
.default(10)
|
|
83
|
+
.optional()
|
|
84
|
+
.describe('Maximum contacts to return (default: 10)'),
|
|
85
|
+
credentials: z
|
|
86
|
+
.record(z.nativeEnum(CredentialType), z.string())
|
|
87
|
+
.optional()
|
|
88
|
+
.describe('Required credentials (auto-injected)'),
|
|
89
|
+
});
|
|
90
|
+
// Tool result schema
|
|
91
|
+
const CompanyEnrichmentToolResultSchema = z.object({
|
|
92
|
+
contacts: z.array(ContactSchema).describe('List of contacts at the company'),
|
|
93
|
+
company: CompanyInfoOutputSchema.nullable().describe('Company information'),
|
|
94
|
+
totalContacts: z.number().describe('Total number of contacts found'),
|
|
95
|
+
success: z.boolean().describe('Whether the operation was successful'),
|
|
96
|
+
error: z.string().describe('Error message if operation failed'),
|
|
97
|
+
});
|
|
98
|
+
/**
|
|
99
|
+
* Company Enrichment Tool
|
|
100
|
+
*
|
|
101
|
+
* Agent-friendly tool for company enrichment and lead generation.
|
|
102
|
+
* Takes a simple company identifier (name, domain, or LinkedIn URL)
|
|
103
|
+
* and returns key contacts with full profiles.
|
|
104
|
+
*
|
|
105
|
+
* Features:
|
|
106
|
+
* - Auto-detects identifier type (name, domain, LinkedIn URL)
|
|
107
|
+
* - Returns CXOs, decision makers, and founders
|
|
108
|
+
* - Full contact profiles with work history and education
|
|
109
|
+
* - Prioritized results (CXOs first, then decision makers, then founders)
|
|
110
|
+
*
|
|
111
|
+
* Uses CrustdataBubble under the hood with a two-step process:
|
|
112
|
+
* 1. Identify company (FREE) to get company_id
|
|
113
|
+
* 2. Enrich company (1 credit) to get contacts
|
|
114
|
+
*/
|
|
115
|
+
export class CompanyEnrichmentTool extends ToolBubble {
|
|
116
|
+
static bubbleName = 'company-enrichment-tool';
|
|
117
|
+
static schema = CompanyEnrichmentToolParamsSchema;
|
|
118
|
+
static resultSchema = CompanyEnrichmentToolResultSchema;
|
|
119
|
+
static shortDescription = 'Get key contacts (executives, decision makers) from any company for lead generation';
|
|
120
|
+
static longDescription = `
|
|
121
|
+
Company enrichment tool for lead generation and sales prospecting.
|
|
122
|
+
|
|
123
|
+
**SIMPLE INTERFACE:**
|
|
124
|
+
Just provide a company name, domain, or LinkedIn URL to get key contacts.
|
|
125
|
+
The tool automatically:
|
|
126
|
+
- Detects the identifier type
|
|
127
|
+
- Identifies the company
|
|
128
|
+
- Enriches with contact data
|
|
129
|
+
- Returns prioritized contacts (CXOs first)
|
|
130
|
+
|
|
131
|
+
**WHAT YOU GET:**
|
|
132
|
+
- Contact names and titles
|
|
133
|
+
- LinkedIn profiles and email addresses
|
|
134
|
+
- Work history and education
|
|
135
|
+
- Skills and professional summary
|
|
136
|
+
|
|
137
|
+
**CONTACT TYPES (prioritized):**
|
|
138
|
+
1. CXOs - C-level executives (CEO, CTO, CFO, etc.)
|
|
139
|
+
2. Decision makers - VP, Director, Head of, etc.
|
|
140
|
+
3. Founders - Company founders
|
|
141
|
+
|
|
142
|
+
**USE CASES:**
|
|
143
|
+
- Sales prospecting - find decision makers to reach out to
|
|
144
|
+
- Lead generation - build contact lists for outreach
|
|
145
|
+
- Company research - understand company leadership
|
|
146
|
+
- Competitive intelligence - track competitor executives
|
|
147
|
+
- Partnership opportunities - find the right contacts
|
|
148
|
+
|
|
149
|
+
**EXAMPLES:**
|
|
150
|
+
- "stripe.com" - get contacts from Stripe
|
|
151
|
+
- "Anthropic" - search by company name
|
|
152
|
+
- "https://www.linkedin.com/company/openai" - use LinkedIn URL
|
|
153
|
+
|
|
154
|
+
**CREDITS:**
|
|
155
|
+
- Identify operation: FREE
|
|
156
|
+
- Enrich operation: 1 credit per company
|
|
157
|
+
`;
|
|
158
|
+
static alias = 'enrich';
|
|
159
|
+
static type = 'tool';
|
|
160
|
+
constructor(params = {
|
|
161
|
+
companyIdentifier: 'stripe.com',
|
|
162
|
+
limit: 10,
|
|
163
|
+
}, context) {
|
|
164
|
+
super(params, context);
|
|
165
|
+
}
|
|
166
|
+
async performAction() {
|
|
167
|
+
const credentials = this.params?.credentials;
|
|
168
|
+
if (!credentials || !credentials[CredentialType.CRUSTDATA_API_KEY]) {
|
|
169
|
+
return this.createErrorResult('Company enrichment requires CRUSTDATA_API_KEY credential. Please configure it in your settings.');
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
const { companyIdentifier, limit = 10 } = this.params;
|
|
173
|
+
// Step 1: Detect identifier type and identify company
|
|
174
|
+
const identifierType = this.detectIdentifierType(companyIdentifier);
|
|
175
|
+
const identifyParams = this.buildIdentifyParams(identifierType, companyIdentifier);
|
|
176
|
+
const identifyBubble = new CrustdataBubble({
|
|
177
|
+
operation: 'identify',
|
|
178
|
+
...identifyParams,
|
|
179
|
+
credentials,
|
|
180
|
+
}, this.context);
|
|
181
|
+
const identifyResult = await identifyBubble.action();
|
|
182
|
+
if (!identifyResult.data.success) {
|
|
183
|
+
return this.createErrorResult(`Failed to identify company: ${identifyResult.data.error}`);
|
|
184
|
+
}
|
|
185
|
+
const results = identifyResult.data.results || [];
|
|
186
|
+
if (results.length === 0 || !results[0]?.company_id) {
|
|
187
|
+
return this.createErrorResult(`No company found matching "${companyIdentifier}". Try using a domain (e.g., "stripe.com") or LinkedIn URL for better results.`);
|
|
188
|
+
}
|
|
189
|
+
const companyId = results[0].company_id;
|
|
190
|
+
// Step 2: Enrich company to get contacts
|
|
191
|
+
const enrichBubble = new CrustdataBubble({
|
|
192
|
+
operation: 'enrich',
|
|
193
|
+
company_id: companyId,
|
|
194
|
+
fields: 'decision_makers,cxos,founders.profiles',
|
|
195
|
+
credentials,
|
|
196
|
+
}, this.context);
|
|
197
|
+
const enrichResult = await enrichBubble.action();
|
|
198
|
+
if (!enrichResult.data.success) {
|
|
199
|
+
return this.createErrorResult(`Failed to enrich company: ${enrichResult.data.error}`);
|
|
200
|
+
}
|
|
201
|
+
console.log('enrichResult.data', enrichResult.data);
|
|
202
|
+
// Step 3: Transform and merge contacts
|
|
203
|
+
const contacts = this.transformContacts(enrichResult.data.cxos || [], enrichResult.data.decision_makers || [], enrichResult.data.founders?.profiles || [], limit);
|
|
204
|
+
const company = this.transformCompanyInfo(enrichResult.data.company);
|
|
205
|
+
return {
|
|
206
|
+
contacts,
|
|
207
|
+
company,
|
|
208
|
+
totalContacts: contacts.length,
|
|
209
|
+
success: true,
|
|
210
|
+
error: '',
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
return this.createErrorResult(error instanceof Error ? error.message : 'Unknown error occurred');
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Detect identifier type from the input string
|
|
219
|
+
*/
|
|
220
|
+
detectIdentifierType(identifier) {
|
|
221
|
+
// LinkedIn URL
|
|
222
|
+
if (identifier.includes('linkedin.com/company') ||
|
|
223
|
+
identifier.includes('linkedin.com/in')) {
|
|
224
|
+
return 'linkedin';
|
|
225
|
+
}
|
|
226
|
+
// Domain: has dot and no spaces, doesn't look like a sentence
|
|
227
|
+
if (identifier.includes('.') && !identifier.includes(' ')) {
|
|
228
|
+
return 'domain';
|
|
229
|
+
}
|
|
230
|
+
// Default to name
|
|
231
|
+
return 'name';
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Build identify params based on identifier type
|
|
235
|
+
*/
|
|
236
|
+
buildIdentifyParams(type, identifier) {
|
|
237
|
+
switch (type) {
|
|
238
|
+
case 'linkedin':
|
|
239
|
+
return { query_company_linkedin_url: identifier };
|
|
240
|
+
case 'domain':
|
|
241
|
+
return { query_company_website: identifier };
|
|
242
|
+
case 'name':
|
|
243
|
+
return { query_company_name: identifier };
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Transform and merge contacts from different sources
|
|
248
|
+
* Priority: CXOs > Decision Makers > Founders
|
|
249
|
+
*/
|
|
250
|
+
transformContacts(cxos, decisionMakers, founders, limit) {
|
|
251
|
+
const contacts = [];
|
|
252
|
+
const seenLinkedInUrls = new Set();
|
|
253
|
+
// Helper to add contacts without duplicates
|
|
254
|
+
const addContacts = (profiles, role) => {
|
|
255
|
+
for (const profile of profiles) {
|
|
256
|
+
if (contacts.length >= limit)
|
|
257
|
+
break;
|
|
258
|
+
// Dedupe by LinkedIn URL
|
|
259
|
+
const linkedinUrl = profile.linkedin_profile_url || profile.linkedin_flagship_url;
|
|
260
|
+
if (linkedinUrl && seenLinkedInUrls.has(linkedinUrl))
|
|
261
|
+
continue;
|
|
262
|
+
if (linkedinUrl)
|
|
263
|
+
seenLinkedInUrls.add(linkedinUrl);
|
|
264
|
+
contacts.push(this.transformProfile(profile, role));
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
// Add in priority order
|
|
268
|
+
addContacts(cxos, 'cxo');
|
|
269
|
+
addContacts(decisionMakers, 'decision_maker');
|
|
270
|
+
addContacts(founders, 'founder');
|
|
271
|
+
return contacts;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Transform a single profile to Contact format
|
|
275
|
+
*/
|
|
276
|
+
transformProfile(profile, role) {
|
|
277
|
+
return {
|
|
278
|
+
name: profile.name ||
|
|
279
|
+
[profile.first_name, profile.last_name].filter(Boolean).join(' ') ||
|
|
280
|
+
null,
|
|
281
|
+
title: profile.title || null,
|
|
282
|
+
headline: profile.headline || null,
|
|
283
|
+
linkedinUrl: profile.linkedin_profile_url || profile.linkedin_flagship_url || null,
|
|
284
|
+
profilePictureUrl: profile.profile_picture_url || null,
|
|
285
|
+
emails: profile.emails || null,
|
|
286
|
+
twitterHandle: profile.twitter_handle || null,
|
|
287
|
+
role,
|
|
288
|
+
location: profile.location || null,
|
|
289
|
+
skills: profile.skills || null,
|
|
290
|
+
languages: profile.languages || null,
|
|
291
|
+
summary: profile.summary || null,
|
|
292
|
+
currentEmployment: profile.current_positions
|
|
293
|
+
? profile.current_positions.map((pos) => ({
|
|
294
|
+
title: pos.title || null,
|
|
295
|
+
companyName: pos.company_name || null,
|
|
296
|
+
companyLinkedinUrl: pos.company_linkedin_url || null,
|
|
297
|
+
startDate: pos.start_date || null,
|
|
298
|
+
description: pos.description || null,
|
|
299
|
+
}))
|
|
300
|
+
: null,
|
|
301
|
+
pastEmployment: profile.past_positions
|
|
302
|
+
? profile.past_positions.map((pos) => ({
|
|
303
|
+
title: pos.title || null,
|
|
304
|
+
companyName: pos.company_name || null,
|
|
305
|
+
startDate: pos.start_date || null,
|
|
306
|
+
endDate: pos.end_date || null,
|
|
307
|
+
}))
|
|
308
|
+
: null,
|
|
309
|
+
education: profile.education
|
|
310
|
+
? profile.education.map((edu) => ({
|
|
311
|
+
instituteName: edu.institute_name || null,
|
|
312
|
+
degreeName: edu.degree_name || null,
|
|
313
|
+
fieldOfStudy: edu.field_of_study || null,
|
|
314
|
+
}))
|
|
315
|
+
: null,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Transform company info to output format
|
|
320
|
+
*/
|
|
321
|
+
transformCompanyInfo(company) {
|
|
322
|
+
if (!company)
|
|
323
|
+
return null;
|
|
324
|
+
return {
|
|
325
|
+
name: company.name || null,
|
|
326
|
+
linkedinUrl: company.linkedin_profile_url || null,
|
|
327
|
+
website: company.company_website || company.company_website_domain || null,
|
|
328
|
+
industry: company.industry || null,
|
|
329
|
+
description: company.description || null,
|
|
330
|
+
headcount: company.headcount || company.linkedin_headcount || null,
|
|
331
|
+
hqCity: company.hq_city || null,
|
|
332
|
+
hqCountry: company.hq_country || null,
|
|
333
|
+
yearFounded: company.year_founded ? parseInt(company.year_founded) : null,
|
|
334
|
+
fundingStage: company.funding_stage || null,
|
|
335
|
+
totalFunding: company.total_funding || null,
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Create an error result
|
|
340
|
+
*/
|
|
341
|
+
createErrorResult(errorMessage) {
|
|
342
|
+
return {
|
|
343
|
+
contacts: [],
|
|
344
|
+
company: null,
|
|
345
|
+
totalContacts: 0,
|
|
346
|
+
success: false,
|
|
347
|
+
error: errorMessage,
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=company-enrichment-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"company-enrichment-tool.js","sourceRoot":"","sources":["../../../src/bubbles/tool-bubble/company-enrichment-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAmB,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EACL,eAAe,GAGhB,MAAM,sCAAsC,CAAC;AAE9C,+CAA+C;AAC/C,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,aAAa;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACnE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAExE,eAAe;IACf,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAClE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAEjE,oCAAoC;IACpC,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;SAC1C,QAAQ,CAAC,qBAAqB,CAAC;IAElC,WAAW;IACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IAEpD,0BAA0B;IAC1B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACtE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAE/D,eAAe;IACf,iBAAiB,EAAE,CAAC;SACjB,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC3D,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sBAAsB,CAAC;QACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KAChE,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAE3C,cAAc,EAAE,CAAC;SACd,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;KACpD,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,2BAA2B,CAAC;IAExC,YAAY;IACZ,SAAS,EAAE,CAAC;SACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACjE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QACzD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC/D,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,mBAAmB,CAAC;CACjC,CAAC,CAAC;AAEH,qCAAqC;AACrC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACpD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;IACpD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACjE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC7D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACrE,CAAC,CAAC;AAEH,qDAAqD;AACrD,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACP,gFAAgF,CACjF;IACH,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,EAAE,CAAC;SACP,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,WAAW,EAAE,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAChD,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;CACpD,CAAC,CAAC;AAEH,qBAAqB;AACrB,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5E,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC3E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACpE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAChE,CAAC,CAAC;AAeH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,qBAAsB,SAAQ,UAG1C;IACC,MAAM,CAAU,UAAU,GAAe,yBAAyB,CAAC;IACnE,MAAM,CAAU,MAAM,GAAG,iCAAiC,CAAC;IAC3D,MAAM,CAAU,YAAY,GAAG,iCAAiC,CAAC;IACjE,MAAM,CAAU,gBAAgB,GAC9B,qFAAqF,CAAC;IACxF,MAAM,CAAU,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCjC,CAAC;IACF,MAAM,CAAU,KAAK,GAAG,QAAQ,CAAC;IACjC,MAAM,CAAU,IAAI,GAAG,MAAM,CAAC;IAE9B,YACE,SAA2C;QACzC,iBAAiB,EAAE,YAAY;QAC/B,KAAK,EAAE,EAAE;KAC0B,EACrC,OAAuB;QAEvB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;QAC7C,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,iBAAiB,CAC3B,iGAAiG,CAClG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,iBAAiB,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAEtD,sDAAsD;YACtD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YACpE,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAC7C,cAAc,EACd,iBAAiB,CAClB,CAAC;YAEF,MAAM,cAAc,GAAG,IAAI,eAAe,CACxC;gBACE,SAAS,EAAE,UAAU;gBACrB,GAAG,cAAc;gBACjB,WAAW;aACZ,EACD,IAAI,CAAC,OAAO,CACb,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;YAErD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC,iBAAiB,CAC3B,+BAA+B,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC,iBAAiB,CAC3B,8BAA8B,iBAAiB,gFAAgF,CAChI,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAExC,yCAAyC;YACzC,MAAM,YAAY,GAAG,IAAI,eAAe,CACtC;gBACE,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,wCAAwC;gBAChD,WAAW;aACZ,EACD,IAAI,CAAC,OAAO,CACb,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;YAEjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,iBAAiB,CAC3B,6BAA6B,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CACvD,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;YAEpD,uCAAuC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CACrC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAC5B,YAAY,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,EACvC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,EAC1C,KAAK,CACN,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAErE,OAAO;gBACL,QAAQ;gBACR,OAAO;gBACP,aAAa,EAAE,QAAQ,CAAC,MAAM;gBAC9B,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,EAAE;aACV,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,iBAAiB,CAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,UAAkB;QAElB,eAAe;QACf,IACE,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC3C,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACtC,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,8DAA8D;QAC9D,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,kBAAkB;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,IAAoC,EACpC,UAAkB;QAMlB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,UAAU;gBACb,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;YACpD,KAAK,QAAQ;gBACX,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;YAC/C,KAAK,MAAM;gBACT,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,iBAAiB,CACvB,IAAqB,EACrB,cAA+B,EAC/B,QAAyB,EACzB,KAAa;QAEb,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE3C,4CAA4C;QAC5C,MAAM,WAAW,GAAG,CAClB,QAAyB,EACzB,IAA0C,EAC1C,EAAE;YACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK;oBAAE,MAAM;gBAEpC,yBAAyB;gBACzB,MAAM,WAAW,GACf,OAAO,CAAC,oBAAoB,IAAI,OAAO,CAAC,qBAAqB,CAAC;gBAChE,IAAI,WAAW,IAAI,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC;oBAAE,SAAS;gBAC/D,IAAI,WAAW;oBAAE,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAEnD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC;QAEF,wBAAwB;QACxB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,WAAW,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAC9C,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,OAAsB,EACtB,IAA0C;QAE1C,OAAO;YACL,IAAI,EACF,OAAO,CAAC,IAAI;gBACZ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjE,IAAI;YACN,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,WAAW,EACT,OAAO,CAAC,oBAAoB,IAAI,OAAO,CAAC,qBAAqB,IAAI,IAAI;YACvE,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,IAAI,IAAI;YACtD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;YAC9B,aAAa,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;YAC7C,IAAI;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC1C,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACtC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;oBACxB,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;oBACrC,kBAAkB,EAAE,GAAG,CAAC,oBAAoB,IAAI,IAAI;oBACpD,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;oBACjC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;iBACrC,CAAC,CAAC;gBACL,CAAC,CAAC,IAAI;YACR,cAAc,EAAE,OAAO,CAAC,cAAc;gBACpC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACnC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;oBACxB,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;oBACrC,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;oBACjC,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;iBAC9B,CAAC,CAAC;gBACL,CAAC,CAAC,IAAI;YACR,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC1B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC9B,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;oBACzC,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;oBACnC,YAAY,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;iBACzC,CAAC,CAAC;gBACL,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,OAAuC;QAEvC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,WAAW,EAAE,OAAO,CAAC,oBAAoB,IAAI,IAAI;YACjD,OAAO,EACL,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,sBAAsB,IAAI,IAAI;YACnE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,kBAAkB,IAAI,IAAI;YAClE,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAC/B,SAAS,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;YACrC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;YACzE,YAAY,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;YAC3C,YAAY,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;SAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,YAAoB;QAC5C,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC"}
|
|
@@ -13,15 +13,15 @@ declare const GoogleMapsToolParamsSchema: z.ZodObject<{
|
|
|
13
13
|
operation: "search";
|
|
14
14
|
queries: string[];
|
|
15
15
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
16
|
-
limit?: number | undefined;
|
|
17
16
|
location?: string | undefined;
|
|
17
|
+
limit?: number | undefined;
|
|
18
18
|
language?: string | undefined;
|
|
19
19
|
}, {
|
|
20
20
|
operation: "search";
|
|
21
21
|
queries: string[];
|
|
22
22
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
23
|
-
limit?: number | undefined;
|
|
24
23
|
location?: string | undefined;
|
|
24
|
+
limit?: number | undefined;
|
|
25
25
|
language?: string | undefined;
|
|
26
26
|
}>;
|
|
27
27
|
declare const GoogleMapsToolResultSchema: z.ZodObject<{
|
|
@@ -85,15 +85,15 @@ declare const GoogleMapsToolResultSchema: z.ZodObject<{
|
|
|
85
85
|
}, "strip", z.ZodTypeAny, {
|
|
86
86
|
title: string | null;
|
|
87
87
|
url: string | null;
|
|
88
|
-
phone: string | null;
|
|
89
88
|
location: {
|
|
90
89
|
lat: number | null;
|
|
91
90
|
lng: number | null;
|
|
92
91
|
} | null;
|
|
92
|
+
website: string | null;
|
|
93
|
+
phone: string | null;
|
|
93
94
|
rating: number | null;
|
|
94
95
|
category: string | null;
|
|
95
96
|
address: string | null;
|
|
96
|
-
website: string | null;
|
|
97
97
|
placeId: string | null;
|
|
98
98
|
reviewsCount: number | null;
|
|
99
99
|
openingHours: {
|
|
@@ -115,15 +115,15 @@ declare const GoogleMapsToolResultSchema: z.ZodObject<{
|
|
|
115
115
|
}, {
|
|
116
116
|
title: string | null;
|
|
117
117
|
url: string | null;
|
|
118
|
-
phone: string | null;
|
|
119
118
|
location: {
|
|
120
119
|
lat: number | null;
|
|
121
120
|
lng: number | null;
|
|
122
121
|
} | null;
|
|
122
|
+
website: string | null;
|
|
123
|
+
phone: string | null;
|
|
123
124
|
rating: number | null;
|
|
124
125
|
category: string | null;
|
|
125
126
|
address: string | null;
|
|
126
|
-
website: string | null;
|
|
127
127
|
placeId: string | null;
|
|
128
128
|
reviewsCount: number | null;
|
|
129
129
|
openingHours: {
|
|
@@ -153,15 +153,15 @@ declare const GoogleMapsToolResultSchema: z.ZodObject<{
|
|
|
153
153
|
places: {
|
|
154
154
|
title: string | null;
|
|
155
155
|
url: string | null;
|
|
156
|
-
phone: string | null;
|
|
157
156
|
location: {
|
|
158
157
|
lat: number | null;
|
|
159
158
|
lng: number | null;
|
|
160
159
|
} | null;
|
|
160
|
+
website: string | null;
|
|
161
|
+
phone: string | null;
|
|
161
162
|
rating: number | null;
|
|
162
163
|
category: string | null;
|
|
163
164
|
address: string | null;
|
|
164
|
-
website: string | null;
|
|
165
165
|
placeId: string | null;
|
|
166
166
|
reviewsCount: number | null;
|
|
167
167
|
openingHours: {
|
|
@@ -189,15 +189,15 @@ declare const GoogleMapsToolResultSchema: z.ZodObject<{
|
|
|
189
189
|
places: {
|
|
190
190
|
title: string | null;
|
|
191
191
|
url: string | null;
|
|
192
|
-
phone: string | null;
|
|
193
192
|
location: {
|
|
194
193
|
lat: number | null;
|
|
195
194
|
lng: number | null;
|
|
196
195
|
} | null;
|
|
196
|
+
website: string | null;
|
|
197
|
+
phone: string | null;
|
|
197
198
|
rating: number | null;
|
|
198
199
|
category: string | null;
|
|
199
200
|
address: string | null;
|
|
200
|
-
website: string | null;
|
|
201
201
|
placeId: string | null;
|
|
202
202
|
reviewsCount: number | null;
|
|
203
203
|
openingHours: {
|
|
@@ -235,15 +235,15 @@ export declare class GoogleMapsTool extends ToolBubble<GoogleMapsToolParams, Goo
|
|
|
235
235
|
operation: "search";
|
|
236
236
|
queries: string[];
|
|
237
237
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
238
|
-
limit?: number | undefined;
|
|
239
238
|
location?: string | undefined;
|
|
239
|
+
limit?: number | undefined;
|
|
240
240
|
language?: string | undefined;
|
|
241
241
|
}, {
|
|
242
242
|
operation: "search";
|
|
243
243
|
queries: string[];
|
|
244
244
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
245
|
-
limit?: number | undefined;
|
|
246
245
|
location?: string | undefined;
|
|
246
|
+
limit?: number | undefined;
|
|
247
247
|
language?: string | undefined;
|
|
248
248
|
}>;
|
|
249
249
|
static readonly resultSchema: z.ZodObject<{
|
|
@@ -307,15 +307,15 @@ export declare class GoogleMapsTool extends ToolBubble<GoogleMapsToolParams, Goo
|
|
|
307
307
|
}, "strip", z.ZodTypeAny, {
|
|
308
308
|
title: string | null;
|
|
309
309
|
url: string | null;
|
|
310
|
-
phone: string | null;
|
|
311
310
|
location: {
|
|
312
311
|
lat: number | null;
|
|
313
312
|
lng: number | null;
|
|
314
313
|
} | null;
|
|
314
|
+
website: string | null;
|
|
315
|
+
phone: string | null;
|
|
315
316
|
rating: number | null;
|
|
316
317
|
category: string | null;
|
|
317
318
|
address: string | null;
|
|
318
|
-
website: string | null;
|
|
319
319
|
placeId: string | null;
|
|
320
320
|
reviewsCount: number | null;
|
|
321
321
|
openingHours: {
|
|
@@ -337,15 +337,15 @@ export declare class GoogleMapsTool extends ToolBubble<GoogleMapsToolParams, Goo
|
|
|
337
337
|
}, {
|
|
338
338
|
title: string | null;
|
|
339
339
|
url: string | null;
|
|
340
|
-
phone: string | null;
|
|
341
340
|
location: {
|
|
342
341
|
lat: number | null;
|
|
343
342
|
lng: number | null;
|
|
344
343
|
} | null;
|
|
344
|
+
website: string | null;
|
|
345
|
+
phone: string | null;
|
|
345
346
|
rating: number | null;
|
|
346
347
|
category: string | null;
|
|
347
348
|
address: string | null;
|
|
348
|
-
website: string | null;
|
|
349
349
|
placeId: string | null;
|
|
350
350
|
reviewsCount: number | null;
|
|
351
351
|
openingHours: {
|
|
@@ -375,15 +375,15 @@ export declare class GoogleMapsTool extends ToolBubble<GoogleMapsToolParams, Goo
|
|
|
375
375
|
places: {
|
|
376
376
|
title: string | null;
|
|
377
377
|
url: string | null;
|
|
378
|
-
phone: string | null;
|
|
379
378
|
location: {
|
|
380
379
|
lat: number | null;
|
|
381
380
|
lng: number | null;
|
|
382
381
|
} | null;
|
|
382
|
+
website: string | null;
|
|
383
|
+
phone: string | null;
|
|
383
384
|
rating: number | null;
|
|
384
385
|
category: string | null;
|
|
385
386
|
address: string | null;
|
|
386
|
-
website: string | null;
|
|
387
387
|
placeId: string | null;
|
|
388
388
|
reviewsCount: number | null;
|
|
389
389
|
openingHours: {
|
|
@@ -411,15 +411,15 @@ export declare class GoogleMapsTool extends ToolBubble<GoogleMapsToolParams, Goo
|
|
|
411
411
|
places: {
|
|
412
412
|
title: string | null;
|
|
413
413
|
url: string | null;
|
|
414
|
-
phone: string | null;
|
|
415
414
|
location: {
|
|
416
415
|
lat: number | null;
|
|
417
416
|
lng: number | null;
|
|
418
417
|
} | null;
|
|
418
|
+
website: string | null;
|
|
419
|
+
phone: string | null;
|
|
419
420
|
rating: number | null;
|
|
420
421
|
category: string | null;
|
|
421
422
|
address: string | null;
|
|
422
|
-
website: string | null;
|
|
423
423
|
placeId: string | null;
|
|
424
424
|
reviewsCount: number | null;
|
|
425
425
|
openingHours: {
|
|
@@ -71,14 +71,14 @@ declare const InstagramToolParamsSchema: z.ZodObject<{
|
|
|
71
71
|
operation: "scrapeProfile" | "scrapeHashtag";
|
|
72
72
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
73
73
|
limit?: number | undefined;
|
|
74
|
-
hashtags?: string[] | undefined;
|
|
75
74
|
profiles?: string[] | undefined;
|
|
75
|
+
hashtags?: string[] | undefined;
|
|
76
76
|
}, {
|
|
77
77
|
operation: "scrapeProfile" | "scrapeHashtag";
|
|
78
78
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
79
79
|
limit?: number | undefined;
|
|
80
|
-
hashtags?: string[] | undefined;
|
|
81
80
|
profiles?: string[] | undefined;
|
|
81
|
+
hashtags?: string[] | undefined;
|
|
82
82
|
}>;
|
|
83
83
|
declare const InstagramToolResultSchema: z.ZodObject<{
|
|
84
84
|
operation: z.ZodEnum<["scrapeProfile", "scrapeHashtag"]>;
|
|
@@ -236,14 +236,14 @@ export declare class InstagramTool extends ToolBubble<InstagramToolParams, Insta
|
|
|
236
236
|
operation: "scrapeProfile" | "scrapeHashtag";
|
|
237
237
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
238
238
|
limit?: number | undefined;
|
|
239
|
-
hashtags?: string[] | undefined;
|
|
240
239
|
profiles?: string[] | undefined;
|
|
240
|
+
hashtags?: string[] | undefined;
|
|
241
241
|
}, {
|
|
242
242
|
operation: "scrapeProfile" | "scrapeHashtag";
|
|
243
243
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
244
244
|
limit?: number | undefined;
|
|
245
|
-
hashtags?: string[] | undefined;
|
|
246
245
|
profiles?: string[] | undefined;
|
|
246
|
+
hashtags?: string[] | undefined;
|
|
247
247
|
}>;
|
|
248
248
|
static readonly resultSchema: z.ZodObject<{
|
|
249
249
|
operation: z.ZodEnum<["scrapeProfile", "scrapeHashtag"]>;
|