@bubblelab/bubble-core 0.1.110 → 0.1.113
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 +88 -88
- package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
- package/dist/bubbles/service-bubble/ai-agent.d.ts +98 -84
- package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.js +130 -14
- package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
- package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
- package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
- package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
- package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
- package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
- package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +88 -88
- package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +2 -2
- package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +1 -1
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +10 -10
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +24 -24
- package/dist/bubbles/service-bubble/firecrawl.d.ts +338 -338
- package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
- package/dist/bubbles/service-bubble/github.d.ts +60 -60
- package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
- package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
- package/dist/bubbles/service-bubble/google-drive.d.ts +8 -8
- package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/google-drive.js +4 -2
- package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
- package/dist/bubbles/service-bubble/http.d.ts +2 -2
- package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
- package/dist/bubbles/service-bubble/jira/jira.d.ts +30 -30
- package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
- package/dist/bubbles/service-bubble/notion/notion.d.ts +848 -848
- package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
- package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
- package/dist/bubbles/service-bubble/resend.d.ts +4 -4
- package/dist/bubbles/service-bubble/salesforce/index.d.ts +4 -0
- package/dist/bubbles/service-bubble/salesforce/index.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/index.js +4 -0
- package/dist/bubbles/service-bubble/salesforce/index.js.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts +1331 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.js +618 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.js.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts +1445 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js +609 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts +87 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js +181 -0
- package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js.map +1 -0
- package/dist/bubbles/service-bubble/slack/slack.d.ts +324 -324
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
- package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +28 -28
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +310 -310
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +44 -44
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +72 -72
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +36 -36
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
- package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +18 -18
- package/dist/bubbles.json +8 -2
- package/dist/capabilities/define-capability.d.ts +11 -3
- package/dist/capabilities/define-capability.d.ts.map +1 -1
- package/dist/capabilities/define-capability.js +8 -0
- package/dist/capabilities/define-capability.js.map +1 -1
- package/dist/capabilities/index.d.ts +1 -1
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -138,33 +138,33 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
|
|
|
138
138
|
}, "strip", z.ZodTypeAny, {
|
|
139
139
|
type: string;
|
|
140
140
|
name: string;
|
|
141
|
-
choices: string[];
|
|
142
141
|
id: number;
|
|
143
142
|
width: number;
|
|
144
143
|
height: number;
|
|
145
144
|
label: string;
|
|
146
145
|
page: number;
|
|
147
|
-
|
|
148
|
-
y: number;
|
|
146
|
+
choices: string[];
|
|
149
147
|
field_type: string;
|
|
150
148
|
current_value: string;
|
|
151
149
|
rect: [number, number, number, number];
|
|
150
|
+
x: number;
|
|
151
|
+
y: number;
|
|
152
152
|
field_flags: number;
|
|
153
153
|
potential_labels: string[];
|
|
154
154
|
}, {
|
|
155
155
|
type: string;
|
|
156
156
|
name: string;
|
|
157
|
-
choices: string[];
|
|
158
157
|
id: number;
|
|
159
158
|
width: number;
|
|
160
159
|
height: number;
|
|
161
160
|
label: string;
|
|
162
161
|
page: number;
|
|
163
|
-
|
|
164
|
-
y: number;
|
|
162
|
+
choices: string[];
|
|
165
163
|
field_type: string;
|
|
166
164
|
current_value: string;
|
|
167
165
|
rect: [number, number, number, number];
|
|
166
|
+
x: number;
|
|
167
|
+
y: number;
|
|
168
168
|
field_flags: number;
|
|
169
169
|
potential_labels: string[];
|
|
170
170
|
}>, "many">;
|
|
@@ -177,17 +177,17 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
|
|
|
177
177
|
fields: {
|
|
178
178
|
type: string;
|
|
179
179
|
name: string;
|
|
180
|
-
choices: string[];
|
|
181
180
|
id: number;
|
|
182
181
|
width: number;
|
|
183
182
|
height: number;
|
|
184
183
|
label: string;
|
|
185
184
|
page: number;
|
|
186
|
-
|
|
187
|
-
y: number;
|
|
185
|
+
choices: string[];
|
|
188
186
|
field_type: string;
|
|
189
187
|
current_value: string;
|
|
190
188
|
rect: [number, number, number, number];
|
|
189
|
+
x: number;
|
|
190
|
+
y: number;
|
|
191
191
|
field_flags: number;
|
|
192
192
|
potential_labels: string[];
|
|
193
193
|
}[];
|
|
@@ -199,17 +199,17 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
|
|
|
199
199
|
fields: {
|
|
200
200
|
type: string;
|
|
201
201
|
name: string;
|
|
202
|
-
choices: string[];
|
|
203
202
|
id: number;
|
|
204
203
|
width: number;
|
|
205
204
|
height: number;
|
|
206
205
|
label: string;
|
|
207
206
|
page: number;
|
|
208
|
-
|
|
209
|
-
y: number;
|
|
207
|
+
choices: string[];
|
|
210
208
|
field_type: string;
|
|
211
209
|
current_value: string;
|
|
212
210
|
rect: [number, number, number, number];
|
|
211
|
+
x: number;
|
|
212
|
+
y: number;
|
|
213
213
|
field_flags: number;
|
|
214
214
|
potential_labels: string[];
|
|
215
215
|
}[];
|
|
@@ -617,33 +617,33 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
|
|
|
617
617
|
}, "strip", z.ZodTypeAny, {
|
|
618
618
|
type: string;
|
|
619
619
|
name: string;
|
|
620
|
-
choices: string[];
|
|
621
620
|
id: number;
|
|
622
621
|
width: number;
|
|
623
622
|
height: number;
|
|
624
623
|
label: string;
|
|
625
624
|
page: number;
|
|
626
|
-
|
|
627
|
-
y: number;
|
|
625
|
+
choices: string[];
|
|
628
626
|
field_type: string;
|
|
629
627
|
current_value: string;
|
|
630
628
|
rect: [number, number, number, number];
|
|
629
|
+
x: number;
|
|
630
|
+
y: number;
|
|
631
631
|
field_flags: number;
|
|
632
632
|
potential_labels: string[];
|
|
633
633
|
}, {
|
|
634
634
|
type: string;
|
|
635
635
|
name: string;
|
|
636
|
-
choices: string[];
|
|
637
636
|
id: number;
|
|
638
637
|
width: number;
|
|
639
638
|
height: number;
|
|
640
639
|
label: string;
|
|
641
640
|
page: number;
|
|
642
|
-
|
|
643
|
-
y: number;
|
|
641
|
+
choices: string[];
|
|
644
642
|
field_type: string;
|
|
645
643
|
current_value: string;
|
|
646
644
|
rect: [number, number, number, number];
|
|
645
|
+
x: number;
|
|
646
|
+
y: number;
|
|
647
647
|
field_flags: number;
|
|
648
648
|
potential_labels: string[];
|
|
649
649
|
}>, "many">;
|
|
@@ -656,17 +656,17 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
|
|
|
656
656
|
fields: {
|
|
657
657
|
type: string;
|
|
658
658
|
name: string;
|
|
659
|
-
choices: string[];
|
|
660
659
|
id: number;
|
|
661
660
|
width: number;
|
|
662
661
|
height: number;
|
|
663
662
|
label: string;
|
|
664
663
|
page: number;
|
|
665
|
-
|
|
666
|
-
y: number;
|
|
664
|
+
choices: string[];
|
|
667
665
|
field_type: string;
|
|
668
666
|
current_value: string;
|
|
669
667
|
rect: [number, number, number, number];
|
|
668
|
+
x: number;
|
|
669
|
+
y: number;
|
|
670
670
|
field_flags: number;
|
|
671
671
|
potential_labels: string[];
|
|
672
672
|
}[];
|
|
@@ -678,17 +678,17 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
|
|
|
678
678
|
fields: {
|
|
679
679
|
type: string;
|
|
680
680
|
name: string;
|
|
681
|
-
choices: string[];
|
|
682
681
|
id: number;
|
|
683
682
|
width: number;
|
|
684
683
|
height: number;
|
|
685
684
|
label: string;
|
|
686
685
|
page: number;
|
|
687
|
-
|
|
688
|
-
y: number;
|
|
686
|
+
choices: string[];
|
|
689
687
|
field_type: string;
|
|
690
688
|
current_value: string;
|
|
691
689
|
rect: [number, number, number, number];
|
|
690
|
+
x: number;
|
|
691
|
+
y: number;
|
|
692
692
|
field_flags: number;
|
|
693
693
|
potential_labels: string[];
|
|
694
694
|
}[];
|
|
@@ -60,8 +60,8 @@ declare const SlackDataAssistantParamsSchema: z.ZodObject<{
|
|
|
60
60
|
slackChannel: string;
|
|
61
61
|
userQuestion: string;
|
|
62
62
|
name?: string | undefined;
|
|
63
|
-
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
64
63
|
temperature?: number | undefined;
|
|
64
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
65
65
|
verbosity?: "1" | "2" | "3" | "4" | "5" | undefined;
|
|
66
66
|
technicality?: "1" | "2" | "3" | "4" | "5" | undefined;
|
|
67
67
|
includeQuery?: boolean | undefined;
|
|
@@ -198,8 +198,8 @@ export declare class SlackDataAssistantWorkflow extends WorkflowBubble<SlackData
|
|
|
198
198
|
slackChannel: string;
|
|
199
199
|
userQuestion: string;
|
|
200
200
|
name?: string | undefined;
|
|
201
|
-
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
202
201
|
temperature?: number | undefined;
|
|
202
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
203
203
|
verbosity?: "1" | "2" | "3" | "4" | "5" | undefined;
|
|
204
204
|
technicality?: "1" | "2" | "3" | "4" | "5" | undefined;
|
|
205
205
|
includeQuery?: boolean | undefined;
|
|
@@ -61,12 +61,12 @@ declare const SlackFormatterAgentParamsSchema: z.ZodObject<{
|
|
|
61
61
|
additionalContext?: string | undefined;
|
|
62
62
|
}, {
|
|
63
63
|
message: string;
|
|
64
|
-
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
65
64
|
model?: {
|
|
66
65
|
model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-opus-4-5" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined;
|
|
67
66
|
temperature?: number | undefined;
|
|
68
67
|
maxTokens?: number | undefined;
|
|
69
68
|
} | undefined;
|
|
69
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
70
70
|
tools?: {
|
|
71
71
|
name: string;
|
|
72
72
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
@@ -154,7 +154,7 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
|
|
|
154
154
|
verbatim?: boolean | undefined;
|
|
155
155
|
}>, "many">>;
|
|
156
156
|
}, "strip", z.ZodTypeAny, {
|
|
157
|
-
type: "
|
|
157
|
+
type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
|
|
158
158
|
title?: {
|
|
159
159
|
type: "plain_text";
|
|
160
160
|
text: string;
|
|
@@ -187,7 +187,7 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
|
|
|
187
187
|
label?: unknown;
|
|
188
188
|
hint?: unknown;
|
|
189
189
|
}, {
|
|
190
|
-
type: "
|
|
190
|
+
type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
|
|
191
191
|
title?: {
|
|
192
192
|
type: "plain_text";
|
|
193
193
|
text: string;
|
|
@@ -255,21 +255,21 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
|
|
|
255
255
|
}, "strip", z.ZodTypeAny, {
|
|
256
256
|
error: string;
|
|
257
257
|
success: boolean;
|
|
258
|
+
response: string;
|
|
259
|
+
iterations: number;
|
|
258
260
|
metadata: {
|
|
259
261
|
verbosityLevel: string;
|
|
260
262
|
technicalityLevel: string;
|
|
261
263
|
wordCount: number;
|
|
262
264
|
blockCount?: number | undefined;
|
|
263
265
|
};
|
|
264
|
-
response: string;
|
|
265
|
-
iterations: number;
|
|
266
266
|
toolCalls?: {
|
|
267
267
|
tool: string;
|
|
268
268
|
input?: unknown;
|
|
269
269
|
output?: unknown;
|
|
270
270
|
}[] | undefined;
|
|
271
271
|
blocks?: {
|
|
272
|
-
type: "
|
|
272
|
+
type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
|
|
273
273
|
title?: {
|
|
274
274
|
type: "plain_text";
|
|
275
275
|
text: string;
|
|
@@ -305,21 +305,21 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
|
|
|
305
305
|
}, {
|
|
306
306
|
error: string;
|
|
307
307
|
success: boolean;
|
|
308
|
+
response: string;
|
|
309
|
+
iterations: number;
|
|
308
310
|
metadata: {
|
|
309
311
|
verbosityLevel: string;
|
|
310
312
|
technicalityLevel: string;
|
|
311
313
|
wordCount: number;
|
|
312
314
|
blockCount?: number | undefined;
|
|
313
315
|
};
|
|
314
|
-
response: string;
|
|
315
|
-
iterations: number;
|
|
316
316
|
toolCalls?: {
|
|
317
317
|
tool: string;
|
|
318
318
|
input?: unknown;
|
|
319
319
|
output?: unknown;
|
|
320
320
|
}[] | undefined;
|
|
321
321
|
blocks?: {
|
|
322
|
-
type: "
|
|
322
|
+
type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
|
|
323
323
|
title?: {
|
|
324
324
|
type: "plain_text";
|
|
325
325
|
text: string;
|
|
@@ -419,12 +419,12 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
|
|
|
419
419
|
additionalContext?: string | undefined;
|
|
420
420
|
}, {
|
|
421
421
|
message: string;
|
|
422
|
-
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
423
422
|
model?: {
|
|
424
423
|
model?: "openai/gpt-5" | "openai/gpt-5-mini" | "openai/gpt-5.1" | "openai/gpt-5.2" | "google/gemini-2.5-pro" | "google/gemini-2.5-flash" | "google/gemini-2.5-flash-lite" | "google/gemini-2.5-flash-image-preview" | "google/gemini-3-pro-preview" | "google/gemini-3-pro-image-preview" | "google/gemini-3-flash-preview" | "anthropic/claude-sonnet-4-5" | "anthropic/claude-opus-4-5" | "anthropic/claude-haiku-4-5" | "openrouter/x-ai/grok-code-fast-1" | "openrouter/z-ai/glm-4.6" | "openrouter/z-ai/glm-4.7" | "openrouter/anthropic/claude-sonnet-4.5" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/google/gemini-3-pro-preview" | "openrouter/morph/morph-v3-large" | "openrouter/openai/gpt-oss-120b" | "openrouter/openai/o3-deep-research" | "openrouter/openai/o4-mini-deep-research" | undefined;
|
|
425
424
|
temperature?: number | undefined;
|
|
426
425
|
maxTokens?: number | undefined;
|
|
427
426
|
} | undefined;
|
|
427
|
+
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
428
428
|
tools?: {
|
|
429
429
|
name: string;
|
|
430
430
|
credentials?: Partial<Record<CredentialType, string>> | undefined;
|
|
@@ -512,7 +512,7 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
|
|
|
512
512
|
verbatim?: boolean | undefined;
|
|
513
513
|
}>, "many">>;
|
|
514
514
|
}, "strip", z.ZodTypeAny, {
|
|
515
|
-
type: "
|
|
515
|
+
type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
|
|
516
516
|
title?: {
|
|
517
517
|
type: "plain_text";
|
|
518
518
|
text: string;
|
|
@@ -545,7 +545,7 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
|
|
|
545
545
|
label?: unknown;
|
|
546
546
|
hint?: unknown;
|
|
547
547
|
}, {
|
|
548
|
-
type: "
|
|
548
|
+
type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
|
|
549
549
|
title?: {
|
|
550
550
|
type: "plain_text";
|
|
551
551
|
text: string;
|
|
@@ -613,21 +613,21 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
|
|
|
613
613
|
}, "strip", z.ZodTypeAny, {
|
|
614
614
|
error: string;
|
|
615
615
|
success: boolean;
|
|
616
|
+
response: string;
|
|
617
|
+
iterations: number;
|
|
616
618
|
metadata: {
|
|
617
619
|
verbosityLevel: string;
|
|
618
620
|
technicalityLevel: string;
|
|
619
621
|
wordCount: number;
|
|
620
622
|
blockCount?: number | undefined;
|
|
621
623
|
};
|
|
622
|
-
response: string;
|
|
623
|
-
iterations: number;
|
|
624
624
|
toolCalls?: {
|
|
625
625
|
tool: string;
|
|
626
626
|
input?: unknown;
|
|
627
627
|
output?: unknown;
|
|
628
628
|
}[] | undefined;
|
|
629
629
|
blocks?: {
|
|
630
|
-
type: "
|
|
630
|
+
type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
|
|
631
631
|
title?: {
|
|
632
632
|
type: "plain_text";
|
|
633
633
|
text: string;
|
|
@@ -663,21 +663,21 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
|
|
|
663
663
|
}, {
|
|
664
664
|
error: string;
|
|
665
665
|
success: boolean;
|
|
666
|
+
response: string;
|
|
667
|
+
iterations: number;
|
|
666
668
|
metadata: {
|
|
667
669
|
verbosityLevel: string;
|
|
668
670
|
technicalityLevel: string;
|
|
669
671
|
wordCount: number;
|
|
670
672
|
blockCount?: number | undefined;
|
|
671
673
|
};
|
|
672
|
-
response: string;
|
|
673
|
-
iterations: number;
|
|
674
674
|
toolCalls?: {
|
|
675
675
|
tool: string;
|
|
676
676
|
input?: unknown;
|
|
677
677
|
output?: unknown;
|
|
678
678
|
}[] | undefined;
|
|
679
679
|
blocks?: {
|
|
680
|
-
type: "
|
|
680
|
+
type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
|
|
681
681
|
title?: {
|
|
682
682
|
type: "plain_text";
|
|
683
683
|
text: string;
|
package/dist/bubbles.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "2.0.0",
|
|
3
|
-
"generatedAt": "2026-02-
|
|
3
|
+
"generatedAt": "2026-02-06T18:04:54.732Z",
|
|
4
4
|
"totalCount": 60,
|
|
5
5
|
"bubbles": [
|
|
6
6
|
{
|
|
@@ -475,6 +475,12 @@
|
|
|
475
475
|
},
|
|
476
476
|
{
|
|
477
477
|
"type": "boolean"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"type": "array",
|
|
481
|
+
"items": {
|
|
482
|
+
"type": "string"
|
|
483
|
+
}
|
|
478
484
|
}
|
|
479
485
|
]
|
|
480
486
|
},
|
|
@@ -574,7 +580,7 @@
|
|
|
574
580
|
],
|
|
575
581
|
"additionalProperties": false
|
|
576
582
|
},
|
|
577
|
-
"usageExample": "// Example usage of ai-agent bubble\nconst aiAgent = new AIAgentBubble({\n message: \"example string\", // The message or question to send to the AI agent,\n images: [{ type: \"base64\" // default, data: \"example string\", mimeType: \"image/png\" // default, description: \"example string\" }] // example for array, // Array of base64 encoded images to include with the message (for multimodal AI models). Example: [{type: \"base64\", data: \"base64...\", mimeType: \"image/png\", description: \"A beautiful image of a cat\"}] or [{type: \"url\", url: \"https://example.com/image.png\", description: \"A beautiful image of a cat\"}],\n conversationHistory: [{ role: \"user\" // options: \"user\", \"assistant\", \"tool\" // The role of the message sender, content: \"example string\" // The message content, toolCallId: \"example string\" // Tool call ID for tool messages, name: \"example string\" // Tool name for tool messages }], // Previous conversation messages for multi-turn conversations. When provided, messages are sent as separate turns to enable KV cache optimization. Format: [{role: \"user\", content: \"...\"}, {role: \"assistant\", content: \"...\"}, ...],\n systemPrompt: \"You are a helpful AI assistant\" // default, // System prompt that defines the AI agents behavior and personality,\n name: \"AI Agent\" // default, // A friendly name for the AI agent,\n model: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use (format: provider/model-name)., temperature: 1 // default // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: 64000 // default // Maximum number of tokens to generate in response, keep at default of 40000 unless the response is expected to be certain length, reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for model. If not specified, uses primary model reasoningEffort., maxRetries: 3 // default // Maximum number of retries for API calls (default: 3). Useful for handling transient errors like 503 Service Unavailable., provider: [\"example string\"] // Providers for ai agent (open router only)., jsonMode: false // default // When true, returns clean JSON response, you must provide the exact JSON schema in the system prompt, backupModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // Backup AI model to use if the primary model fails (format: provider/model-name)., temperature: 42 // Temperature for backup model. If not specified, uses primary model temperature., maxTokens: 42 // Max tokens for backup model. If not specified, uses primary model maxTokens., reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for backup model. If not specified, uses primary model reasoningEffort., maxRetries: 42 // Max retries for backup model. If not specified, uses primary model maxRetries. } // structure // Backup model configuration to use if the primary model fails. } // structure, // AI model configuration including provider, temperature, and tokens, retries, and json mode. Always include this.,\n tools: [{ name: \"web-search-tool\" // options: \"web-search-tool\", \"web-scrape-tool\", \"web-crawl-tool\", \"web-extract-tool\", \"research-agent-tool\", \"reddit-scrape-tool\", \"instagram-tool\", \"list-bubbles-tool\", \"get-bubble-details-tool\", \"get-trigger-detail-tool\", \"bubbleflow-validation-tool\", \"code-edit-tool\", \"chart-js-tool\", \"amazon-shopping-tool\", \"linkedin-tool\", \"tiktok-tool\", \"twitter-tool\", \"google-maps-tool\", \"youtube-tool\", \"people-search-tool\", \"sql-query-tool\" // Name of the tool type or tool bubble to enable for the AI agent, config: {} // Configuration for the tool or tool bubble }] // example for array, // Array of pre-registered tools the AI agent can use. Can be tool types (web-search-tool, web-scrape-tool, web-crawl-tool, web-extract-tool, instagram-tool). If using image models, set the tools to [],\n customTools: [{ name: \"example string\" // Unique name for your custom tool (e.g., \"calculate-tax\"), description: \"example string\" // Description of what the tool does - helps the AI know when to use it, schema: {} // Zod schema object defining the tool parameters. Can be either a plain object (e.g., { amount: z.number() }) or a Zod object directly (e.g., z.object({ amount: z.number() })). }] // example for array, // Array of custom runtime-defined tools with their own schemas and functions. Use this to add domain-specific tools without pre-registration. Example: [{ name: \"calculate-tax\", description: \"Calculates sales tax\", schema: { amount: z.number() }, func: async (input) => {...} }],\n maxIterations: 40 // default, // Maximum number of iterations for the agent workflow, 5 iterations per turn of conversation,\n streaming: false // default, // Enable real-time streaming of tokens, tool calls, and iteration progress,\n capabilities: [{ id: \"example string\" // Capability ID (e.g., \"google-doc-knowledge-base\"), inputs: { \"example_key\": \"example string\" } // structure // Input parameter values for this capability }] // example for array, // Capabilities that extend the agent with bundled tools, prompts, and credentials. Example: [{ id: \"google-doc-knowledge-base\", inputs: { docId: \"your-doc-id\" } }],\n expectedOutputSchema: \"example string\", // Zod schema or JSON schema string that defines the expected structure of the AI response. When provided, automatically enables JSON mode and instructs the AI to output in the exact format. Example: z.object({ summary: z.string(), items: z.array(z.object({ name: z.string(), score: z.number() })) }),\n});\n\nconst result = await aiAgent.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// response: string // The AI agents final response to the user message. For text responses, returns plain text. If JSON mode is enabled, returns a JSON string. For image generation models (like gemini-2.5-flash-image-preview), returns base64-encoded image data with data URI format (data:image/png;base64,...),\n// reasoning: string | null | undefined // The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models.,\n// toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] // Array of tool calls made during the conversation,\n// iterations: number // Number of back-and-forth iterations in the agent workflow,\n// totalCost: number | undefined // Total cost in USD for this request (includes tokens + web search for deep research models),\n// error: string // Error message of the run, undefined if successful,\n// success: boolean // Whether the agent execution completed successfully\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
583
|
+
"usageExample": "// Example usage of ai-agent bubble\nconst aiAgent = new AIAgentBubble({\n message: \"example string\", // The message or question to send to the AI agent,\n images: [{ type: \"base64\" // default, data: \"example string\", mimeType: \"image/png\" // default, description: \"example string\" }] // example for array, // Array of base64 encoded images to include with the message (for multimodal AI models). Example: [{type: \"base64\", data: \"base64...\", mimeType: \"image/png\", description: \"A beautiful image of a cat\"}] or [{type: \"url\", url: \"https://example.com/image.png\", description: \"A beautiful image of a cat\"}],\n conversationHistory: [{ role: \"user\" // options: \"user\", \"assistant\", \"tool\" // The role of the message sender, content: \"example string\" // The message content, toolCallId: \"example string\" // Tool call ID for tool messages, name: \"example string\" // Tool name for tool messages }], // Previous conversation messages for multi-turn conversations. When provided, messages are sent as separate turns to enable KV cache optimization. Format: [{role: \"user\", content: \"...\"}, {role: \"assistant\", content: \"...\"}, ...],\n systemPrompt: \"You are a helpful AI assistant\" // default, // System prompt that defines the AI agents behavior and personality,\n name: \"AI Agent\" // default, // A friendly name for the AI agent,\n model: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // AI model to use (format: provider/model-name)., temperature: 1 // default // Temperature for response randomness (0 = deterministic, 2 = very random), maxTokens: 64000 // default // Maximum number of tokens to generate in response, keep at default of 40000 unless the response is expected to be certain length, reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for model. If not specified, uses primary model reasoningEffort., maxRetries: 3 // default // Maximum number of retries for API calls (default: 3). Useful for handling transient errors like 503 Service Unavailable., provider: [\"example string\"] // Providers for ai agent (open router only)., jsonMode: false // default // When true, returns clean JSON response, you must provide the exact JSON schema in the system prompt, backupModel: { model: \"openai/gpt-5\" // options: \"openai/gpt-5\", \"openai/gpt-5-mini\", \"openai/gpt-5.1\", \"openai/gpt-5.2\", \"google/gemini-2.5-pro\", \"google/gemini-2.5-flash\", \"google/gemini-2.5-flash-lite\", \"google/gemini-2.5-flash-image-preview\", \"google/gemini-3-pro-preview\", \"google/gemini-3-pro-image-preview\", \"google/gemini-3-flash-preview\", \"anthropic/claude-sonnet-4-5\", \"anthropic/claude-opus-4-5\", \"anthropic/claude-haiku-4-5\", \"openrouter/x-ai/grok-code-fast-1\", \"openrouter/z-ai/glm-4.6\", \"openrouter/z-ai/glm-4.7\", \"openrouter/anthropic/claude-sonnet-4.5\", \"openrouter/anthropic/claude-opus-4.5\", \"openrouter/google/gemini-3-pro-preview\", \"openrouter/morph/morph-v3-large\", \"openrouter/openai/gpt-oss-120b\", \"openrouter/openai/o3-deep-research\", \"openrouter/openai/o4-mini-deep-research\" // Backup AI model to use if the primary model fails (format: provider/model-name)., temperature: 42 // Temperature for backup model. If not specified, uses primary model temperature., maxTokens: 42 // Max tokens for backup model. If not specified, uses primary model maxTokens., reasoningEffort: \"low\" // options: \"low\", \"medium\", \"high\" // Reasoning effort for backup model. If not specified, uses primary model reasoningEffort., maxRetries: 42 // Max retries for backup model. If not specified, uses primary model maxRetries. } // structure // Backup model configuration to use if the primary model fails. } // structure, // AI model configuration including provider, temperature, and tokens, retries, and json mode. Always include this.,\n tools: [{ name: \"web-search-tool\" // options: \"web-search-tool\", \"web-scrape-tool\", \"web-crawl-tool\", \"web-extract-tool\", \"research-agent-tool\", \"reddit-scrape-tool\", \"instagram-tool\", \"list-bubbles-tool\", \"get-bubble-details-tool\", \"get-trigger-detail-tool\", \"bubbleflow-validation-tool\", \"code-edit-tool\", \"chart-js-tool\", \"amazon-shopping-tool\", \"linkedin-tool\", \"tiktok-tool\", \"twitter-tool\", \"google-maps-tool\", \"youtube-tool\", \"people-search-tool\", \"sql-query-tool\" // Name of the tool type or tool bubble to enable for the AI agent, config: {} // Configuration for the tool or tool bubble }] // example for array, // Array of pre-registered tools the AI agent can use. Can be tool types (web-search-tool, web-scrape-tool, web-crawl-tool, web-extract-tool, instagram-tool). If using image models, set the tools to [],\n customTools: [{ name: \"example string\" // Unique name for your custom tool (e.g., \"calculate-tax\"), description: \"example string\" // Description of what the tool does - helps the AI know when to use it, schema: {} // Zod schema object defining the tool parameters. Can be either a plain object (e.g., { amount: z.number() }) or a Zod object directly (e.g., z.object({ amount: z.number() })). }] // example for array, // Array of custom runtime-defined tools with their own schemas and functions. Use this to add domain-specific tools without pre-registration. Example: [{ name: \"calculate-tax\", description: \"Calculates sales tax\", schema: { amount: z.number() }, func: async (input) => {...} }],\n maxIterations: 40 // default, // Maximum number of iterations for the agent workflow, 5 iterations per turn of conversation,\n streaming: false // default, // Enable real-time streaming of tokens, tool calls, and iteration progress,\n capabilities: [{ id: \"example string\" // Capability ID (e.g., \"google-doc-knowledge-base\"), inputs: { \"example_key\": [\"example string\"] } // structure // Input parameter values for this capability }] // example for array, // Capabilities that extend the agent with bundled tools, prompts, and credentials. Example: [{ id: \"google-doc-knowledge-base\", inputs: { docId: \"your-doc-id\" } }],\n expectedOutputSchema: \"example string\", // Zod schema or JSON schema string that defines the expected structure of the AI response. When provided, automatically enables JSON mode and instructs the AI to output in the exact format. Example: z.object({ summary: z.string(), items: z.array(z.object({ name: z.string(), score: z.number() })) }),\n});\n\nconst result = await aiAgent.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// response: string // The AI agents final response to the user message. For text responses, returns plain text. If JSON mode is enabled, returns a JSON string. For image generation models (like gemini-2.5-flash-image-preview), returns base64-encoded image data with data URI format (data:image/png;base64,...),\n// reasoning: string | null | undefined // The reasoning/thinking tokens from the model (if available). Present for deep research models and reasoning models.,\n// toolCalls: { tool: string // Name of the tool that was called, input: unknown // Input parameters passed to the tool, output: unknown // Output returned by the tool }[] // Array of tool calls made during the conversation,\n// iterations: number // Number of back-and-forth iterations in the agent workflow,\n// totalCost: number | undefined // Total cost in USD for this request (includes tokens + web search for deep research models),\n// error: string // Error message of the run, undefined if successful,\n// success: boolean // Whether the agent execution completed successfully\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
578
584
|
"requiredCredentials": [
|
|
579
585
|
"OPENAI_CRED",
|
|
580
586
|
"GOOGLE_GEMINI_CRED",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { CapabilityMetadata, CapabilityInput } from '@bubblelab/shared-schemas';
|
|
2
|
-
import type { CredentialType } from '@bubblelab/shared-schemas';
|
|
2
|
+
import type { CredentialType, BubbleName } from '@bubblelab/shared-schemas';
|
|
3
3
|
import type { ToolHookBefore, ToolHookAfter } from '../bubbles/service-bubble/ai-agent.js';
|
|
4
4
|
import type { BubbleContext } from '../types/bubble.js';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
/** Runtime context passed to capability tool factories and system prompt factories. */
|
|
7
7
|
export interface CapabilityRuntimeContext {
|
|
8
8
|
credentials: Partial<Record<CredentialType, string>>;
|
|
9
|
-
inputs: Record<string, string | number | boolean>;
|
|
9
|
+
inputs: Record<string, string | number | boolean | string[]>;
|
|
10
10
|
bubbleContext?: BubbleContext;
|
|
11
11
|
}
|
|
12
12
|
/** A single capability tool function that accepts parsed parameters and returns a result. */
|
|
@@ -14,12 +14,16 @@ export type CapabilityToolFunc = (params: Record<string, unknown>) => Promise<un
|
|
|
14
14
|
/** Factory that creates tool functions given a runtime context. */
|
|
15
15
|
export type CapabilityToolFactory = (context: CapabilityRuntimeContext) => Record<string, CapabilityToolFunc>;
|
|
16
16
|
/** Factory that creates a system prompt addition given a runtime context. */
|
|
17
|
-
export type CapabilitySystemPromptFactory = (context: CapabilityRuntimeContext) => string
|
|
17
|
+
export type CapabilitySystemPromptFactory = (context: CapabilityRuntimeContext) => string | Promise<string>;
|
|
18
|
+
/** Factory that creates text to append to the agent's final response. */
|
|
19
|
+
export type CapabilityResponseAppendFactory = (context: CapabilityRuntimeContext) => string | Promise<string>;
|
|
18
20
|
/** Full runtime capability definition with metadata + factories. */
|
|
19
21
|
export interface CapabilityDefinition {
|
|
20
22
|
metadata: CapabilityMetadata;
|
|
21
23
|
createTools: CapabilityToolFactory;
|
|
22
24
|
createSystemPrompt?: CapabilitySystemPromptFactory;
|
|
25
|
+
/** Called after the agent finishes — returned text is appended to the response. */
|
|
26
|
+
createResponseAppend?: CapabilityResponseAppendFactory;
|
|
23
27
|
hooks?: {
|
|
24
28
|
beforeToolCall?: ToolHookBefore;
|
|
25
29
|
afterToolCall?: ToolHookAfter;
|
|
@@ -39,9 +43,13 @@ export interface DefineCapabilityOptions {
|
|
|
39
43
|
name: string;
|
|
40
44
|
description: string;
|
|
41
45
|
schema: z.ZodObject<z.ZodRawShape>;
|
|
46
|
+
/** Bubble names used internally by this tool (e.g., ['google-drive']). */
|
|
47
|
+
internalBubbles?: BubbleName[];
|
|
42
48
|
func: (ctx: CapabilityRuntimeContext) => CapabilityToolFunc;
|
|
43
49
|
}>;
|
|
44
50
|
systemPrompt?: string | CapabilitySystemPromptFactory;
|
|
51
|
+
/** Text (or async factory) to append to the agent's final response. */
|
|
52
|
+
responseAppend?: string | CapabilityResponseAppendFactory;
|
|
45
53
|
hooks?: CapabilityDefinition['hooks'];
|
|
46
54
|
}
|
|
47
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-capability.d.ts","sourceRoot":"","sources":["../../src/capabilities/define-capability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAEhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"define-capability.d.ts","sourceRoot":"","sources":["../../src/capabilities/define-capability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAEhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,uFAAuF;AACvF,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7D,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,6FAA6F;AAC7F,MAAM,MAAM,kBAAkB,GAAG,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,wBAAwB,KAC9B,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAExC,6EAA6E;AAC7E,MAAM,MAAM,6BAA6B,GAAG,CAC1C,OAAO,EAAE,wBAAwB,KAC9B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9B,yEAAyE;AACzE,MAAM,MAAM,+BAA+B,GAAG,CAC5C,OAAO,EAAE,wBAAwB,KAC9B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9B,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,qBAAqB,CAAC;IACnC,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;IACnD,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,+BAA+B,CAAC;IACvD,KAAK,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,CAAC;CACH;AAED,2FAA2F;AAC3F,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,cAAc,EAAE,CAAC;IACtC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnC,0EAA0E;QAC1E,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,kBAAkB,CAAC;KAC7D,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,6BAA6B,CAAC;IACtD,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC;IAC1D,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,GAC/B,oBAAoB,CA0DtB"}
|
|
@@ -12,6 +12,7 @@ export function defineCapability(options) {
|
|
|
12
12
|
parameterSchema: zodToJsonSchema(tool.schema, {
|
|
13
13
|
$refStrategy: 'none',
|
|
14
14
|
}),
|
|
15
|
+
...(tool.internalBubbles ? { internalBubbles: tool.internalBubbles } : {}),
|
|
15
16
|
}));
|
|
16
17
|
// Build serializable metadata
|
|
17
18
|
const metadata = {
|
|
@@ -40,10 +41,17 @@ export function defineCapability(options) {
|
|
|
40
41
|
const createSystemPrompt = typeof options.systemPrompt === 'function'
|
|
41
42
|
? options.systemPrompt
|
|
42
43
|
: undefined;
|
|
44
|
+
// Build response append factory
|
|
45
|
+
const createResponseAppend = typeof options.responseAppend === 'function'
|
|
46
|
+
? options.responseAppend
|
|
47
|
+
: typeof options.responseAppend === 'string'
|
|
48
|
+
? () => options.responseAppend
|
|
49
|
+
: undefined;
|
|
43
50
|
return {
|
|
44
51
|
metadata,
|
|
45
52
|
createTools,
|
|
46
53
|
createSystemPrompt,
|
|
54
|
+
createResponseAppend,
|
|
47
55
|
hooks: options.hooks,
|
|
48
56
|
};
|
|
49
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-capability.js","sourceRoot":"","sources":["../../src/capabilities/define-capability.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"define-capability.js","sourceRoot":"","sources":["../../src/capabilities/define-capability.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAkErD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgC;IAEhC,uDAAuD;IACvD,MAAM,QAAQ,GAAwB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE;YAC5C,YAAY,EAAE,MAAM;SACrB,CAA4B;QAC7B,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC,CAAC,CAAC;IAEJ,8BAA8B;IAC9B,MAAM,QAAQ,GAAuB;QACnC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO;QACnC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,QAAQ;QACf,oBAAoB,EAClB,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;YACtC,CAAC,CAAC,OAAO,CAAC,YAAY;YACtB,CAAC,CAAC,SAAS;KAChB,CAAC;IAEF,8DAA8D;IAC9D,MAAM,WAAW,GAA0B,CAAC,GAAG,EAAE,EAAE;QACjD,MAAM,SAAS,GAAuC,EAAE,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,8BAA8B;IAC9B,MAAM,kBAAkB,GACtB,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU;QACxC,CAAC,CAAC,OAAO,CAAC,YAAY;QACtB,CAAC,CAAC,SAAS,CAAC;IAEhB,gCAAgC;IAChC,MAAM,oBAAoB,GACxB,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU;QAC1C,CAAC,CAAC,OAAO,CAAC,cAAc;QACxB,CAAC,CAAC,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ;YAC1C,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,cAAwB;YACxC,CAAC,CAAC,SAAS,CAAC;IAElB,OAAO;QACL,QAAQ;QACR,WAAW;QACX,kBAAkB;QAClB,oBAAoB;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { defineCapability, type CapabilityDefinition, type CapabilityRuntimeContext, type CapabilityToolFunc, type CapabilityToolFactory, type CapabilitySystemPromptFactory, type DefineCapabilityOptions, } from './define-capability.js';
|
|
1
|
+
export { defineCapability, type CapabilityDefinition, type CapabilityRuntimeContext, type CapabilityToolFunc, type CapabilityToolFactory, type CapabilitySystemPromptFactory, type CapabilityResponseAppendFactory, type DefineCapabilityOptions, } from './define-capability.js';
|
|
2
2
|
export { registerCapability, getCapability, getAllCapabilities, getAllCapabilityMetadata, getCapabilityMetadataById, } from './registry.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAQjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bubblelab/bubble-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.113",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"puppeteer-core": "^24.10.0",
|
|
41
41
|
"resend": "^4.8.0",
|
|
42
42
|
"zod": "^3.24.1",
|
|
43
|
-
"@bubblelab/shared-schemas": "0.1.
|
|
43
|
+
"@bubblelab/shared-schemas": "0.1.113"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^20.12.12",
|