@bubblelab/bubble-core 0.1.179 → 0.1.180

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 (93) hide show
  1. package/dist/bubble-bundle.d.ts +200 -195
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +12 -2
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubble-flow/bubble-flow-class.d.ts +2 -8
  6. package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -1
  7. package/dist/bubble-flow/bubble-flow-class.js.map +1 -1
  8. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  9. package/dist/bubbles/service-bubble/ai-agent.d.ts +104 -98
  10. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  11. package/dist/bubbles/service-bubble/ai-agent.js +146 -8
  12. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  13. package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
  14. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
  15. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
  16. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
  17. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
  18. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +38 -38
  19. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
  20. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
  21. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
  22. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  23. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +126 -126
  24. package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
  25. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +2 -2
  26. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
  27. package/dist/bubbles/service-bubble/attio/attio.d.ts +6 -6
  28. package/dist/bubbles/service-bubble/attio/attio.schema.d.ts +6 -6
  29. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +1 -1
  30. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
  31. package/dist/bubbles/service-bubble/capability-pipeline.d.ts.map +1 -1
  32. package/dist/bubbles/service-bubble/capability-pipeline.js +4 -1
  33. package/dist/bubbles/service-bubble/capability-pipeline.js.map +1 -1
  34. package/dist/bubbles/service-bubble/firecrawl.d.ts +334 -334
  35. package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
  36. package/dist/bubbles/service-bubble/github.d.ts +60 -60
  37. package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
  38. package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
  39. package/dist/bubbles/service-bubble/google-drive.d.ts +8 -8
  40. package/dist/bubbles/service-bubble/http.d.ts +2 -2
  41. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  42. package/dist/bubbles/service-bubble/jira/jira.d.ts +30 -30
  43. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
  44. package/dist/bubbles/service-bubble/notion/notion.d.ts +168 -168
  45. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
  46. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  47. package/dist/bubbles/service-bubble/posthog/posthog.d.ts +10 -10
  48. package/dist/bubbles/service-bubble/posthog/posthog.schema.d.ts +14 -14
  49. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  50. package/dist/bubbles/service-bubble/slack/slack.d.ts +392 -392
  51. package/dist/bubbles/service-bubble/slack/slack.d.ts.map +1 -1
  52. package/dist/bubbles/service-bubble/slack/slack.js.map +1 -1
  53. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
  54. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
  55. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
  56. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
  57. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  58. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +13 -4
  59. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts.map +1 -1
  60. package/dist/bubbles/tool-bubble/code-edit-tool.js +66 -75
  61. package/dist/bubbles/tool-bubble/code-edit-tool.js.map +1 -1
  62. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +20 -20
  63. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.d.ts.map +1 -1
  64. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.js +1 -0
  65. package/dist/bubbles/tool-bubble/get-trigger-detail-tool.js.map +1 -1
  66. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +380 -380
  67. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +44 -44
  68. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
  69. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +10 -10
  70. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  71. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
  72. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
  73. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +8 -8
  74. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
  75. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +22 -22
  76. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +10 -10
  77. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +8 -8
  78. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +20 -20
  79. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +8 -8
  80. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +36 -36
  81. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +10 -10
  82. package/dist/bubbles.json +19 -9
  83. package/dist/capabilities/define-capability.d.ts +4 -0
  84. package/dist/capabilities/define-capability.d.ts.map +1 -1
  85. package/dist/capabilities/define-capability.js +4 -0
  86. package/dist/capabilities/define-capability.js.map +1 -1
  87. package/dist/index.d.ts +1 -1
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +1 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/types/bubble.d.ts +2 -1
  92. package/dist/types/bubble.d.ts.map +1 -1
  93. package/package.json +2 -2
@@ -13,6 +13,7 @@ export type ToolHookContext = {
13
13
  toolInput: unknown;
14
14
  toolOutput?: BubbleResult<unknown>;
15
15
  messages: BaseMessage[];
16
+ bubbleContext?: BubbleContext;
16
17
  };
17
18
  export type ToolHookAfter = (context: ToolHookContext) => Promise<{
18
19
  messages: BaseMessage[];
@@ -21,6 +22,8 @@ export type ToolHookAfter = (context: ToolHookContext) => Promise<{
21
22
  export type ToolHookBefore = (context: ToolHookContext) => Promise<{
22
23
  messages: BaseMessage[];
23
24
  toolInput: Record<string, any>;
25
+ shouldSkip?: boolean;
26
+ skipMessage?: string;
24
27
  }>;
25
28
  export type AfterLLMCallContext = {
26
29
  messages: BaseMessage[];
@@ -43,8 +46,8 @@ declare const AIAgentParamsSchema: z.ZodObject<{
43
46
  description: z.ZodOptional<z.ZodString>;
44
47
  }, "strip", z.ZodTypeAny, {
45
48
  type: "base64";
46
- mimeType: string;
47
49
  data: string;
50
+ mimeType: string;
48
51
  description?: string | undefined;
49
52
  }, {
50
53
  data: string;
@@ -83,7 +86,7 @@ declare const AIAgentParamsSchema: z.ZodObject<{
83
86
  systemPrompt: z.ZodDefault<z.ZodString>;
84
87
  name: z.ZodOptional<z.ZodDefault<z.ZodString>>;
85
88
  model: z.ZodDefault<z.ZodObject<{
86
- model: z.ZodEnum<["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-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "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/anthropic/claude-opus-4.6", "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"]>;
89
+ model: z.ZodEnum<["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-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "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-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "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"]>;
87
90
  temperature: z.ZodDefault<z.ZodNumber>;
88
91
  maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
89
92
  reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
@@ -91,26 +94,26 @@ declare const AIAgentParamsSchema: z.ZodObject<{
91
94
  provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
92
95
  jsonMode: z.ZodDefault<z.ZodBoolean>;
93
96
  backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{
94
- model: z.ZodEnum<["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-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "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/anthropic/claude-opus-4.6", "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"]>;
97
+ model: z.ZodEnum<["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-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "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-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "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"]>;
95
98
  temperature: z.ZodOptional<z.ZodNumber>;
96
99
  maxTokens: z.ZodOptional<z.ZodNumber>;
97
100
  reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
98
101
  maxRetries: z.ZodOptional<z.ZodNumber>;
99
102
  }, "strip", z.ZodTypeAny, {
100
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
103
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
101
104
  temperature?: number | undefined;
102
105
  maxTokens?: number | undefined;
103
106
  reasoningEffort?: "low" | "medium" | "high" | undefined;
104
107
  maxRetries?: number | undefined;
105
108
  }, {
106
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
109
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
107
110
  temperature?: number | undefined;
108
111
  maxTokens?: number | undefined;
109
112
  reasoningEffort?: "low" | "medium" | "high" | undefined;
110
113
  maxRetries?: number | undefined;
111
114
  }>>>;
112
115
  }, "strip", z.ZodTypeAny, {
113
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
116
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
114
117
  temperature: number;
115
118
  maxTokens: number;
116
119
  maxRetries: number;
@@ -118,14 +121,14 @@ declare const AIAgentParamsSchema: z.ZodObject<{
118
121
  reasoningEffort?: "low" | "medium" | "high" | undefined;
119
122
  provider?: string[] | undefined;
120
123
  backupModel?: {
121
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
124
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
122
125
  temperature?: number | undefined;
123
126
  maxTokens?: number | undefined;
124
127
  reasoningEffort?: "low" | "medium" | "high" | undefined;
125
128
  maxRetries?: number | undefined;
126
129
  } | undefined;
127
130
  }, {
128
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
131
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
129
132
  temperature?: number | undefined;
130
133
  maxTokens?: number | undefined;
131
134
  reasoningEffort?: "low" | "medium" | "high" | undefined;
@@ -133,7 +136,7 @@ declare const AIAgentParamsSchema: z.ZodObject<{
133
136
  provider?: string[] | undefined;
134
137
  jsonMode?: boolean | undefined;
135
138
  backupModel?: {
136
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
139
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
137
140
  temperature?: number | undefined;
138
141
  maxTokens?: number | undefined;
139
142
  reasoningEffort?: "low" | "medium" | "high" | undefined;
@@ -161,12 +164,12 @@ declare const AIAgentParamsSchema: z.ZodObject<{
161
164
  }, "strip", z.ZodTypeAny, {
162
165
  description: string;
163
166
  name: string;
164
- schema: Record<string, unknown> | z.ZodTypeAny;
167
+ schema: z.ZodTypeAny | Record<string, unknown>;
165
168
  func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>;
166
169
  }, {
167
170
  description: string;
168
171
  name: string;
169
- schema: Record<string, unknown> | z.ZodTypeAny;
172
+ schema: z.ZodTypeAny | Record<string, unknown>;
170
173
  func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>;
171
174
  }>, "many">>>;
172
175
  maxIterations: z.ZodDefault<z.ZodNumber>;
@@ -190,8 +193,19 @@ declare const AIAgentParamsSchema: z.ZodObject<{
190
193
  enableSlackHistory: z.ZodDefault<z.ZodBoolean>;
191
194
  }, "strip", z.ZodTypeAny, {
192
195
  message: string;
196
+ images: ({
197
+ type: "base64";
198
+ data: string;
199
+ mimeType: string;
200
+ description?: string | undefined;
201
+ } | {
202
+ type: "url";
203
+ url: string;
204
+ description?: string | undefined;
205
+ })[];
206
+ systemPrompt: string;
193
207
  model: {
194
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
208
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
195
209
  temperature: number;
196
210
  maxTokens: number;
197
211
  maxRetries: number;
@@ -199,45 +213,34 @@ declare const AIAgentParamsSchema: z.ZodObject<{
199
213
  reasoningEffort?: "low" | "medium" | "high" | undefined;
200
214
  provider?: string[] | undefined;
201
215
  backupModel?: {
202
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
216
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
203
217
  temperature?: number | undefined;
204
218
  maxTokens?: number | undefined;
205
219
  reasoningEffort?: "low" | "medium" | "high" | undefined;
206
220
  maxRetries?: number | undefined;
207
221
  } | undefined;
208
222
  };
209
- streaming: boolean;
210
223
  tools: {
211
224
  name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool";
212
225
  credentials?: Partial<Record<CredentialType, string>> | undefined;
213
226
  config?: Record<string, unknown> | undefined;
214
227
  }[];
215
- images: ({
216
- type: "base64";
217
- mimeType: string;
218
- data: string;
219
- description?: string | undefined;
220
- } | {
221
- type: "url";
222
- url: string;
223
- description?: string | undefined;
224
- })[];
225
- systemPrompt: string;
226
228
  maxIterations: number;
229
+ streaming: boolean;
227
230
  memoryEnabled: boolean;
228
231
  enableSlackHistory: boolean;
229
232
  name?: string | undefined;
230
- credentials?: Partial<Record<CredentialType, string>> | undefined;
231
233
  conversationHistory?: {
232
234
  role: "user" | "assistant" | "tool";
233
235
  content: string;
234
236
  toolCallId?: string | undefined;
235
237
  name?: string | undefined;
236
238
  }[] | undefined;
239
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
237
240
  customTools?: {
238
241
  description: string;
239
242
  name: string;
240
- schema: Record<string, unknown> | z.ZodTypeAny;
243
+ schema: z.ZodTypeAny | Record<string, unknown>;
241
244
  func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>;
242
245
  }[] | undefined;
243
246
  capabilities?: {
@@ -249,9 +252,25 @@ declare const AIAgentParamsSchema: z.ZodObject<{
249
252
  }, {
250
253
  message: string;
251
254
  name?: string | undefined;
252
- credentials?: Partial<Record<CredentialType, string>> | undefined;
255
+ images?: ({
256
+ data: string;
257
+ type?: "base64" | undefined;
258
+ description?: string | undefined;
259
+ mimeType?: string | undefined;
260
+ } | {
261
+ type: "url";
262
+ url: string;
263
+ description?: string | undefined;
264
+ })[] | undefined;
265
+ conversationHistory?: {
266
+ role: "user" | "assistant" | "tool";
267
+ content: string;
268
+ toolCallId?: string | undefined;
269
+ name?: string | undefined;
270
+ }[] | undefined;
271
+ systemPrompt?: string | undefined;
253
272
  model?: {
254
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
273
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
255
274
  temperature?: number | undefined;
256
275
  maxTokens?: number | undefined;
257
276
  reasoningEffort?: "low" | "medium" | "high" | undefined;
@@ -259,43 +278,27 @@ declare const AIAgentParamsSchema: z.ZodObject<{
259
278
  provider?: string[] | undefined;
260
279
  jsonMode?: boolean | undefined;
261
280
  backupModel?: {
262
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
281
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
263
282
  temperature?: number | undefined;
264
283
  maxTokens?: number | undefined;
265
284
  reasoningEffort?: "low" | "medium" | "high" | undefined;
266
285
  maxRetries?: number | undefined;
267
286
  } | undefined;
268
287
  } | undefined;
269
- streaming?: boolean | undefined;
288
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
270
289
  tools?: {
271
290
  name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool";
272
291
  credentials?: Partial<Record<CredentialType, string>> | undefined;
273
292
  config?: Record<string, unknown> | undefined;
274
293
  }[] | undefined;
275
- images?: ({
276
- data: string;
277
- type?: "base64" | undefined;
278
- description?: string | undefined;
279
- mimeType?: string | undefined;
280
- } | {
281
- type: "url";
282
- url: string;
283
- description?: string | undefined;
284
- })[] | undefined;
285
- conversationHistory?: {
286
- role: "user" | "assistant" | "tool";
287
- content: string;
288
- toolCallId?: string | undefined;
289
- name?: string | undefined;
290
- }[] | undefined;
291
- systemPrompt?: string | undefined;
292
294
  customTools?: {
293
295
  description: string;
294
296
  name: string;
295
- schema: Record<string, unknown> | z.ZodTypeAny;
297
+ schema: z.ZodTypeAny | Record<string, unknown>;
296
298
  func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>;
297
299
  }[] | undefined;
298
300
  maxIterations?: number | undefined;
301
+ streaming?: boolean | undefined;
299
302
  capabilities?: {
300
303
  id: string;
301
304
  credentials?: Partial<Record<CredentialType, string>> | undefined;
@@ -377,8 +380,8 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
377
380
  description: z.ZodOptional<z.ZodString>;
378
381
  }, "strip", z.ZodTypeAny, {
379
382
  type: "base64";
380
- mimeType: string;
381
383
  data: string;
384
+ mimeType: string;
382
385
  description?: string | undefined;
383
386
  }, {
384
387
  data: string;
@@ -417,7 +420,7 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
417
420
  systemPrompt: z.ZodDefault<z.ZodString>;
418
421
  name: z.ZodOptional<z.ZodDefault<z.ZodString>>;
419
422
  model: z.ZodDefault<z.ZodObject<{
420
- model: z.ZodEnum<["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-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "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/anthropic/claude-opus-4.6", "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"]>;
423
+ model: z.ZodEnum<["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-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "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-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "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"]>;
421
424
  temperature: z.ZodDefault<z.ZodNumber>;
422
425
  maxTokens: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
423
426
  reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
@@ -425,26 +428,26 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
425
428
  provider: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
426
429
  jsonMode: z.ZodDefault<z.ZodBoolean>;
427
430
  backupModel: z.ZodOptional<z.ZodDefault<z.ZodObject<{
428
- model: z.ZodEnum<["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-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "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/anthropic/claude-opus-4.6", "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"]>;
431
+ model: z.ZodEnum<["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-sonnet-4-6", "anthropic/claude-opus-4-5", "anthropic/claude-opus-4-6", "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-sonnet-4.6", "openrouter/anthropic/claude-opus-4.5", "openrouter/anthropic/claude-opus-4.6", "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"]>;
429
432
  temperature: z.ZodOptional<z.ZodNumber>;
430
433
  maxTokens: z.ZodOptional<z.ZodNumber>;
431
434
  reasoningEffort: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
432
435
  maxRetries: z.ZodOptional<z.ZodNumber>;
433
436
  }, "strip", z.ZodTypeAny, {
434
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
437
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
435
438
  temperature?: number | undefined;
436
439
  maxTokens?: number | undefined;
437
440
  reasoningEffort?: "low" | "medium" | "high" | undefined;
438
441
  maxRetries?: number | undefined;
439
442
  }, {
440
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
443
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
441
444
  temperature?: number | undefined;
442
445
  maxTokens?: number | undefined;
443
446
  reasoningEffort?: "low" | "medium" | "high" | undefined;
444
447
  maxRetries?: number | undefined;
445
448
  }>>>;
446
449
  }, "strip", z.ZodTypeAny, {
447
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
450
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
448
451
  temperature: number;
449
452
  maxTokens: number;
450
453
  maxRetries: number;
@@ -452,14 +455,14 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
452
455
  reasoningEffort?: "low" | "medium" | "high" | undefined;
453
456
  provider?: string[] | undefined;
454
457
  backupModel?: {
455
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
458
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
456
459
  temperature?: number | undefined;
457
460
  maxTokens?: number | undefined;
458
461
  reasoningEffort?: "low" | "medium" | "high" | undefined;
459
462
  maxRetries?: number | undefined;
460
463
  } | undefined;
461
464
  }, {
462
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
465
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
463
466
  temperature?: number | undefined;
464
467
  maxTokens?: number | undefined;
465
468
  reasoningEffort?: "low" | "medium" | "high" | undefined;
@@ -467,7 +470,7 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
467
470
  provider?: string[] | undefined;
468
471
  jsonMode?: boolean | undefined;
469
472
  backupModel?: {
470
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
473
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
471
474
  temperature?: number | undefined;
472
475
  maxTokens?: number | undefined;
473
476
  reasoningEffort?: "low" | "medium" | "high" | undefined;
@@ -495,12 +498,12 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
495
498
  }, "strip", z.ZodTypeAny, {
496
499
  description: string;
497
500
  name: string;
498
- schema: Record<string, unknown> | z.ZodTypeAny;
501
+ schema: z.ZodTypeAny | Record<string, unknown>;
499
502
  func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>;
500
503
  }, {
501
504
  description: string;
502
505
  name: string;
503
- schema: Record<string, unknown> | z.ZodTypeAny;
506
+ schema: z.ZodTypeAny | Record<string, unknown>;
504
507
  func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>;
505
508
  }>, "many">>>;
506
509
  maxIterations: z.ZodDefault<z.ZodNumber>;
@@ -524,8 +527,19 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
524
527
  enableSlackHistory: z.ZodDefault<z.ZodBoolean>;
525
528
  }, "strip", z.ZodTypeAny, {
526
529
  message: string;
530
+ images: ({
531
+ type: "base64";
532
+ data: string;
533
+ mimeType: string;
534
+ description?: string | undefined;
535
+ } | {
536
+ type: "url";
537
+ url: string;
538
+ description?: string | undefined;
539
+ })[];
540
+ systemPrompt: string;
527
541
  model: {
528
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
542
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
529
543
  temperature: number;
530
544
  maxTokens: number;
531
545
  maxRetries: number;
@@ -533,45 +547,34 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
533
547
  reasoningEffort?: "low" | "medium" | "high" | undefined;
534
548
  provider?: string[] | undefined;
535
549
  backupModel?: {
536
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
550
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
537
551
  temperature?: number | undefined;
538
552
  maxTokens?: number | undefined;
539
553
  reasoningEffort?: "low" | "medium" | "high" | undefined;
540
554
  maxRetries?: number | undefined;
541
555
  } | undefined;
542
556
  };
543
- streaming: boolean;
544
557
  tools: {
545
558
  name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool";
546
559
  credentials?: Partial<Record<CredentialType, string>> | undefined;
547
560
  config?: Record<string, unknown> | undefined;
548
561
  }[];
549
- images: ({
550
- type: "base64";
551
- mimeType: string;
552
- data: string;
553
- description?: string | undefined;
554
- } | {
555
- type: "url";
556
- url: string;
557
- description?: string | undefined;
558
- })[];
559
- systemPrompt: string;
560
562
  maxIterations: number;
563
+ streaming: boolean;
561
564
  memoryEnabled: boolean;
562
565
  enableSlackHistory: boolean;
563
566
  name?: string | undefined;
564
- credentials?: Partial<Record<CredentialType, string>> | undefined;
565
567
  conversationHistory?: {
566
568
  role: "user" | "assistant" | "tool";
567
569
  content: string;
568
570
  toolCallId?: string | undefined;
569
571
  name?: string | undefined;
570
572
  }[] | undefined;
573
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
571
574
  customTools?: {
572
575
  description: string;
573
576
  name: string;
574
- schema: Record<string, unknown> | z.ZodTypeAny;
577
+ schema: z.ZodTypeAny | Record<string, unknown>;
575
578
  func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>;
576
579
  }[] | undefined;
577
580
  capabilities?: {
@@ -583,9 +586,25 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
583
586
  }, {
584
587
  message: string;
585
588
  name?: string | undefined;
586
- credentials?: Partial<Record<CredentialType, string>> | undefined;
589
+ images?: ({
590
+ data: string;
591
+ type?: "base64" | undefined;
592
+ description?: string | undefined;
593
+ mimeType?: string | undefined;
594
+ } | {
595
+ type: "url";
596
+ url: string;
597
+ description?: string | undefined;
598
+ })[] | undefined;
599
+ conversationHistory?: {
600
+ role: "user" | "assistant" | "tool";
601
+ content: string;
602
+ toolCallId?: string | undefined;
603
+ name?: string | undefined;
604
+ }[] | undefined;
605
+ systemPrompt?: string | undefined;
587
606
  model?: {
588
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
607
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
589
608
  temperature?: number | undefined;
590
609
  maxTokens?: number | undefined;
591
610
  reasoningEffort?: "low" | "medium" | "high" | undefined;
@@ -593,43 +612,27 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
593
612
  provider?: string[] | undefined;
594
613
  jsonMode?: boolean | undefined;
595
614
  backupModel?: {
596
- 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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/anthropic/claude-opus-4.6" | "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";
615
+ 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-sonnet-4-6" | "anthropic/claude-opus-4-5" | "anthropic/claude-opus-4-6" | "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-sonnet-4.6" | "openrouter/anthropic/claude-opus-4.5" | "openrouter/anthropic/claude-opus-4.6" | "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";
597
616
  temperature?: number | undefined;
598
617
  maxTokens?: number | undefined;
599
618
  reasoningEffort?: "low" | "medium" | "high" | undefined;
600
619
  maxRetries?: number | undefined;
601
620
  } | undefined;
602
621
  } | undefined;
603
- streaming?: boolean | undefined;
622
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
604
623
  tools?: {
605
624
  name: "get-bubble-details-tool" | "get-trigger-detail-tool" | "list-bubbles-tool" | "list-capabilities-tool" | "sql-query-tool" | "chart-js-tool" | "web-search-tool" | "web-scrape-tool" | "web-crawl-tool" | "web-extract-tool" | "research-agent-tool" | "reddit-scrape-tool" | "bubbleflow-validation-tool" | "code-edit-tool" | "instagram-tool" | "linkedin-tool" | "tiktok-tool" | "twitter-tool" | "google-maps-tool" | "youtube-tool" | "amazon-shopping-tool" | "people-search-tool";
606
625
  credentials?: Partial<Record<CredentialType, string>> | undefined;
607
626
  config?: Record<string, unknown> | undefined;
608
627
  }[] | undefined;
609
- images?: ({
610
- data: string;
611
- type?: "base64" | undefined;
612
- description?: string | undefined;
613
- mimeType?: string | undefined;
614
- } | {
615
- type: "url";
616
- url: string;
617
- description?: string | undefined;
618
- })[] | undefined;
619
- conversationHistory?: {
620
- role: "user" | "assistant" | "tool";
621
- content: string;
622
- toolCallId?: string | undefined;
623
- name?: string | undefined;
624
- }[] | undefined;
625
- systemPrompt?: string | undefined;
626
628
  customTools?: {
627
629
  description: string;
628
630
  name: string;
629
- schema: Record<string, unknown> | z.ZodTypeAny;
631
+ schema: z.ZodTypeAny | Record<string, unknown>;
630
632
  func: (args_0: Record<string, unknown>, ...args: unknown[]) => Promise<unknown>;
631
633
  }[] | undefined;
632
634
  maxIterations?: number | undefined;
635
+ streaming?: boolean | undefined;
633
636
  capabilities?: {
634
637
  id: string;
635
638
  credentials?: Partial<Record<CredentialType, string>> | undefined;
@@ -690,6 +693,9 @@ export declare class AIAgentBubble extends ServiceBubble<AIAgentParamsParsed, AI
690
693
  private factory;
691
694
  private beforeToolCallHook;
692
695
  private afterToolCallHook;
696
+ /** Capability-scoped hooks: only fire for the capability's own tool names */
697
+ private capabilityBeforeHooks;
698
+ private capabilityAfterHooks;
693
699
  private afterLLMCallHook;
694
700
  private streamingCallback;
695
701
  private shouldStopAfterTools;