@bubblelab/bubble-core 0.1.210 → 0.1.211

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 (89) hide show
  1. package/dist/bubble-bundle.d.ts +132 -111
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +4 -0
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/ai-agent.d.ts +84 -84
  6. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  7. package/dist/bubbles/service-bubble/ai-agent.js +2 -1
  8. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  9. package/dist/bubbles/service-bubble/airtable.d.ts +100 -100
  10. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
  11. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
  12. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
  13. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
  14. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +38 -38
  15. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
  16. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
  17. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
  18. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  19. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +126 -126
  20. package/dist/bubbles/service-bubble/apify/apify.d.ts +22 -22
  21. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +114 -114
  22. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
  23. package/dist/bubbles/service-bubble/assembled/assembled.d.ts +489 -0
  24. package/dist/bubbles/service-bubble/assembled/assembled.d.ts.map +1 -0
  25. package/dist/bubbles/service-bubble/assembled/assembled.js +363 -0
  26. package/dist/bubbles/service-bubble/assembled/assembled.js.map +1 -0
  27. package/dist/bubbles/service-bubble/assembled/assembled.schema.d.ts +460 -0
  28. package/dist/bubbles/service-bubble/assembled/assembled.schema.d.ts.map +1 -0
  29. package/dist/bubbles/service-bubble/assembled/assembled.schema.js +295 -0
  30. package/dist/bubbles/service-bubble/assembled/assembled.schema.js.map +1 -0
  31. package/dist/bubbles/service-bubble/assembled/assembled.utils.d.ts +12 -0
  32. package/dist/bubbles/service-bubble/assembled/assembled.utils.d.ts.map +1 -0
  33. package/dist/bubbles/service-bubble/assembled/assembled.utils.js +89 -0
  34. package/dist/bubbles/service-bubble/assembled/assembled.utils.js.map +1 -0
  35. package/dist/bubbles/service-bubble/assembled/index.d.ts +4 -0
  36. package/dist/bubbles/service-bubble/assembled/index.d.ts.map +1 -0
  37. package/dist/bubbles/service-bubble/assembled/index.js +4 -0
  38. package/dist/bubbles/service-bubble/assembled/index.js.map +1 -0
  39. package/dist/bubbles/service-bubble/attio/attio.d.ts +6 -6
  40. package/dist/bubbles/service-bubble/attio/attio.schema.d.ts +6 -6
  41. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +5 -5
  42. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
  43. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +78 -78
  44. package/dist/bubbles/service-bubble/firecrawl.d.ts +278 -278
  45. package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
  46. package/dist/bubbles/service-bubble/github.d.ts +12 -12
  47. package/dist/bubbles/service-bubble/gmail.d.ts +104 -104
  48. package/dist/bubbles/service-bubble/google-calendar.d.ts +80 -80
  49. package/dist/bubbles/service-bubble/google-drive.d.ts +40 -40
  50. package/dist/bubbles/service-bubble/http.d.ts +6 -6
  51. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  52. package/dist/bubbles/service-bubble/jira/jira.d.ts +16 -16
  53. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
  54. package/dist/bubbles/service-bubble/notion/notion.d.ts +272 -272
  55. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
  56. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  57. package/dist/bubbles/service-bubble/posthog/posthog.d.ts +9 -9
  58. package/dist/bubbles/service-bubble/posthog/posthog.schema.d.ts +14 -14
  59. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  60. package/dist/bubbles/service-bubble/sendsafely/sendsafely.d.ts +4 -4
  61. package/dist/bubbles/service-bubble/slack/slack.d.ts +294 -294
  62. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +39 -39
  63. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
  64. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
  65. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
  66. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +10 -10
  67. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +385 -385
  68. package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +8 -8
  69. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +10 -10
  70. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  71. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  72. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
  73. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
  74. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +4 -4
  75. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
  76. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
  77. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +8 -8
  78. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
  79. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
  80. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +44 -44
  81. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +16 -16
  82. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
  83. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +34 -34
  84. package/dist/bubbles.json +927 -2
  85. package/dist/index.d.ts +1 -0
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +1 -0
  88. package/dist/index.js.map +1 -1
  89. package/package.json +2 -2
@@ -0,0 +1,363 @@
1
+ import { CredentialType } from '@bubblelab/shared-schemas';
2
+ import { ServiceBubble } from '../../../types/service-bubble-class.js';
3
+ import { AssembledParamsSchema, AssembledResultSchema, } from './assembled.schema.js';
4
+ import { makeAssembledRequest } from './assembled.utils.js';
5
+ export class AssembledBubble extends ServiceBubble {
6
+ static type = 'service';
7
+ static service = 'assembled';
8
+ static authType = 'apikey';
9
+ static bubbleName = 'assembled';
10
+ static schema = AssembledParamsSchema;
11
+ static resultSchema = AssembledResultSchema;
12
+ static shortDescription = 'Workforce management platform for scheduling, time off, and agent management';
13
+ static longDescription = 'Assembled is a workforce management platform. This integration supports managing people/agents, activities/schedules, time off requests, queues, and teams via the Assembled REST API.';
14
+ static alias = 'assembled';
15
+ constructor(params, context) {
16
+ super({
17
+ ...params,
18
+ }, context);
19
+ }
20
+ chooseCredential() {
21
+ const { credentials } = this.params;
22
+ return credentials?.[CredentialType.ASSEMBLED_CRED];
23
+ }
24
+ getApiKey() {
25
+ const apiKey = this.chooseCredential();
26
+ if (!apiKey) {
27
+ throw new Error('Assembled API key not found. Please provide an ASSEMBLED_CRED credential.');
28
+ }
29
+ return apiKey;
30
+ }
31
+ async testCredential() {
32
+ try {
33
+ const apiKey = this.getApiKey();
34
+ // Use list_queues as a lightweight credential test
35
+ await makeAssembledRequest({
36
+ method: 'GET',
37
+ path: '/queues',
38
+ apiKey,
39
+ });
40
+ return true;
41
+ }
42
+ catch {
43
+ return false;
44
+ }
45
+ }
46
+ async performAction(_context) {
47
+ const params = this.params;
48
+ const { operation } = params;
49
+ try {
50
+ switch (operation) {
51
+ case 'list_people':
52
+ return (await this.listPeople(params));
53
+ case 'get_person':
54
+ return (await this.getPerson(params));
55
+ case 'create_person':
56
+ return (await this.createPerson(params));
57
+ case 'update_person':
58
+ return (await this.updatePerson(params));
59
+ case 'list_activities':
60
+ return (await this.listActivities(params));
61
+ case 'create_activity':
62
+ return (await this.createActivity(params));
63
+ case 'delete_activities':
64
+ return (await this.deleteActivities(params));
65
+ case 'create_time_off':
66
+ return (await this.createTimeOff(params));
67
+ case 'list_time_off':
68
+ return (await this.listTimeOff(params));
69
+ case 'cancel_time_off':
70
+ return (await this.cancelTimeOff(params));
71
+ case 'list_queues':
72
+ return (await this.listQueues());
73
+ case 'list_teams':
74
+ return (await this.listTeams());
75
+ default:
76
+ throw new Error(`Unsupported operation: ${operation}`);
77
+ }
78
+ }
79
+ catch (error) {
80
+ return {
81
+ operation,
82
+ success: false,
83
+ error: error instanceof Error ? error.message : 'An unknown error occurred',
84
+ };
85
+ }
86
+ }
87
+ // ─── People operations ──────────────────────────────────────────────────
88
+ async listPeople(params) {
89
+ const apiKey = this.getApiKey();
90
+ const data = await makeAssembledRequest({
91
+ method: 'GET',
92
+ path: '/people',
93
+ apiKey,
94
+ queryParams: {
95
+ limit: params.limit,
96
+ offset: params.offset,
97
+ channel: params.channel,
98
+ team: params.team,
99
+ site: params.site,
100
+ queue: params.queue,
101
+ search: params.search,
102
+ },
103
+ });
104
+ return {
105
+ operation: 'list_people',
106
+ success: true,
107
+ error: '',
108
+ people: data.people || [],
109
+ total: data.total,
110
+ };
111
+ }
112
+ async getPerson(params) {
113
+ const apiKey = this.getApiKey();
114
+ const data = await makeAssembledRequest({
115
+ method: 'GET',
116
+ path: `/people/${params.person_id}`,
117
+ apiKey,
118
+ });
119
+ return {
120
+ operation: 'get_person',
121
+ success: true,
122
+ error: '',
123
+ person: data,
124
+ };
125
+ }
126
+ async createPerson(params) {
127
+ const apiKey = this.getApiKey();
128
+ const body = {
129
+ first_name: params.first_name,
130
+ last_name: params.last_name,
131
+ };
132
+ if (params.email)
133
+ body.email = params.email;
134
+ if (params.imported_id)
135
+ body.imported_id = params.imported_id;
136
+ if (params.channels)
137
+ body.channels = params.channels;
138
+ if (params.teams)
139
+ body.teams = params.teams;
140
+ if (params.queues)
141
+ body.queues = params.queues;
142
+ if (params.site)
143
+ body.site = params.site;
144
+ if (params.timezone)
145
+ body.timezone = params.timezone;
146
+ if (params.roles)
147
+ body.roles = params.roles;
148
+ if (params.staffable !== undefined)
149
+ body.staffable = params.staffable;
150
+ const data = await makeAssembledRequest({
151
+ method: 'POST',
152
+ path: '/people',
153
+ apiKey,
154
+ body,
155
+ });
156
+ return {
157
+ operation: 'create_person',
158
+ success: true,
159
+ error: '',
160
+ person: data,
161
+ };
162
+ }
163
+ async updatePerson(params) {
164
+ const apiKey = this.getApiKey();
165
+ const body = {};
166
+ if (params.first_name)
167
+ body.first_name = params.first_name;
168
+ if (params.last_name)
169
+ body.last_name = params.last_name;
170
+ if (params.email)
171
+ body.email = params.email;
172
+ if (params.channels)
173
+ body.channels = params.channels;
174
+ if (params.teams)
175
+ body.teams = params.teams;
176
+ if (params.queues)
177
+ body.queues = params.queues;
178
+ if (params.site)
179
+ body.site = params.site;
180
+ if (params.timezone)
181
+ body.timezone = params.timezone;
182
+ if (params.staffable !== undefined)
183
+ body.staffable = params.staffable;
184
+ const data = await makeAssembledRequest({
185
+ method: 'PATCH',
186
+ path: `/people/${params.person_id}`,
187
+ apiKey,
188
+ body,
189
+ });
190
+ return {
191
+ operation: 'update_person',
192
+ success: true,
193
+ error: '',
194
+ person: data,
195
+ };
196
+ }
197
+ // ─── Activities operations ──────────────────────────────────────────────
198
+ async listActivities(params) {
199
+ const apiKey = this.getApiKey();
200
+ const queryParams = {
201
+ start_time: params.start_time,
202
+ end_time: params.end_time,
203
+ include_agents: params.include_agents,
204
+ };
205
+ if (params.queue)
206
+ queryParams.queue = params.queue;
207
+ if (params.agent_ids?.length) {
208
+ queryParams.agent_ids = params.agent_ids.join(',');
209
+ }
210
+ const data = await makeAssembledRequest({
211
+ method: 'GET',
212
+ path: '/activities',
213
+ apiKey,
214
+ queryParams,
215
+ });
216
+ return {
217
+ operation: 'list_activities',
218
+ success: true,
219
+ error: '',
220
+ activities: data.activities || {},
221
+ agents: data.agents || {},
222
+ };
223
+ }
224
+ async createActivity(params) {
225
+ const apiKey = this.getApiKey();
226
+ const body = {
227
+ agent_id: params.agent_id,
228
+ type_id: params.type_id,
229
+ start_time: params.start_time,
230
+ end_time: params.end_time,
231
+ };
232
+ if (params.channels)
233
+ body.channels = params.channels;
234
+ if (params.description)
235
+ body.description = params.description;
236
+ if (params.allow_conflicts)
237
+ body.allow_conflicts = params.allow_conflicts;
238
+ const data = await makeAssembledRequest({
239
+ method: 'POST',
240
+ path: '/activities',
241
+ apiKey,
242
+ body,
243
+ });
244
+ return {
245
+ operation: 'create_activity',
246
+ success: true,
247
+ error: '',
248
+ activity: data,
249
+ };
250
+ }
251
+ async deleteActivities(params) {
252
+ const apiKey = this.getApiKey();
253
+ await makeAssembledRequest({
254
+ method: 'DELETE',
255
+ path: '/activities',
256
+ apiKey,
257
+ body: {
258
+ agent_ids: params.agent_ids,
259
+ start_time: params.start_time,
260
+ end_time: params.end_time,
261
+ },
262
+ });
263
+ return {
264
+ operation: 'delete_activities',
265
+ success: true,
266
+ error: '',
267
+ };
268
+ }
269
+ // ─── Time Off operations ────────────────────────────────────────────────
270
+ async createTimeOff(params) {
271
+ const apiKey = this.getApiKey();
272
+ const body = {
273
+ agent_id: params.agent_id,
274
+ start_time: params.start_time,
275
+ end_time: params.end_time,
276
+ };
277
+ if (params.type_id)
278
+ body.type_id = params.type_id;
279
+ if (params.status)
280
+ body.status = params.status;
281
+ if (params.notes)
282
+ body.notes = params.notes;
283
+ const data = await makeAssembledRequest({
284
+ method: 'POST',
285
+ path: '/time_off',
286
+ apiKey,
287
+ body,
288
+ });
289
+ return {
290
+ operation: 'create_time_off',
291
+ success: true,
292
+ error: '',
293
+ time_off: data,
294
+ };
295
+ }
296
+ async listTimeOff(params) {
297
+ const apiKey = this.getApiKey();
298
+ const queryParams = {
299
+ limit: params.limit,
300
+ offset: params.offset,
301
+ };
302
+ if (params.status)
303
+ queryParams.status = params.status;
304
+ if (params.agent_ids?.length) {
305
+ queryParams.agent_ids = params.agent_ids.join(',');
306
+ }
307
+ const data = await makeAssembledRequest({
308
+ method: 'GET',
309
+ path: '/time_off/requests',
310
+ apiKey,
311
+ queryParams,
312
+ });
313
+ return {
314
+ operation: 'list_time_off',
315
+ success: true,
316
+ error: '',
317
+ requests: data.requests || [],
318
+ };
319
+ }
320
+ async cancelTimeOff(params) {
321
+ const apiKey = this.getApiKey();
322
+ await makeAssembledRequest({
323
+ method: 'POST',
324
+ path: `/time_off/${params.time_off_id}/cancel`,
325
+ apiKey,
326
+ });
327
+ return {
328
+ operation: 'cancel_time_off',
329
+ success: true,
330
+ error: '',
331
+ };
332
+ }
333
+ // ─── Filter operations (queues, teams) ──────────────────────────────────
334
+ async listQueues() {
335
+ const apiKey = this.getApiKey();
336
+ const data = await makeAssembledRequest({
337
+ method: 'GET',
338
+ path: '/queues',
339
+ apiKey,
340
+ });
341
+ return {
342
+ operation: 'list_queues',
343
+ success: true,
344
+ error: '',
345
+ queues: data.queues || [],
346
+ };
347
+ }
348
+ async listTeams() {
349
+ const apiKey = this.getApiKey();
350
+ const data = await makeAssembledRequest({
351
+ method: 'GET',
352
+ path: '/teams',
353
+ apiKey,
354
+ });
355
+ return {
356
+ operation: 'list_teams',
357
+ success: true,
358
+ error: '',
359
+ teams: data.teams || [],
360
+ };
361
+ }
362
+ }
363
+ //# sourceMappingURL=assembled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembled.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/assembled/assembled.ts"],"names":[],"mappings":"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"}