@bubblelab/bubble-core 0.1.11 → 0.1.13

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 (143) hide show
  1. package/dist/bubble-bundle.d.ts +183 -117
  2. package/dist/bubble-factory.d.ts +2 -3
  3. package/dist/bubble-factory.d.ts.map +1 -1
  4. package/dist/bubble-factory.js +28 -96
  5. package/dist/bubble-factory.js.map +1 -1
  6. package/dist/bubbles/service-bubble/ai-agent.d.ts +14 -14
  7. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  8. package/dist/bubbles/service-bubble/ai-agent.js +3 -6
  9. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  10. package/dist/bubbles/service-bubble/apify/apify.d.ts +5 -5
  11. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
  12. package/dist/bubbles/service-bubble/apify/apify.js +20 -8
  13. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
  14. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +542 -0
  15. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts.map +1 -0
  16. package/dist/bubbles/service-bubble/browserbase/browserbase.integration.flow.d.ts +37 -0
  17. package/dist/bubbles/service-bubble/browserbase/browserbase.integration.flow.d.ts.map +1 -0
  18. package/dist/bubbles/service-bubble/browserbase/browserbase.integration.flow.js +203 -0
  19. package/dist/bubbles/service-bubble/browserbase/browserbase.integration.flow.js.map +1 -0
  20. package/dist/bubbles/service-bubble/browserbase/browserbase.js +593 -0
  21. package/dist/bubbles/service-bubble/browserbase/browserbase.js.map +1 -0
  22. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +518 -0
  23. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts.map +1 -0
  24. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.js +311 -0
  25. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.js.map +1 -0
  26. package/dist/bubbles/service-bubble/browserbase/index.d.ts +3 -0
  27. package/dist/bubbles/service-bubble/browserbase/index.d.ts.map +1 -0
  28. package/dist/bubbles/service-bubble/browserbase/index.js +3 -0
  29. package/dist/bubbles/service-bubble/browserbase/index.js.map +1 -0
  30. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +1358 -0
  31. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts.map +1 -0
  32. package/dist/bubbles/service-bubble/crustdata/crustdata.js +219 -0
  33. package/dist/bubbles/service-bubble/crustdata/crustdata.js.map +1 -0
  34. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +1604 -0
  35. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts.map +1 -0
  36. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js +194 -0
  37. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js.map +1 -0
  38. package/dist/bubbles/service-bubble/crustdata/index.d.ts +3 -0
  39. package/dist/bubbles/service-bubble/crustdata/index.d.ts.map +1 -0
  40. package/dist/bubbles/service-bubble/crustdata/index.js +3 -0
  41. package/dist/bubbles/service-bubble/crustdata/index.js.map +1 -0
  42. package/dist/bubbles/service-bubble/firecrawl.d.ts +4 -4
  43. package/dist/bubbles/service-bubble/firecrawl.js +1 -1
  44. package/dist/bubbles/service-bubble/firecrawl.js.map +1 -1
  45. package/dist/bubbles/service-bubble/github.d.ts +0 -6
  46. package/dist/bubbles/service-bubble/github.d.ts.map +1 -1
  47. package/dist/bubbles/service-bubble/github.js +1 -7
  48. package/dist/bubbles/service-bubble/github.js.map +1 -1
  49. package/dist/bubbles/service-bubble/gmail.d.ts +84 -84
  50. package/dist/bubbles/service-bubble/google-drive.d.ts +32 -32
  51. package/dist/bubbles/service-bubble/http.d.ts +13 -1
  52. package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
  53. package/dist/bubbles/service-bubble/http.integration.flow.d.ts +49 -0
  54. package/dist/bubbles/service-bubble/http.integration.flow.d.ts.map +1 -0
  55. package/dist/bubbles/service-bubble/http.integration.flow.js +425 -0
  56. package/dist/bubbles/service-bubble/http.integration.flow.js.map +1 -0
  57. package/dist/bubbles/service-bubble/http.js +40 -4
  58. package/dist/bubbles/service-bubble/http.js.map +1 -1
  59. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  60. package/dist/bubbles/service-bubble/slack.d.ts +978 -35
  61. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -1
  62. package/dist/bubbles/service-bubble/slack.js +320 -26
  63. package/dist/bubbles/service-bubble/slack.js.map +1 -1
  64. package/dist/bubbles/service-bubble/storage.d.ts +1 -1
  65. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -1
  66. package/dist/bubbles/service-bubble/storage.js +2 -2
  67. package/dist/bubbles/service-bubble/storage.js.map +1 -1
  68. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +494 -0
  69. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts.map +1 -0
  70. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.integration.flow.d.ts +31 -0
  71. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.integration.flow.d.ts.map +1 -0
  72. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.integration.flow.js +100 -0
  73. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.integration.flow.js.map +1 -0
  74. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.js +1301 -0
  75. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.js.map +1 -0
  76. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +473 -0
  77. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts.map +1 -0
  78. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.js +230 -0
  79. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.js.map +1 -0
  80. package/dist/bubbles/tool-bubble/amazon-shopping-tool/index.d.ts +3 -0
  81. package/dist/bubbles/tool-bubble/amazon-shopping-tool/index.d.ts.map +1 -0
  82. package/dist/bubbles/tool-bubble/amazon-shopping-tool/index.js +3 -0
  83. package/dist/bubbles/tool-bubble/amazon-shopping-tool/index.js.map +1 -0
  84. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +8 -8
  85. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +740 -0
  86. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts.map +1 -0
  87. package/dist/bubbles/tool-bubble/company-enrichment-tool.js +350 -0
  88. package/dist/bubbles/tool-bubble/company-enrichment-tool.js.map +1 -0
  89. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts +146 -0
  90. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts.map +1 -0
  91. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.js +128 -0
  92. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.js.map +1 -0
  93. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts.map +1 -1
  94. package/dist/bubbles/tool-bubble/google-maps-tool.js +1 -0
  95. package/dist/bubbles/tool-bubble/google-maps-tool.js.map +1 -1
  96. package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -1
  97. package/dist/bubbles/tool-bubble/instagram-tool.js +2 -0
  98. package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -1
  99. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +6 -6
  100. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
  101. package/dist/bubbles/tool-bubble/linkedin-tool.js +6 -4
  102. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
  103. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -1
  104. package/dist/bubbles/tool-bubble/research-agent-tool.js +6 -1
  105. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
  106. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +8 -8
  107. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +10 -10
  108. package/dist/bubbles/tool-bubble/twitter-tool.d.ts.map +1 -1
  109. package/dist/bubbles/tool-bubble/twitter-tool.js +3 -0
  110. package/dist/bubbles/tool-bubble/twitter-tool.js.map +1 -1
  111. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +6 -6
  112. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -1
  113. package/dist/bubbles/tool-bubble/web-scrape-tool.js +4 -1
  114. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
  115. package/dist/bubbles/tool-bubble/youtube-tool.d.ts.map +1 -1
  116. package/dist/bubbles/tool-bubble/youtube-tool.js +3 -0
  117. package/dist/bubbles/tool-bubble/youtube-tool.js.map +1 -1
  118. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
  119. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +8 -8
  120. package/dist/bubbles.json +64 -15
  121. package/dist/index.d.ts +3 -0
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +3 -0
  124. package/dist/index.js.map +1 -1
  125. package/dist/logging/BubbleLogger.d.ts +10 -0
  126. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  127. package/dist/logging/BubbleLogger.js +14 -0
  128. package/dist/logging/BubbleLogger.js.map +1 -1
  129. package/dist/logging/StreamingBubbleLogger.d.ts +8 -0
  130. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
  131. package/dist/logging/StreamingBubbleLogger.js +29 -0
  132. package/dist/logging/StreamingBubbleLogger.js.map +1 -1
  133. package/dist/types/available-tools.d.ts +1 -1
  134. package/dist/types/available-tools.d.ts.map +1 -1
  135. package/dist/types/available-tools.js +7 -0
  136. package/dist/types/available-tools.js.map +1 -1
  137. package/dist/types/base-bubble-class.d.ts.map +1 -1
  138. package/dist/types/base-bubble-class.js +0 -8
  139. package/dist/types/base-bubble-class.js.map +1 -1
  140. package/dist/types/tool-bubble-class.d.ts.map +1 -1
  141. package/dist/types/tool-bubble-class.js +58 -8
  142. package/dist/types/tool-bubble-class.js.map +1 -1
  143. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crustdata.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/crustdata/crustdata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ import { ServiceBubble } from '../../../types/service-bubble-class.js';
2
+ import { CredentialType } from '@bubblelab/shared-schemas';
3
+ import { CrustdataParamsSchema, CrustdataResultSchema, } from './crustdata.schema.js';
4
+ const CRUSTDATA_BASE_URL = 'https://api.crustdata.com';
5
+ /**
6
+ * Crustdata Service Bubble
7
+ *
8
+ * Low-level API wrapper for Crustdata company data enrichment.
9
+ *
10
+ * Operations:
11
+ * - identify: Resolve company name/domain/LinkedIn URL to company_id (FREE)
12
+ * - enrich: Get company data with decision makers, CXOs, and founders (1 credit)
13
+ *
14
+ * Use cases:
15
+ * - Lead generation and sales prospecting
16
+ * - Company research and intelligence
17
+ * - Contact discovery for outreach
18
+ *
19
+ * Note: For agent-friendly usage, use CompanyEnrichmentTool instead.
20
+ */
21
+ export class CrustdataBubble extends ServiceBubble {
22
+ static type = 'service';
23
+ static service = 'crustdata';
24
+ static authType = 'api-key';
25
+ static bubbleName = 'crustdata';
26
+ static schema = CrustdataParamsSchema;
27
+ static resultSchema = CrustdataResultSchema;
28
+ static shortDescription = 'Crustdata API for company data enrichment';
29
+ static longDescription = `
30
+ Crustdata service integration for company data enrichment and lead generation.
31
+
32
+ Operations:
33
+ - identify: Resolve company name/domain/LinkedIn URL to company_id (FREE)
34
+ - enrich: Get company data with decision makers, CXOs, and founders (1 credit)
35
+
36
+ Use cases:
37
+ - Lead generation and sales prospecting
38
+ - Company research and intelligence
39
+ - Contact discovery for outreach
40
+
41
+ Note: For agent-friendly usage, use CompanyEnrichmentTool instead.
42
+ `;
43
+ constructor(params = {
44
+ operation: 'identify',
45
+ query_company_name: '',
46
+ }, context) {
47
+ super(params, context);
48
+ }
49
+ async testCredential() {
50
+ const apiKey = this.chooseCredential();
51
+ if (!apiKey) {
52
+ return false;
53
+ }
54
+ try {
55
+ // Test the credentials by calling identify with a known company
56
+ const response = await fetch(`${CRUSTDATA_BASE_URL}/screener/identify/`, {
57
+ method: 'POST',
58
+ headers: {
59
+ Authorization: `Token ${apiKey}`,
60
+ 'Content-Type': 'application/json',
61
+ },
62
+ body: JSON.stringify({
63
+ query_company_website: 'stripe.com',
64
+ count: 1,
65
+ }),
66
+ });
67
+ return response.ok;
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
73
+ async performAction(context) {
74
+ void context;
75
+ const { operation } = this.params;
76
+ try {
77
+ const result = await (async () => {
78
+ const parsedParams = this.params;
79
+ switch (operation) {
80
+ case 'identify':
81
+ return await this.identify(parsedParams);
82
+ case 'enrich':
83
+ return await this.enrich(parsedParams);
84
+ default:
85
+ throw new Error(`Unsupported operation: ${operation}`);
86
+ }
87
+ })();
88
+ return result;
89
+ }
90
+ catch (error) {
91
+ return {
92
+ operation,
93
+ success: false,
94
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
95
+ };
96
+ }
97
+ }
98
+ async identify(params) {
99
+ const { query_company_name, query_company_website, query_company_linkedin_url, count, } = params;
100
+ // Build request body with only provided fields
101
+ const body = {};
102
+ if (query_company_name)
103
+ body.query_company_name = query_company_name;
104
+ if (query_company_website)
105
+ body.query_company_website = query_company_website;
106
+ if (query_company_linkedin_url)
107
+ body.query_company_linkedin_url = query_company_linkedin_url;
108
+ if (count)
109
+ body.count = count;
110
+ // Validate at least one identifier is provided
111
+ if (!query_company_name &&
112
+ !query_company_website &&
113
+ !query_company_linkedin_url) {
114
+ return {
115
+ operation: 'identify',
116
+ success: false,
117
+ results: [],
118
+ error: 'At least one of query_company_name, query_company_website, or query_company_linkedin_url is required',
119
+ };
120
+ }
121
+ const response = await fetch(`${CRUSTDATA_BASE_URL}/screener/identify/`, {
122
+ method: 'POST',
123
+ headers: {
124
+ Authorization: `Token ${this.chooseCredential()}`,
125
+ 'Content-Type': 'application/json',
126
+ },
127
+ body: JSON.stringify(body),
128
+ });
129
+ // Handle 404 as empty results (company not found)
130
+ if (response.status === 404) {
131
+ return {
132
+ operation: 'identify',
133
+ success: true,
134
+ results: [],
135
+ error: '',
136
+ };
137
+ }
138
+ if (!response.ok) {
139
+ const errorText = await response.text();
140
+ throw new Error(`Crustdata identify API error (${response.status}): ${errorText}`);
141
+ }
142
+ const data = await response.json();
143
+ // API returns array of results
144
+ const results = Array.isArray(data) ? data : [data];
145
+ return {
146
+ operation: 'identify',
147
+ success: true,
148
+ results: results.map((item) => ({
149
+ company_id: item.company_id,
150
+ company_name: item.company_name,
151
+ linkedin_profile_url: item.linkedin_profile_url,
152
+ company_website_domain: item.company_website_domain,
153
+ linkedin_headcount: item.linkedin_headcount,
154
+ score: item.score,
155
+ })),
156
+ error: '',
157
+ };
158
+ }
159
+ async enrich(params) {
160
+ const { company_domain, company_linkedin_url, company_id, fields, enrich_realtime, } = params;
161
+ // Build query parameters
162
+ const queryParams = new URLSearchParams();
163
+ if (company_domain)
164
+ queryParams.set('company_domain', company_domain);
165
+ if (company_linkedin_url)
166
+ queryParams.set('company_linkedin_url', company_linkedin_url);
167
+ if (company_id !== undefined)
168
+ queryParams.set('company_id', company_id.toString());
169
+ if (fields)
170
+ queryParams.set('fields', fields);
171
+ if (enrich_realtime !== undefined)
172
+ queryParams.set('enrich_realtime', enrich_realtime.toString());
173
+ // Validate at least one identifier is provided
174
+ if (!company_domain && !company_linkedin_url && company_id === undefined) {
175
+ return {
176
+ operation: 'enrich',
177
+ success: false,
178
+ company: null,
179
+ decision_makers: null,
180
+ cxos: null,
181
+ founders: null,
182
+ error: 'At least one of company_domain, company_linkedin_url, or company_id is required',
183
+ };
184
+ }
185
+ const response = await fetch(`${CRUSTDATA_BASE_URL}/screener/company?${queryParams.toString()}`, {
186
+ method: 'GET',
187
+ headers: {
188
+ Authorization: `Token ${this.chooseCredential()}`,
189
+ 'Content-Type': 'application/json',
190
+ },
191
+ });
192
+ if (!response.ok) {
193
+ const errorText = await response.text();
194
+ throw new Error(`Crustdata enrich API error (${response.status}): ${errorText}`);
195
+ }
196
+ const data = await response.json();
197
+ // API returns an array of company objects
198
+ // Each company object contains the enriched data directly (not nested under 'company')
199
+ const companies = Array.isArray(data) ? data : [data];
200
+ const firstCompany = companies[0];
201
+ return {
202
+ operation: 'enrich',
203
+ success: true,
204
+ company: firstCompany || null,
205
+ decision_makers: firstCompany?.decision_makers || null,
206
+ cxos: firstCompany?.cxos || null,
207
+ founders: firstCompany?.founders || null,
208
+ error: '',
209
+ };
210
+ }
211
+ chooseCredential() {
212
+ const { credentials } = this.params;
213
+ if (!credentials || typeof credentials !== 'object') {
214
+ throw new Error('No Crustdata credentials provided');
215
+ }
216
+ return credentials[CredentialType.CRUSTDATA_API_KEY];
217
+ }
218
+ }
219
+ //# sourceMappingURL=crustdata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crustdata.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/crustdata/crustdata.ts"],"names":[],"mappings":"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"}