@bubblelab/bubble-core 0.1.112 → 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.
Files changed (82) hide show
  1. package/dist/bubble-bundle.d.ts +85 -85
  2. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts +76 -74
  4. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  5. package/dist/bubbles/service-bubble/ai-agent.js +40 -5
  6. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  7. package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
  8. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
  9. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
  10. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
  11. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
  12. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
  13. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
  14. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
  15. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  16. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +88 -88
  17. package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
  18. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +2 -2
  19. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
  20. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +1 -1
  21. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
  22. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +10 -10
  23. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +24 -24
  24. package/dist/bubbles/service-bubble/firecrawl.d.ts +338 -338
  25. package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
  26. package/dist/bubbles/service-bubble/github.d.ts +60 -60
  27. package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
  28. package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
  29. package/dist/bubbles/service-bubble/google-drive.d.ts +8 -8
  30. package/dist/bubbles/service-bubble/http.d.ts +2 -2
  31. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  32. package/dist/bubbles/service-bubble/jira/jira.d.ts +30 -30
  33. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
  34. package/dist/bubbles/service-bubble/notion/notion.d.ts +848 -848
  35. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
  36. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  37. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  38. package/dist/bubbles/service-bubble/salesforce/index.d.ts +4 -0
  39. package/dist/bubbles/service-bubble/salesforce/index.d.ts.map +1 -0
  40. package/dist/bubbles/service-bubble/salesforce/index.js +4 -0
  41. package/dist/bubbles/service-bubble/salesforce/index.js.map +1 -0
  42. package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts +1331 -0
  43. package/dist/bubbles/service-bubble/salesforce/salesforce.d.ts.map +1 -0
  44. package/dist/bubbles/service-bubble/salesforce/salesforce.js +618 -0
  45. package/dist/bubbles/service-bubble/salesforce/salesforce.js.map +1 -0
  46. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts +1445 -0
  47. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.d.ts.map +1 -0
  48. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js +609 -0
  49. package/dist/bubbles/service-bubble/salesforce/salesforce.schema.js.map +1 -0
  50. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts +87 -0
  51. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.d.ts.map +1 -0
  52. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js +181 -0
  53. package/dist/bubbles/service-bubble/salesforce/salesforce.utils.js.map +1 -0
  54. package/dist/bubbles/service-bubble/slack/slack.d.ts +324 -324
  55. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
  56. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
  57. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
  58. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
  59. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  60. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +28 -28
  61. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +310 -310
  62. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +44 -44
  63. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
  64. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  65. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  66. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
  67. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
  68. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +36 -36
  69. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
  70. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
  71. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
  72. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
  73. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +18 -18
  74. package/dist/bubbles.json +1 -1
  75. package/dist/capabilities/define-capability.d.ts +6 -0
  76. package/dist/capabilities/define-capability.d.ts.map +1 -1
  77. package/dist/capabilities/define-capability.js +7 -0
  78. package/dist/capabilities/define-capability.js.map +1 -1
  79. package/dist/capabilities/index.d.ts +1 -1
  80. package/dist/capabilities/index.d.ts.map +1 -1
  81. package/dist/capabilities/index.js.map +1 -1
  82. 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
- x: number;
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
- x: number;
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
- x: number;
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
- x: number;
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
- x: number;
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
- x: number;
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
- x: number;
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
- x: number;
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: "image" | "input" | "file" | "section" | "divider" | "header" | "context" | "actions";
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: "image" | "input" | "file" | "section" | "divider" | "header" | "context" | "actions";
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: "image" | "input" | "file" | "section" | "divider" | "header" | "context" | "actions";
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: "image" | "input" | "file" | "section" | "divider" | "header" | "context" | "actions";
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: "image" | "input" | "file" | "section" | "divider" | "header" | "context" | "actions";
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: "image" | "input" | "file" | "section" | "divider" | "header" | "context" | "actions";
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: "image" | "input" | "file" | "section" | "divider" | "header" | "context" | "actions";
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: "image" | "input" | "file" | "section" | "divider" | "header" | "context" | "actions";
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-06T14:59:35.707Z",
3
+ "generatedAt": "2026-02-06T18:04:54.732Z",
4
4
  "totalCount": 60,
5
5
  "bubbles": [
6
6
  {
@@ -15,11 +15,15 @@ export type CapabilityToolFunc = (params: Record<string, unknown>) => Promise<un
15
15
  export type CapabilityToolFactory = (context: CapabilityRuntimeContext) => Record<string, CapabilityToolFunc>;
16
16
  /** Factory that creates a system prompt addition given a runtime context. */
17
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;
@@ -44,6 +48,8 @@ export interface DefineCapabilityOptions {
44
48
  func: (ctx: CapabilityRuntimeContext) => CapabilityToolFunc;
45
49
  }>;
46
50
  systemPrompt?: string | CapabilitySystemPromptFactory;
51
+ /** Text (or async factory) to append to the agent's final response. */
52
+ responseAppend?: string | CapabilityResponseAppendFactory;
47
53
  hooks?: CapabilityDefinition['hooks'];
48
54
  }
49
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,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,oEAAoE;AACpE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,qBAAqB,CAAC;IACnC,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;IACnD,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,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,uBAAuB,GAC/B,oBAAoB,CAiDtB"}
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"}
@@ -41,10 +41,17 @@ export function defineCapability(options) {
41
41
  const createSystemPrompt = typeof options.systemPrompt === 'function'
42
42
  ? options.systemPrompt
43
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;
44
50
  return {
45
51
  metadata,
46
52
  createTools,
47
53
  createSystemPrompt,
54
+ createResponseAppend,
48
55
  hooks: options.hooks,
49
56
  };
50
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;AAyDrD;;;;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,OAAO;QACL,QAAQ;QACR,WAAW;QACX,kBAAkB;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,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,GAOjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,eAAe,CAAC"}
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.112",
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.112"
43
+ "@bubblelab/shared-schemas": "0.1.113"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^20.12.12",