broods 0.41.0 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -8,12 +8,17 @@ declare const AGENT_HOOK_EVENT_NAMES: readonly ["agent.started", "agent.step.fin
8
8
  type AgentHookEventName = (typeof AGENT_HOOK_EVENT_NAMES)[number];
9
9
 
10
10
  /**
11
- * Every Vercel AI SDK provider that ships language models, plus `custom`
12
- * (any OpenAI-compatible endpoint) and `minimax`. Image-, speech- and
13
- * transcription-only providers are deliberately absent: they cannot back
14
- * `config.model`.
11
+ * Every Vercel AI SDK provider that ships language models, the community
12
+ * providers on the same spec that take an API key (`cloudflare`, `llmgateway`,
13
+ * `ollama`, `openrouter`), and `custom` (any OpenAI-compatible endpoint).
14
+ * Image-, speech- and transcription-only providers are deliberately absent:
15
+ * they cannot back `config.model`.
15
16
  */
16
17
  declare const MODEL_PROVIDERS: {
18
+ readonly alibaba: {
19
+ readonly label: "Alibaba Qwen";
20
+ readonly modelPlaceholder: "qwen3-max";
21
+ };
17
22
  readonly anthropic: {
18
23
  readonly label: "Anthropic";
19
24
  readonly modelPlaceholder: "claude-sonnet-4-5-20250929";
@@ -34,6 +39,10 @@ declare const MODEL_PROVIDERS: {
34
39
  readonly label: "Cerebras";
35
40
  readonly modelPlaceholder: "llama3.1-8b";
36
41
  };
42
+ readonly cloudflare: {
43
+ readonly label: "Cloudflare Workers AI";
44
+ readonly modelPlaceholder: "@cf/meta/llama-3.3-70b-instruct-fp8-fast";
45
+ };
37
46
  readonly cohere: {
38
47
  readonly label: "Cohere";
39
48
  readonly modelPlaceholder: "command-a-03-2025";
@@ -62,6 +71,14 @@ declare const MODEL_PROVIDERS: {
62
71
  readonly label: "Groq";
63
72
  readonly modelPlaceholder: "llama-3.3-70b-versatile";
64
73
  };
74
+ readonly huggingface: {
75
+ readonly label: "Hugging Face";
76
+ readonly modelPlaceholder: "meta-llama/Llama-3.3-70B-Instruct";
77
+ };
78
+ readonly llmgateway: {
79
+ readonly label: "LLM Gateway";
80
+ readonly modelPlaceholder: "openai/gpt-4.1-mini";
81
+ };
65
82
  readonly minimax: {
66
83
  readonly label: "MiniMax";
67
84
  readonly modelPlaceholder: "MiniMax-M2.7";
@@ -70,10 +87,22 @@ declare const MODEL_PROVIDERS: {
70
87
  readonly label: "Mistral";
71
88
  readonly modelPlaceholder: "mistral-large-latest";
72
89
  };
90
+ readonly moonshotai: {
91
+ readonly label: "Moonshot AI Kimi";
92
+ readonly modelPlaceholder: "kimi-k2.6";
93
+ };
94
+ readonly ollama: {
95
+ readonly label: "Ollama";
96
+ readonly modelPlaceholder: "gpt-oss:120b";
97
+ };
73
98
  readonly openai: {
74
99
  readonly label: "OpenAI";
75
100
  readonly modelPlaceholder: "gpt-4.1-mini";
76
101
  };
102
+ readonly openrouter: {
103
+ readonly label: "OpenRouter";
104
+ readonly modelPlaceholder: "anthropic/claude-sonnet-4.5";
105
+ };
77
106
  readonly perplexity: {
78
107
  readonly label: "Perplexity";
79
108
  readonly modelPlaceholder: "low";
@@ -98,6 +127,10 @@ declare const MODEL_PROVIDERS: {
98
127
  readonly label: "xAI Grok";
99
128
  readonly modelPlaceholder: "grok-4";
100
129
  };
130
+ readonly zai: {
131
+ readonly label: "Z.ai GLM";
132
+ readonly modelPlaceholder: "glm-4.7";
133
+ };
101
134
  };
102
135
  type AccountModelProviderName = keyof typeof MODEL_PROVIDERS;
103
136
 
@@ -175,6 +208,24 @@ interface AgentConfig {
175
208
  allowRunOverrides?: boolean;
176
209
  [key: string]: unknown;
177
210
  }
211
+ /**
212
+ * What a code hook reads as ctx.config: the model and the names of what the
213
+ * agent can use. An allow-list, so no credential field can reach hook code.
214
+ */
215
+ interface HookAgentConfig {
216
+ readonly model: {
217
+ readonly provider?: AccountModelProviderName;
218
+ readonly modelId?: string;
219
+ };
220
+ readonly harness?: AgentHarnessConfig["type"];
221
+ readonly maxTurn?: number;
222
+ readonly tools: readonly string[];
223
+ readonly mcp: readonly string[];
224
+ readonly channels: readonly string[];
225
+ readonly skills: readonly string[];
226
+ readonly subagents: readonly string[];
227
+ readonly denyTools: readonly string[];
228
+ }
178
229
  interface AgentBehaviorConfig {
179
230
  maxTurn?: number;
180
231
  system?: string | SystemModelMessage | SystemModelMessage[];
@@ -347,12 +398,19 @@ interface AgentMcpEntry {
347
398
  }
348
399
  interface AgentChannelsConfig {
349
400
  telegram?: AgentTelegramChannelConfig;
401
+ gchat?: AgentGoogleChatChannelConfig;
350
402
  github?: AgentGitHubChannelConfig;
403
+ linear?: AgentLinearChannelConfig;
351
404
  slack?: AgentSlackChannelConfig;
352
405
  discord?: AgentDiscordChannelConfig;
353
406
  pancake?: AgentPancakeChannelConfig;
407
+ teams?: AgentTeamsChannelConfig;
408
+ twilio?: AgentTwilioChannelConfig;
354
409
  zalo?: AgentZaloChannelConfig;
355
410
  matrix?: AgentMatrixChannelConfig;
411
+ instagram?: AgentInstagramChannelConfig;
412
+ messenger?: AgentMessengerChannelConfig;
413
+ whatsapp?: AgentWhatsAppChannelConfig;
356
414
  [key: string]: unknown;
357
415
  }
358
416
  /**
@@ -401,6 +459,25 @@ interface AgentGitHubChannelConfig {
401
459
  partition?: ChannelPartition;
402
460
  [key: string]: unknown;
403
461
  }
462
+ /**
463
+ * A Linear member the agent comments as, through that member's personal API
464
+ * key. The agent answers comments that mention `@userName` on issues, and
465
+ * `webhookSecret` checks every delivery.
466
+ */
467
+ interface AgentLinearChannelConfig {
468
+ allowedChannelIds?: string[];
469
+ allowedUserIds?: string[];
470
+ id?: string;
471
+ apiKey?: string;
472
+ /** Linear GraphQL endpoint. Defaults to `https://api.linear.app/graphql`. */
473
+ apiUrl?: string;
474
+ /** The member's display name, e.g. `acme-agent`. `@acme-agent` addresses the agent. */
475
+ userName?: string;
476
+ webhookSecret?: string;
477
+ trace?: "enabled" | "disabled";
478
+ partition?: ChannelPartition;
479
+ [key: string]: unknown;
480
+ }
404
481
  interface AgentSlackChannelConfig {
405
482
  id?: string;
406
483
  apiUrl?: string;
@@ -477,6 +554,130 @@ interface AgentZaloChannelConfig {
477
554
  partition?: ChannelPartition;
478
555
  [key: string]: unknown;
479
556
  }
557
+ /**
558
+ * An Instagram professional account, reached through a Meta app with
559
+ * Instagram Login. `accountId` is the account the webhook entries name.
560
+ */
561
+ interface AgentInstagramChannelConfig {
562
+ allowedChannelIds?: string[];
563
+ allowedUserIds?: string[];
564
+ id?: string;
565
+ /** Instagram user access token with `instagram_business_manage_messages`. */
566
+ accessToken?: string;
567
+ /** Instagram professional account id. */
568
+ accountId?: string;
569
+ /** Graph API version, e.g. `v26.0`. Defaults to the SDK's. */
570
+ apiVersion?: string;
571
+ /** Meta app secret; signs every webhook POST. */
572
+ appSecret?: string;
573
+ userName?: string;
574
+ /** The verify token typed into the Meta webhook settings. */
575
+ verifyToken?: string;
576
+ trace?: "enabled" | "disabled";
577
+ partition?: ChannelPartition;
578
+ [key: string]: unknown;
579
+ }
580
+ /** A Facebook Page the agent answers Messenger DMs for. */
581
+ interface AgentMessengerChannelConfig {
582
+ allowedChannelIds?: string[];
583
+ allowedUserIds?: string[];
584
+ id?: string;
585
+ /** Graph API version, e.g. `v21.0`. Defaults to the SDK's. */
586
+ apiVersion?: string;
587
+ /** Meta app secret; signs every webhook POST. */
588
+ appSecret?: string;
589
+ /** Page access token for the Page the app is subscribed to. */
590
+ pageAccessToken?: string;
591
+ userName?: string;
592
+ /** The verify token typed into the Meta webhook settings. */
593
+ verifyToken?: string;
594
+ trace?: "enabled" | "disabled";
595
+ partition?: ChannelPartition;
596
+ [key: string]: unknown;
597
+ }
598
+ /**
599
+ * A Google Chat app on the HTTP endpoint connection. It posts as the service
600
+ * account in `credentials`, and a webhook is accepted when its Google-signed
601
+ * token names `endpointUrl` or `googleChatProjectNumber` as the audience.
602
+ */
603
+ interface AgentGoogleChatChannelConfig {
604
+ allowedChannelIds?: string[];
605
+ allowedUserIds?: string[];
606
+ id?: string;
607
+ /** The service-account key JSON, as downloaded from Google Cloud. */
608
+ credentials?: string;
609
+ /** Audience when the app authenticates with "HTTP endpoint URL". */
610
+ endpointUrl?: string;
611
+ /** Audience when the app authenticates with "Project number". */
612
+ googleChatProjectNumber?: string;
613
+ /** `service-{projectNumber}@gcp-sa-gsuiteaddons.iam.gserviceaccount.com`, for an app built as a Workspace add-on. */
614
+ workspaceAddOnServiceAccountEmail?: string;
615
+ userName?: string;
616
+ trace?: "enabled" | "disabled";
617
+ partition?: ChannelPartition;
618
+ [key: string]: unknown;
619
+ }
620
+ /**
621
+ * A Microsoft Teams bot registered in Azure Bot Service, authenticated with a
622
+ * client secret. `appTenantId` is required unless `appType` is `MultiTenant`.
623
+ */
624
+ interface AgentTeamsChannelConfig {
625
+ allowedChannelIds?: string[];
626
+ allowedUserIds?: string[];
627
+ id?: string;
628
+ apiUrl?: string;
629
+ appId?: string;
630
+ appPassword?: string;
631
+ appTenantId?: string;
632
+ appType?: "MultiTenant" | "SingleTenant";
633
+ userName?: string;
634
+ trace?: "enabled" | "disabled";
635
+ partition?: ChannelPartition;
636
+ [key: string]: unknown;
637
+ }
638
+ /**
639
+ * A Twilio number or Messaging Service for SMS and MMS. `authToken` checks
640
+ * Twilio's signature, which covers the exact public URL Twilio called, so
641
+ * `webhookUrl` is only set when that URL is not the broods webhook URL.
642
+ */
643
+ interface AgentTwilioChannelConfig {
644
+ allowedChannelIds?: string[];
645
+ allowedUserIds?: string[];
646
+ id?: string;
647
+ accountSid?: string;
648
+ apiUrl?: string;
649
+ authToken?: string;
650
+ /** `MG...`. Replies go through the service instead of the number texted. */
651
+ messagingServiceSid?: string;
652
+ /** E.164 number, e.g. `+15551234567`. Messages to another number go to the agent holding it. */
653
+ phoneNumber?: string;
654
+ statusCallbackUrl?: string;
655
+ userName?: string;
656
+ /** The URL entered in the Twilio console, when it is not `{PUBLIC_BASE_URL}/v1/webhooks/...`. */
657
+ webhookUrl?: string;
658
+ trace?: "enabled" | "disabled";
659
+ partition?: ChannelPartition;
660
+ [key: string]: unknown;
661
+ }
662
+ /**
663
+ * A WhatsApp Business Cloud API number. `appSecret` signs every delivery and
664
+ * `verifyToken` answers Meta's subscription handshake.
665
+ */
666
+ interface AgentWhatsAppChannelConfig {
667
+ allowedChannelIds?: string[];
668
+ allowedUserIds?: string[];
669
+ id?: string;
670
+ accessToken?: string;
671
+ apiUrl?: string;
672
+ apiVersion?: string;
673
+ appSecret?: string;
674
+ phoneNumberId?: string;
675
+ userName?: string;
676
+ verifyToken?: string;
677
+ trace?: "enabled" | "disabled";
678
+ partition?: ChannelPartition;
679
+ [key: string]: unknown;
680
+ }
480
681
 
481
682
  /**
482
683
  * Cron-job records and patch-merge helpers for the runtime. Input
@@ -674,6 +875,22 @@ interface TelegramSource {
674
875
  fromUsername?: string;
675
876
  }
676
877
 
878
+ /**
879
+ * Google Chat channel adapter, for a Chat app on an HTTP endpoint. The Chat
880
+ * SDK adapter is the transport: it verifies Google's signed token, reads the
881
+ * message and posts the reply as the app's service account. Pub/Sub delivery
882
+ * is not wired, so the app hears direct messages and @-mentions only.
883
+ */
884
+
885
+ interface GoogleChatSource {
886
+ messageName: string;
887
+ spaceName: string;
888
+ threadId: string;
889
+ threadName?: string;
890
+ userId?: string;
891
+ userName?: string;
892
+ }
893
+
677
894
  /**
678
895
  * GitHub channel adapter. Event filtering and source mapping live here; auth and
679
896
  * API calls go through the Chat SDK.
@@ -691,6 +908,22 @@ interface GitHubSource {
691
908
  target: "issue" | "issue_comment" | "pull_request" | "pull_request_review_comment";
692
909
  }
693
910
 
911
+ /**
912
+ * Linear channel adapter, for @-mentions in issue comments. The Chat SDK
913
+ * adapter is the transport: it posts the reply under the comment thread and
914
+ * reacts to the comment. The signature check is the Linear SDK's webhook
915
+ * client, the same one the adapter runs. There is no streaming: every edit of
916
+ * a Linear comment comes back as another webhook delivery.
917
+ */
918
+
919
+ interface LinearSource {
920
+ /** The comment that mentioned the agent, where the reaction goes. */
921
+ commentId: string;
922
+ issueId: string;
923
+ /** `linear:{issueId}:c:{rootCommentId}`: the reply nests under the root comment. */
924
+ threadId: string;
925
+ }
926
+
694
927
  /** Slack channel adapter. */
695
928
 
696
929
  interface SlackSource {
@@ -763,6 +996,64 @@ interface PancakeSource {
763
996
  tagIds?: string[];
764
997
  }
765
998
 
999
+ /**
1000
+ * Microsoft Teams channel adapter, on the Bot Framework. The Chat SDK adapter
1001
+ * is the transport that reads the activity and posts the reply; the inbound
1002
+ * token is checked with the Teams SDK's JWT validator, set up for Bot Framework
1003
+ * connector tokens only, since the Chat SDK only reaches it through a full
1004
+ * `Chat` instance.
1005
+ */
1006
+
1007
+ interface TeamsSource {
1008
+ conversationId: string;
1009
+ messageId: string;
1010
+ threadId: string;
1011
+ userId?: string;
1012
+ userName?: string;
1013
+ }
1014
+
1015
+ /**
1016
+ * The core HTTP contract every handler speaks, plus generic request/response
1017
+ * helpers. Handlers take a CoreRequest + RequestContext and return a Web
1018
+ * Response; the transport edge (`src/server.ts`) builds the CoreRequest from
1019
+ * a real request. Keep route-specific logic out of here.
1020
+ */
1021
+ declare global {
1022
+ interface BunFetchRequestInit {
1023
+ timeout?: number | boolean;
1024
+ }
1025
+ }
1026
+
1027
+ /**
1028
+ * Twilio channel adapter, for SMS and MMS on a Twilio number or Messaging
1029
+ * Service. The Chat SDK adapter is the transport: it checks Twilio's
1030
+ * signature, reads the form Twilio posts and sends the reply. SMS has no typing
1031
+ * indicator and no reactions, so those actions do nothing.
1032
+ */
1033
+
1034
+ interface TwilioSource {
1035
+ /** The person's number, where the reply goes. */
1036
+ from: string;
1037
+ messageSid: string;
1038
+ /** The Twilio number they texted. */
1039
+ to: string;
1040
+ }
1041
+
1042
+ /**
1043
+ * WhatsApp channel adapter, on the WhatsApp Business Cloud API. The Chat SDK
1044
+ * adapter is the transport: it checks Meta's signature, reads the message and
1045
+ * posts the reply. Meta's GET subscription handshake is answered here too,
1046
+ * because it arrives on the same webhook URL.
1047
+ */
1048
+
1049
+ interface WhatsAppSource {
1050
+ messageId: string;
1051
+ phoneNumberId: string;
1052
+ threadId: string;
1053
+ userName?: string;
1054
+ userWaId: string;
1055
+ }
1056
+
766
1057
  /** Zalo channel adapter, on the official Zalo Bot API. */
767
1058
 
768
1059
  declare const ZALO_CHAT_TYPES: readonly ["PRIVATE", "GROUP"];
@@ -777,6 +1068,45 @@ interface ZaloSource {
777
1068
  date?: number;
778
1069
  }
779
1070
 
1071
+ /**
1072
+ * What Messenger and Instagram share. Both deliver Meta Graph webhooks: a GET
1073
+ * subscription handshake answered with the verify token, an
1074
+ * `X-Hub-Signature-256` HMAC over every POST, and one envelope of batched
1075
+ * messaging events whose entries each name the Page or account they are for.
1076
+ * Both reply through a Chat SDK adapter used as transport only. Each channel
1077
+ * file builds its transport and names how the two differ.
1078
+ */
1079
+
1080
+ /**
1081
+ * Where a Messenger or Instagram message came from. `recipientId` is the Page
1082
+ * or Instagram professional account that received it; `threadId` is the Chat
1083
+ * SDK thread the reply goes to.
1084
+ */
1085
+ interface MetaSource {
1086
+ messageId: string;
1087
+ recipientId: string;
1088
+ senderId: string;
1089
+ threadId: string;
1090
+ }
1091
+
1092
+ /**
1093
+ * Instagram DM channel adapter, on the Instagram API with Instagram Login. The
1094
+ * Chat SDK adapter reads the message and posts the reply, media included; the
1095
+ * Meta webhook handshake, signature check and event walk are shared with
1096
+ * Messenger in `meta-channel.ts`.
1097
+ */
1098
+
1099
+ type InstagramSource = MetaSource;
1100
+
1101
+ /**
1102
+ * Facebook Messenger channel adapter, on the Messenger Platform Send API. The
1103
+ * Chat SDK adapter reads the message, posts the reply and names the Page its
1104
+ * token belongs to; the Meta webhook handshake, signature check and event walk
1105
+ * are shared with Instagram in `meta-channel.ts`.
1106
+ */
1107
+
1108
+ type MessengerSource = MetaSource;
1109
+
780
1110
  /**
781
1111
  * Canonical CLI manifest wire types, the single source of truth shared by the
782
1112
  * backend (cliSync.ts, cliHttp.ts) and the SDK/CLI (packages/broods).
@@ -1241,7 +1571,7 @@ interface AgentReference<Name extends string = string> {
1241
1571
  }
1242
1572
  interface ChannelReference {
1243
1573
  readonly kind: "channel";
1244
- readonly type: "telegram" | "github" | "slack" | "discord" | "matrix" | "pancake" | "zalo";
1574
+ readonly type: "telegram" | "gchat" | "github" | "linear" | "slack" | "discord" | "matrix" | "pancake" | "teams" | "twilio" | "zalo" | "whatsapp" | "instagram" | "messenger";
1245
1575
  readonly agentName: string;
1246
1576
  readonly agentId: string;
1247
1577
  readonly accountId: string;
@@ -2093,7 +2423,7 @@ interface McpDefinitionConfig {
2093
2423
  /** Tool names agents may use from this server; omit to allow all. */
2094
2424
  allowedTools?: string[];
2095
2425
  }
2096
- type ChannelType = "telegram" | "github" | "slack" | "discord" | "matrix" | "pancake" | "zalo";
2426
+ type ChannelType = "telegram" | "gchat" | "github" | "linear" | "slack" | "discord" | "matrix" | "pancake" | "teams" | "twilio" | "zalo" | "whatsapp" | "instagram" | "messenger";
2097
2427
  /**
2098
2428
  * A connection is one app install: the credentials an agent needs before a
2099
2429
  * provider can reach it at all. Channels point at a connection; a connection
@@ -2132,28 +2462,42 @@ type ConnectionIdentityInput = {
2132
2462
  allowedUserIds?: readonly string[];
2133
2463
  };
2134
2464
  type TelegramConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentTelegramChannelConfig, "apiUrl" | "botToken" | "webhookSecret" | "botUsername" | "reactionEmoji">, "botToken" | "webhookSecret">> & ConnectionIdentityInput;
2465
+ type GoogleChatConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentGoogleChatChannelConfig, "credentials" | "endpointUrl" | "googleChatProjectNumber" | "userName" | "workspaceAddOnServiceAccountEmail">, "credentials">> & ConnectionIdentityInput;
2135
2466
  type GitHubConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentGitHubChannelConfig, "apiUrl" | "webhookSecret" | "appId" | "privateKey" | "botUserName" | "botUserId" | "triggerOnIssueOpen" | "triggerOnPROpen">, "webhookSecret" | "appId" | "privateKey">> & ConnectionIdentityInput;
2467
+ type LinearConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentLinearChannelConfig, "apiKey" | "apiUrl" | "userName" | "webhookSecret">, "apiKey" | "userName" | "webhookSecret">> & ConnectionIdentityInput;
2136
2468
  type SlackConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentSlackChannelConfig, "apiUrl" | "botToken" | "signingSecret" | "reactionEmoji">, "botToken" | "signingSecret">> & ConnectionIdentityInput;
2137
2469
  type DiscordConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentDiscordChannelConfig, "apiUrl" | "botToken" | "publicKey" | "botUserId" | "mentionRoleIds">, "botToken" | "publicKey">> & ConnectionIdentityInput;
2138
2470
  type MatrixConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentMatrixChannelConfig, "apiUrl" | "botToken" | "botName" | "mentionText">, "apiUrl" | "botToken">> & ConnectionIdentityInput;
2471
+ type TeamsConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentTeamsChannelConfig, "apiUrl" | "appId" | "appPassword" | "appTenantId" | "appType" | "userName">, "appId" | "appPassword">> & ConnectionIdentityInput;
2472
+ type WhatsAppConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentWhatsAppChannelConfig, "accessToken" | "apiUrl" | "apiVersion" | "appSecret" | "phoneNumberId" | "userName" | "verifyToken">, "accessToken" | "appSecret" | "phoneNumberId" | "verifyToken">> & ConnectionIdentityInput;
2139
2473
  interface PancakeConnectionInput extends ConnectionIdentityInput {
2140
2474
  pageId: ChannelSecret;
2141
2475
  pageAccessToken: ChannelSecret;
2142
2476
  webhookSecret: ChannelSecret;
2143
2477
  senderId?: string | EnvRef;
2144
2478
  }
2479
+ type TwilioConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentTwilioChannelConfig, "accountSid" | "apiUrl" | "authToken" | "messagingServiceSid" | "phoneNumber" | "statusCallbackUrl" | "userName" | "webhookUrl">, "accountSid" | "authToken">> & ConnectionIdentityInput;
2145
2480
  interface ZaloConnectionInput extends ConnectionIdentityInput {
2146
2481
  botToken: ChannelSecret;
2147
2482
  webhookSecret: ChannelSecret;
2148
2483
  }
2484
+ type InstagramConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentInstagramChannelConfig, "accessToken" | "accountId" | "apiVersion" | "appSecret" | "userName" | "verifyToken">, "accessToken" | "accountId" | "appSecret" | "verifyToken">> & ConnectionIdentityInput;
2485
+ type MessengerConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentMessengerChannelConfig, "apiVersion" | "appSecret" | "pageAccessToken" | "userName" | "verifyToken">, "appSecret" | "pageAccessToken" | "verifyToken">> & ConnectionIdentityInput;
2149
2486
  type TelegramConnectionDefinition = ConnectionDefinition<"telegram", TelegramConnectionInput>;
2487
+ type GoogleChatConnectionDefinition = ConnectionDefinition<"gchat", GoogleChatConnectionInput>;
2150
2488
  type GitHubConnectionDefinition = ConnectionDefinition<"github", GitHubConnectionInput>;
2489
+ type LinearConnectionDefinition = ConnectionDefinition<"linear", LinearConnectionInput>;
2151
2490
  type SlackConnectionDefinition = ConnectionDefinition<"slack", SlackConnectionInput>;
2152
2491
  type DiscordConnectionDefinition = ConnectionDefinition<"discord", DiscordConnectionInput>;
2153
2492
  type MatrixConnectionDefinition = ConnectionDefinition<"matrix", MatrixConnectionInput>;
2154
2493
  type PancakeConnectionDefinition = ConnectionDefinition<"pancake", PancakeConnectionInput>;
2494
+ type TeamsConnectionDefinition = ConnectionDefinition<"teams", TeamsConnectionInput>;
2495
+ type TwilioConnectionDefinition = ConnectionDefinition<"twilio", TwilioConnectionInput>;
2155
2496
  type ZaloConnectionDefinition = ConnectionDefinition<"zalo", ZaloConnectionInput>;
2156
- type AnyConnectionDefinition = TelegramConnectionDefinition | GitHubConnectionDefinition | SlackConnectionDefinition | DiscordConnectionDefinition | MatrixConnectionDefinition | PancakeConnectionDefinition | ZaloConnectionDefinition;
2497
+ type InstagramConnectionDefinition = ConnectionDefinition<"instagram", InstagramConnectionInput>;
2498
+ type MessengerConnectionDefinition = ConnectionDefinition<"messenger", MessengerConnectionInput>;
2499
+ type WhatsAppConnectionDefinition = ConnectionDefinition<"whatsapp", WhatsAppConnectionInput>;
2500
+ type AnyConnectionDefinition = TelegramConnectionDefinition | GoogleChatConnectionDefinition | GitHubConnectionDefinition | LinearConnectionDefinition | SlackConnectionDefinition | DiscordConnectionDefinition | MatrixConnectionDefinition | PancakeConnectionDefinition | TeamsConnectionDefinition | TwilioConnectionDefinition | ZaloConnectionDefinition | WhatsAppConnectionDefinition | InstagramConnectionDefinition | MessengerConnectionDefinition;
2157
2501
  /**
2158
2502
  * One real place a team talks: a Slack channel, a Discord channel, a repo. It
2159
2503
  * narrows and adds, and never grants what a bound agent lacks: instructions
@@ -2210,21 +2554,58 @@ type MatrixChannelInput = ChannelRulesInput & {
2210
2554
  /** Matrix room id, e.g. "!abc123:matrix.org". */
2211
2555
  channelId: string;
2212
2556
  };
2557
+ type GoogleChatChannelInput = ChannelRulesInput & {
2558
+ connection: GoogleChatConnectionDefinition;
2559
+ /** Google Chat space name, e.g. "spaces/AAAAxxxx". */
2560
+ spaceName: string;
2561
+ };
2213
2562
  type GitHubChannelInput = ChannelRulesInput & {
2214
2563
  connection: GitHubConnectionDefinition;
2215
2564
  /** Repository full name, e.g. "beeblast/api". */
2216
2565
  repo: string;
2217
2566
  };
2567
+ type LinearChannelInput = ChannelRulesInput & {
2568
+ connection: LinearConnectionDefinition;
2569
+ /** Team key, e.g. "ENG", or several that share one set of rules. */
2570
+ team: string | readonly string[];
2571
+ };
2572
+ type TeamsChannelInput = ChannelRulesInput & {
2573
+ connection: TeamsConnectionDefinition;
2574
+ /** Teams channel id, or a chat's conversation id, e.g. "19:abc@thread.tacv2". */
2575
+ channelId: string;
2576
+ /** Team the channel sits in. */
2577
+ teamId?: string;
2578
+ };
2218
2579
  type TelegramChannelInput = ChannelRulesInput & {
2219
2580
  connection: TelegramConnectionDefinition;
2220
2581
  /** Telegram chat id, e.g. "-1001234567". */
2221
2582
  chatId: string;
2222
2583
  };
2584
+ type TwilioChannelInput = ChannelRulesInput & {
2585
+ connection: TwilioConnectionDefinition;
2586
+ /** Sender's number in E.164, e.g. "+15551234567", or several. */
2587
+ from: string | readonly string[];
2588
+ };
2223
2589
  type ZaloChannelInput = ChannelRulesInput & {
2224
2590
  connection: ZaloConnectionDefinition;
2225
2591
  /** Zalo user or group chat id, or several that share one set of rules. */
2226
2592
  chatId: string | readonly string[];
2227
2593
  };
2594
+ type InstagramChannelInput = ChannelRulesInput & {
2595
+ connection: InstagramConnectionDefinition;
2596
+ /** Instagram-scoped id (IGSID) of the person, or several. */
2597
+ igsid: string | readonly string[];
2598
+ };
2599
+ type MessengerChannelInput = ChannelRulesInput & {
2600
+ connection: MessengerConnectionDefinition;
2601
+ /** Page-scoped id (PSID) of the person, or several. */
2602
+ psid: string | readonly string[];
2603
+ };
2604
+ type WhatsAppChannelInput = ChannelRulesInput & {
2605
+ connection: WhatsAppConnectionDefinition;
2606
+ /** Customer's WhatsApp id, their number with country code and no "+", or several. */
2607
+ waId: string | readonly string[];
2608
+ };
2228
2609
  type PancakeChannelInput = ChannelRulesInput & {
2229
2610
  connection: PancakeConnectionDefinition;
2230
2611
  /** Pancake conversation id. */
@@ -2254,7 +2635,8 @@ type AgentSkillsDefinitionConfig = Omit<NonNullable<AgentConfig["skills"]>, "all
2254
2635
  };
2255
2636
  interface HookContext {
2256
2637
  fetch: typeof fetch;
2257
- config: Record<string, unknown>;
2638
+ /** The model and the names of the agent's tools, MCP servers, channels, skills and subagents. Never credentials. */
2639
+ config: HookAgentConfig;
2258
2640
  /**
2259
2641
  * Mutable per-request scratchpad shared across this agent request's hooks.
2260
2642
  * Seed it in an early hook (e.g. `onStart`) and read or modify it later.
@@ -2272,12 +2654,19 @@ type Handler<Event, Result> = (ctx: HookContext, event: Event) => Result | void
2272
2654
  * Pancake `tagIds`).
2273
2655
  */
2274
2656
  type TelegramMessageSource = TelegramSource;
2657
+ type GoogleChatMessageSource = GoogleChatSource;
2275
2658
  type GitHubMessageSource = GitHubSource;
2659
+ type LinearMessageSource = LinearSource;
2276
2660
  type SlackMessageSource = SlackSource;
2277
2661
  type DiscordMessageSource = DiscordSource;
2278
2662
  type MatrixMessageSource = MatrixSource;
2279
2663
  type PancakeMessageSource = PancakeSource;
2664
+ type TeamsMessageSource = TeamsSource;
2665
+ type TwilioMessageSource = TwilioSource;
2280
2666
  type ZaloMessageSource = ZaloSource;
2667
+ type InstagramMessageSource = InstagramSource;
2668
+ type MessengerMessageSource = MessengerSource;
2669
+ type WhatsAppMessageSource = WhatsAppSource;
2281
2670
  /**
2282
2671
  * Inbound channel message passed to `onMessageReceived`, discriminated on
2283
2672
  * `channel` so each variant exposes its channel's strongly-typed `source`.
@@ -2286,10 +2675,18 @@ type ChannelMessageReceived = {
2286
2675
  channel: "telegram";
2287
2676
  text: string;
2288
2677
  source: TelegramMessageSource;
2678
+ } | {
2679
+ channel: "gchat";
2680
+ text: string;
2681
+ source: GoogleChatMessageSource;
2289
2682
  } | {
2290
2683
  channel: "github";
2291
2684
  text: string;
2292
2685
  source: GitHubMessageSource;
2686
+ } | {
2687
+ channel: "linear";
2688
+ text: string;
2689
+ source: LinearMessageSource;
2293
2690
  } | {
2294
2691
  channel: "slack";
2295
2692
  text: string;
@@ -2306,10 +2703,30 @@ type ChannelMessageReceived = {
2306
2703
  channel: "pancake";
2307
2704
  text: string;
2308
2705
  source: PancakeMessageSource;
2706
+ } | {
2707
+ channel: "teams";
2708
+ text: string;
2709
+ source: TeamsMessageSource;
2710
+ } | {
2711
+ channel: "twilio";
2712
+ text: string;
2713
+ source: TwilioMessageSource;
2309
2714
  } | {
2310
2715
  channel: "zalo";
2311
2716
  text: string;
2312
2717
  source: ZaloMessageSource;
2718
+ } | {
2719
+ channel: "whatsapp";
2720
+ text: string;
2721
+ source: WhatsAppMessageSource;
2722
+ } | {
2723
+ channel: "instagram";
2724
+ text: string;
2725
+ source: InstagramMessageSource;
2726
+ } | {
2727
+ channel: "messenger";
2728
+ text: string;
2729
+ source: MessengerMessageSource;
2313
2730
  };
2314
2731
  /**
2315
2732
  * Inline agent hook callbacks. Handlers are serialized with `.toString()`,
@@ -2494,21 +2911,35 @@ declare function defineSkill<const Name extends string>(input: ResourceInput<Nam
2494
2911
  declare function defineWorkspace<const Name extends string>(input: ResourceInput<Name, WorkspaceDefinitionConfig>): WorkspaceResource<Name>;
2495
2912
  declare function defineDiscordConnection(config: DiscordConnectionInput): DiscordConnectionDefinition;
2496
2913
  declare function defineGitHubConnection(config: GitHubConnectionInput): GitHubConnectionDefinition;
2914
+ declare function defineGoogleChatConnection(config: GoogleChatConnectionInput): GoogleChatConnectionDefinition;
2915
+ declare function defineInstagramConnection(config: InstagramConnectionInput): InstagramConnectionDefinition;
2916
+ declare function defineLinearConnection(config: LinearConnectionInput): LinearConnectionDefinition;
2497
2917
  declare function defineMatrixConnection(config: MatrixConnectionInput): MatrixConnectionDefinition;
2918
+ declare function defineMessengerConnection(config: MessengerConnectionInput): MessengerConnectionDefinition;
2498
2919
  declare function definePancakeConnection(config: PancakeConnectionInput): PancakeConnectionDefinition;
2499
2920
  declare function defineSlackConnection(config: SlackConnectionInput): SlackConnectionDefinition;
2921
+ declare function defineTeamsConnection(config: TeamsConnectionInput): TeamsConnectionDefinition;
2500
2922
  declare function defineTelegramConnection(config: TelegramConnectionInput): TelegramConnectionDefinition;
2923
+ declare function defineTwilioConnection(config: TwilioConnectionInput): TwilioConnectionDefinition;
2924
+ declare function defineWhatsAppConnection(config: WhatsAppConnectionInput): WhatsAppConnectionDefinition;
2501
2925
  declare function defineZaloConnection(config: ZaloConnectionInput): ZaloConnectionDefinition;
2502
2926
  declare function defineDiscordChannel<const Name extends string>(input: ResourceInput<Name, DiscordChannelInput>): ChannelResource<Name>;
2503
2927
  declare function defineGitHubChannel<const Name extends string>(input: ResourceInput<Name, GitHubChannelInput>): ChannelResource<Name>;
2928
+ declare function defineGoogleChatChannel<const Name extends string>(input: ResourceInput<Name, GoogleChatChannelInput>): ChannelResource<Name>;
2929
+ declare function defineInstagramChannel<const Name extends string>(input: ResourceInput<Name, InstagramChannelInput>): ChannelResource<Name>;
2930
+ declare function defineLinearChannel<const Name extends string>(input: ResourceInput<Name, LinearChannelInput>): ChannelResource<Name>;
2504
2931
  declare function defineMatrixChannel<const Name extends string>(input: ResourceInput<Name, MatrixChannelInput>): ChannelResource<Name>;
2932
+ declare function defineMessengerChannel<const Name extends string>(input: ResourceInput<Name, MessengerChannelInput>): ChannelResource<Name>;
2505
2933
  declare function definePancakeChannel<const Name extends string>(input: ResourceInput<Name, PancakeChannelInput>): ChannelResource<Name>;
2506
2934
  declare function defineSlackChannel<const Name extends string>(input: ResourceInput<Name, SlackChannelInput>): ChannelResource<Name>;
2935
+ declare function defineTeamsChannel<const Name extends string>(input: ResourceInput<Name, TeamsChannelInput>): ChannelResource<Name>;
2507
2936
  declare function defineTelegramChannel<const Name extends string>(input: ResourceInput<Name, TelegramChannelInput>): ChannelResource<Name>;
2937
+ declare function defineTwilioChannel<const Name extends string>(input: ResourceInput<Name, TwilioChannelInput>): ChannelResource<Name>;
2938
+ declare function defineWhatsAppChannel<const Name extends string>(input: ResourceInput<Name, WhatsAppChannelInput>): ChannelResource<Name>;
2508
2939
  declare function defineZaloChannel<const Name extends string>(input: ResourceInput<Name, ZaloChannelInput>): ChannelResource<Name>;
2509
2940
  declare function isBroodsConfig(value: unknown): value is BroodsConfigDefinition;
2510
2941
  declare function isConnectionDefinition(value: unknown): value is AnyConnectionDefinition;
2511
2942
  declare function isResource(value: unknown): value is AnyResource;
2512
2943
 
2513
- export { BroodsAccountApiError, BroodsAccountClient, BroodsClient, BroodsWebSocketClient, DEFAULT_CORE_BASE_URL, IngressAcceptedError, MAX_OBSERVABILITY_BACKFILL, BroodsWebSocketClient as WebSocketClient, BroodsWebSocketClient as WebsocketClient, defineAgent, defineBroods, defineCron, defineDiscordChannel, defineDiscordConnection, defineGitHubChannel, defineGitHubConnection, defineHarness, defineMatrixChannel, defineMatrixConnection, defineMcp, definePancakeChannel, definePancakeConnection, definePolicy, defineSandbox, defineSkill, defineSlackChannel, defineSlackConnection, defineTelegramChannel, defineTelegramConnection, defineWorkspace, defineZaloChannel, defineZaloConnection, env, envPlaceholder, isBroodsConfig, isConnectionDefinition, isLogLevel, isObservabilityClientMessage, isResource, isRootSpanKind, isSandboxLogId, isTraceId, normalizeHttpServiceUrl, readSseStream, resolveEnvCredential, resolveRunEvents, toWebSocketBaseUrl, webSocketSubprotocols };
2514
- export type { Account, AccountAgent, AccountChannel, AccountEnvVar, AccountMcp, AccountPolicy, AccountRole, AccountSandbox, AccountWorkspace, Agent, AgentChannelsConfig, AgentCodeHookConfig, AgentConfig, AgentConfigDoc, AgentContinueInput, AgentDefinitionConfig, AgentDiscordChannelConfig, AgentGitHubChannelConfig, AgentHandle, AgentHookEventName, AgentHooks, AgentHooksConfig, AgentMatrixChannelConfig, AgentPancakeChannelConfig, AgentProviderSettings, AgentReference, AgentResource, AgentRunAnswerInput, AgentRunEventInput, AgentRunInput, AgentRunModelOverrides, AgentRunOverrides, AgentRunResult, AgentSkillsDefinitionConfig, AgentSlackChannelConfig, AgentStreamPart, AgentSubagentDefinitionConfig, AgentTelegramChannelConfig, AgentWebhookHookConfig, AgentWorkspaceInput, AgentWorkspaceRef, AgentWorkspaceRefInput, AgentZaloChannelConfig, AnyConnectionDefinition, AnyResource, AssumeRoleResult, AsyncAgentRun, AsyncPollOptions, AsyncRequestAccepted, AsyncStatus, BroodsAccount, BroodsAccountClientOptions, BroodsClientOptions, BroodsConfigDefinition, BroodsProjectConfig, BroodsWebSocketClientOptions, ChannelAgentInput, ChannelDefinitionConfig, ChannelMessageReceived, ChannelPartition, ChannelRecordConfig, ChannelReference, ChannelReplyIn, ChannelResource, ChannelType, CliManifest, CliManifestResource, ConfigPatch, ConnectionDefinition, CreateAgentResult, CreateCronInput, CreateMcpInput, Cron, CronDefinitionConfig, CronDoc, CronLastStatus, CronResource, CronRun, CronStatus, DeleteAccountResult, DiscordChannelInput, DiscordConnectionDefinition, DiscordConnectionInput, DiscordMessageSource, DiscordSource, Doc, EnvAccessor, EnvRef, EnvRefString, GeneratedIds, GitHubChannelInput, GitHubConnectionDefinition, GitHubConnectionInput, GitHubMessageSource, GitHubSource, HarnessDefinition, HarnessType, HookContext, Id, IngressMode, IngressStatus, LogLevel, MatrixChannelInput, MatrixConnectionDefinition, MatrixConnectionInput, MatrixMessageSource, MatrixSource, McpDefinitionConfig, McpHandler, McpOauthInput, McpResource, ObservabilityBackfillMessage, ObservabilityClientMessage, ObservabilityErrorMessage, ObservabilityFetchTraceMessage, ObservabilityLogEntry, ObservabilityLogMessage, ObservabilityReadyMessage, ObservabilityServerMessage, ObservabilitySpanMessage, ObservabilitySpanRow, ObservabilitySubscribeMessage, ObservabilityUnsubscribeMessage, PancakeChannelInput, PancakeConnectionDefinition, PancakeConnectionInput, PancakeMessageSource, PancakeSource, PendingQuestion, PolicyDefinitionConfig, PolicyDocument, PolicyResource, ProjectDoc, ProviderConfigInput, ProviderSettingsInput, QuestionAnswer, ResourceApi, ResourceDefinition, ResourceInput, ResourceKind, RotateSecretResult, Sandbox, SandboxConfig, SandboxConfigDoc, SandboxDefinitionConfig, SandboxDefinitionOptions, SandboxLifecycleResult, SandboxResource, SandboxSnapshotResult, SandboxTerminalTicket, Skill, SkillDefinitionConfig, SkillResource, SkillUploadInput, SlackChannelInput, SlackConnectionDefinition, SlackConnectionInput, SlackMessageSource, SlackSource, StageDoc, StageScope, TaskWaitingOn, TelegramChannelInput, TelegramConnectionDefinition, TelegramConnectionInput, TelegramMessageSource, TelegramSource, ToolApprovalSummary, UpdateAgentInput, UpdateCronInput, UpdateMcpInput, WebSocketAttachInput, WebSocketClientAttachMessage, WebSocketClientCancelMessage, WebSocketClientControlMessage, WebSocketClientExecuteMessage, WebSocketClientMessage, WebSocketConstructorLike, WebSocketHandlers, WebSocketLike, WebSocketOutputMessage, WebSocketRunInput, WebSocketServerMessage, WebSocketStreamMessage, WebSocketSubscription, Workspace, WorkspaceConfig, WorkspaceConfigDoc, WorkspaceDefinitionConfig, WorkspaceFileEntry, WorkspaceResource, ZaloChannelInput, ZaloConnectionDefinition, ZaloConnectionInput, ZaloMessageSource, ZaloSource };
2944
+ export { BroodsAccountApiError, BroodsAccountClient, BroodsClient, BroodsWebSocketClient, DEFAULT_CORE_BASE_URL, IngressAcceptedError, MAX_OBSERVABILITY_BACKFILL, BroodsWebSocketClient as WebSocketClient, BroodsWebSocketClient as WebsocketClient, defineAgent, defineBroods, defineCron, defineDiscordChannel, defineDiscordConnection, defineGitHubChannel, defineGitHubConnection, defineGoogleChatChannel, defineGoogleChatConnection, defineHarness, defineInstagramChannel, defineInstagramConnection, defineLinearChannel, defineLinearConnection, defineMatrixChannel, defineMatrixConnection, defineMcp, defineMessengerChannel, defineMessengerConnection, definePancakeChannel, definePancakeConnection, definePolicy, defineSandbox, defineSkill, defineSlackChannel, defineSlackConnection, defineTeamsChannel, defineTeamsConnection, defineTelegramChannel, defineTelegramConnection, defineTwilioChannel, defineTwilioConnection, defineWhatsAppChannel, defineWhatsAppConnection, defineWorkspace, defineZaloChannel, defineZaloConnection, env, envPlaceholder, isBroodsConfig, isConnectionDefinition, isLogLevel, isObservabilityClientMessage, isResource, isRootSpanKind, isSandboxLogId, isTraceId, normalizeHttpServiceUrl, readSseStream, resolveEnvCredential, resolveRunEvents, toWebSocketBaseUrl, webSocketSubprotocols };
2945
+ export type { Account, AccountAgent, AccountChannel, AccountEnvVar, AccountMcp, AccountPolicy, AccountRole, AccountSandbox, AccountWorkspace, Agent, AgentChannelsConfig, AgentCodeHookConfig, AgentConfig, AgentConfigDoc, AgentContinueInput, AgentDefinitionConfig, AgentDiscordChannelConfig, AgentGitHubChannelConfig, AgentGoogleChatChannelConfig, AgentHandle, AgentHookEventName, AgentHooks, AgentHooksConfig, AgentInstagramChannelConfig, AgentLinearChannelConfig, AgentMatrixChannelConfig, AgentMessengerChannelConfig, AgentPancakeChannelConfig, AgentProviderSettings, AgentReference, AgentResource, AgentRunAnswerInput, AgentRunEventInput, AgentRunInput, AgentRunModelOverrides, AgentRunOverrides, AgentRunResult, AgentSkillsDefinitionConfig, AgentSlackChannelConfig, AgentStreamPart, AgentSubagentDefinitionConfig, AgentTeamsChannelConfig, AgentTelegramChannelConfig, AgentTwilioChannelConfig, AgentWebhookHookConfig, AgentWhatsAppChannelConfig, AgentWorkspaceInput, AgentWorkspaceRef, AgentWorkspaceRefInput, AgentZaloChannelConfig, AnyConnectionDefinition, AnyResource, AssumeRoleResult, AsyncAgentRun, AsyncPollOptions, AsyncRequestAccepted, AsyncStatus, BroodsAccount, BroodsAccountClientOptions, BroodsClientOptions, BroodsConfigDefinition, BroodsProjectConfig, BroodsWebSocketClientOptions, ChannelAgentInput, ChannelDefinitionConfig, ChannelMessageReceived, ChannelPartition, ChannelRecordConfig, ChannelReference, ChannelReplyIn, ChannelResource, ChannelType, CliManifest, CliManifestResource, ConfigPatch, ConnectionDefinition, CreateAgentResult, CreateCronInput, CreateMcpInput, Cron, CronDefinitionConfig, CronDoc, CronLastStatus, CronResource, CronRun, CronStatus, DeleteAccountResult, DiscordChannelInput, DiscordConnectionDefinition, DiscordConnectionInput, DiscordMessageSource, DiscordSource, Doc, EnvAccessor, EnvRef, EnvRefString, GeneratedIds, GitHubChannelInput, GitHubConnectionDefinition, GitHubConnectionInput, GitHubMessageSource, GitHubSource, GoogleChatChannelInput, GoogleChatConnectionDefinition, GoogleChatConnectionInput, GoogleChatMessageSource, GoogleChatSource, HarnessDefinition, HarnessType, HookAgentConfig, HookContext, Id, IngressMode, IngressStatus, InstagramChannelInput, InstagramConnectionDefinition, InstagramConnectionInput, InstagramMessageSource, InstagramSource, LinearChannelInput, LinearConnectionDefinition, LinearConnectionInput, LinearMessageSource, LinearSource, LogLevel, MatrixChannelInput, MatrixConnectionDefinition, MatrixConnectionInput, MatrixMessageSource, MatrixSource, McpDefinitionConfig, McpHandler, McpOauthInput, McpResource, MessengerChannelInput, MessengerConnectionDefinition, MessengerConnectionInput, MessengerMessageSource, MessengerSource, ObservabilityBackfillMessage, ObservabilityClientMessage, ObservabilityErrorMessage, ObservabilityFetchTraceMessage, ObservabilityLogEntry, ObservabilityLogMessage, ObservabilityReadyMessage, ObservabilityServerMessage, ObservabilitySpanMessage, ObservabilitySpanRow, ObservabilitySubscribeMessage, ObservabilityUnsubscribeMessage, PancakeChannelInput, PancakeConnectionDefinition, PancakeConnectionInput, PancakeMessageSource, PancakeSource, PendingQuestion, PolicyDefinitionConfig, PolicyDocument, PolicyResource, ProjectDoc, ProviderConfigInput, ProviderSettingsInput, QuestionAnswer, ResourceApi, ResourceDefinition, ResourceInput, ResourceKind, RotateSecretResult, Sandbox, SandboxConfig, SandboxConfigDoc, SandboxDefinitionConfig, SandboxDefinitionOptions, SandboxLifecycleResult, SandboxResource, SandboxSnapshotResult, SandboxTerminalTicket, Skill, SkillDefinitionConfig, SkillResource, SkillUploadInput, SlackChannelInput, SlackConnectionDefinition, SlackConnectionInput, SlackMessageSource, SlackSource, StageDoc, StageScope, TaskWaitingOn, TeamsChannelInput, TeamsConnectionDefinition, TeamsConnectionInput, TeamsMessageSource, TeamsSource, TelegramChannelInput, TelegramConnectionDefinition, TelegramConnectionInput, TelegramMessageSource, TelegramSource, ToolApprovalSummary, TwilioChannelInput, TwilioConnectionDefinition, TwilioConnectionInput, TwilioMessageSource, TwilioSource, UpdateAgentInput, UpdateCronInput, UpdateMcpInput, WebSocketAttachInput, WebSocketClientAttachMessage, WebSocketClientCancelMessage, WebSocketClientControlMessage, WebSocketClientExecuteMessage, WebSocketClientMessage, WebSocketConstructorLike, WebSocketHandlers, WebSocketLike, WebSocketOutputMessage, WebSocketRunInput, WebSocketServerMessage, WebSocketStreamMessage, WebSocketSubscription, WhatsAppChannelInput, WhatsAppConnectionDefinition, WhatsAppConnectionInput, WhatsAppMessageSource, WhatsAppSource, Workspace, WorkspaceConfig, WorkspaceConfigDoc, WorkspaceDefinitionConfig, WorkspaceFileEntry, WorkspaceResource, ZaloChannelInput, ZaloConnectionDefinition, ZaloConnectionInput, ZaloMessageSource, ZaloSource };