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/account.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
 
@@ -347,12 +380,19 @@ interface AgentMcpEntry {
347
380
  }
348
381
  interface AgentChannelsConfig {
349
382
  telegram?: AgentTelegramChannelConfig;
383
+ gchat?: AgentGoogleChatChannelConfig;
350
384
  github?: AgentGitHubChannelConfig;
385
+ linear?: AgentLinearChannelConfig;
351
386
  slack?: AgentSlackChannelConfig;
352
387
  discord?: AgentDiscordChannelConfig;
353
388
  pancake?: AgentPancakeChannelConfig;
389
+ teams?: AgentTeamsChannelConfig;
390
+ twilio?: AgentTwilioChannelConfig;
354
391
  zalo?: AgentZaloChannelConfig;
355
392
  matrix?: AgentMatrixChannelConfig;
393
+ instagram?: AgentInstagramChannelConfig;
394
+ messenger?: AgentMessengerChannelConfig;
395
+ whatsapp?: AgentWhatsAppChannelConfig;
356
396
  [key: string]: unknown;
357
397
  }
358
398
  /**
@@ -401,6 +441,25 @@ interface AgentGitHubChannelConfig {
401
441
  partition?: ChannelPartition;
402
442
  [key: string]: unknown;
403
443
  }
444
+ /**
445
+ * A Linear member the agent comments as, through that member's personal API
446
+ * key. The agent answers comments that mention `@userName` on issues, and
447
+ * `webhookSecret` checks every delivery.
448
+ */
449
+ interface AgentLinearChannelConfig {
450
+ allowedChannelIds?: string[];
451
+ allowedUserIds?: string[];
452
+ id?: string;
453
+ apiKey?: string;
454
+ /** Linear GraphQL endpoint. Defaults to `https://api.linear.app/graphql`. */
455
+ apiUrl?: string;
456
+ /** The member's display name, e.g. `acme-agent`. `@acme-agent` addresses the agent. */
457
+ userName?: string;
458
+ webhookSecret?: string;
459
+ trace?: "enabled" | "disabled";
460
+ partition?: ChannelPartition;
461
+ [key: string]: unknown;
462
+ }
404
463
  interface AgentSlackChannelConfig {
405
464
  id?: string;
406
465
  apiUrl?: string;
@@ -477,6 +536,130 @@ interface AgentZaloChannelConfig {
477
536
  partition?: ChannelPartition;
478
537
  [key: string]: unknown;
479
538
  }
539
+ /**
540
+ * An Instagram professional account, reached through a Meta app with
541
+ * Instagram Login. `accountId` is the account the webhook entries name.
542
+ */
543
+ interface AgentInstagramChannelConfig {
544
+ allowedChannelIds?: string[];
545
+ allowedUserIds?: string[];
546
+ id?: string;
547
+ /** Instagram user access token with `instagram_business_manage_messages`. */
548
+ accessToken?: string;
549
+ /** Instagram professional account id. */
550
+ accountId?: string;
551
+ /** Graph API version, e.g. `v26.0`. Defaults to the SDK's. */
552
+ apiVersion?: string;
553
+ /** Meta app secret; signs every webhook POST. */
554
+ appSecret?: string;
555
+ userName?: string;
556
+ /** The verify token typed into the Meta webhook settings. */
557
+ verifyToken?: string;
558
+ trace?: "enabled" | "disabled";
559
+ partition?: ChannelPartition;
560
+ [key: string]: unknown;
561
+ }
562
+ /** A Facebook Page the agent answers Messenger DMs for. */
563
+ interface AgentMessengerChannelConfig {
564
+ allowedChannelIds?: string[];
565
+ allowedUserIds?: string[];
566
+ id?: string;
567
+ /** Graph API version, e.g. `v21.0`. Defaults to the SDK's. */
568
+ apiVersion?: string;
569
+ /** Meta app secret; signs every webhook POST. */
570
+ appSecret?: string;
571
+ /** Page access token for the Page the app is subscribed to. */
572
+ pageAccessToken?: 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
+ /**
581
+ * A Google Chat app on the HTTP endpoint connection. It posts as the service
582
+ * account in `credentials`, and a webhook is accepted when its Google-signed
583
+ * token names `endpointUrl` or `googleChatProjectNumber` as the audience.
584
+ */
585
+ interface AgentGoogleChatChannelConfig {
586
+ allowedChannelIds?: string[];
587
+ allowedUserIds?: string[];
588
+ id?: string;
589
+ /** The service-account key JSON, as downloaded from Google Cloud. */
590
+ credentials?: string;
591
+ /** Audience when the app authenticates with "HTTP endpoint URL". */
592
+ endpointUrl?: string;
593
+ /** Audience when the app authenticates with "Project number". */
594
+ googleChatProjectNumber?: string;
595
+ /** `service-{projectNumber}@gcp-sa-gsuiteaddons.iam.gserviceaccount.com`, for an app built as a Workspace add-on. */
596
+ workspaceAddOnServiceAccountEmail?: string;
597
+ userName?: string;
598
+ trace?: "enabled" | "disabled";
599
+ partition?: ChannelPartition;
600
+ [key: string]: unknown;
601
+ }
602
+ /**
603
+ * A Microsoft Teams bot registered in Azure Bot Service, authenticated with a
604
+ * client secret. `appTenantId` is required unless `appType` is `MultiTenant`.
605
+ */
606
+ interface AgentTeamsChannelConfig {
607
+ allowedChannelIds?: string[];
608
+ allowedUserIds?: string[];
609
+ id?: string;
610
+ apiUrl?: string;
611
+ appId?: string;
612
+ appPassword?: string;
613
+ appTenantId?: string;
614
+ appType?: "MultiTenant" | "SingleTenant";
615
+ userName?: string;
616
+ trace?: "enabled" | "disabled";
617
+ partition?: ChannelPartition;
618
+ [key: string]: unknown;
619
+ }
620
+ /**
621
+ * A Twilio number or Messaging Service for SMS and MMS. `authToken` checks
622
+ * Twilio's signature, which covers the exact public URL Twilio called, so
623
+ * `webhookUrl` is only set when that URL is not the broods webhook URL.
624
+ */
625
+ interface AgentTwilioChannelConfig {
626
+ allowedChannelIds?: string[];
627
+ allowedUserIds?: string[];
628
+ id?: string;
629
+ accountSid?: string;
630
+ apiUrl?: string;
631
+ authToken?: string;
632
+ /** `MG...`. Replies go through the service instead of the number texted. */
633
+ messagingServiceSid?: string;
634
+ /** E.164 number, e.g. `+15551234567`. Messages to another number go to the agent holding it. */
635
+ phoneNumber?: string;
636
+ statusCallbackUrl?: string;
637
+ userName?: string;
638
+ /** The URL entered in the Twilio console, when it is not `{PUBLIC_BASE_URL}/v1/webhooks/...`. */
639
+ webhookUrl?: string;
640
+ trace?: "enabled" | "disabled";
641
+ partition?: ChannelPartition;
642
+ [key: string]: unknown;
643
+ }
644
+ /**
645
+ * A WhatsApp Business Cloud API number. `appSecret` signs every delivery and
646
+ * `verifyToken` answers Meta's subscription handshake.
647
+ */
648
+ interface AgentWhatsAppChannelConfig {
649
+ allowedChannelIds?: string[];
650
+ allowedUserIds?: string[];
651
+ id?: string;
652
+ accessToken?: string;
653
+ apiUrl?: string;
654
+ apiVersion?: string;
655
+ appSecret?: string;
656
+ phoneNumberId?: string;
657
+ userName?: string;
658
+ verifyToken?: string;
659
+ trace?: "enabled" | "disabled";
660
+ partition?: ChannelPartition;
661
+ [key: string]: unknown;
662
+ }
480
663
 
481
664
  /**
482
665
  * Cron-job records and patch-merge helpers for the runtime. Input
@@ -662,6 +845,18 @@ interface PolicyRule {
662
845
  declare const CHANNEL_REPLY_TARGETS: readonly ["thread", "source"];
663
846
  type ChannelReplyIn = (typeof CHANNEL_REPLY_TARGETS)[number];
664
847
 
848
+ /**
849
+ * The core HTTP contract every handler speaks, plus generic request/response
850
+ * helpers. Handlers take a CoreRequest + RequestContext and return a Web
851
+ * Response; the transport edge (`src/server.ts`) builds the CoreRequest from
852
+ * a real request. Keep route-specific logic out of here.
853
+ */
854
+ declare global {
855
+ interface BunFetchRequestInit {
856
+ timeout?: number | boolean;
857
+ }
858
+ }
859
+
665
860
  /**
666
861
  * Wire types for the public account-manage and harness APIs. These mirror
667
862
  * the deployed API contract (docs/api-reference/openapi.yaml is the source
package/dist/account.js CHANGED
@@ -1 +1 @@
1
- import{m,Oe,B,Z}from"./chunk-a09r7men.js";export{m as BroodsAccountApiError,Z as BroodsAccountClient,Oe as envPlaceholder,B as resolveEnvCredential};
1
+ import{m,Ae,B,Z}from"./chunk-p7t6yawg.js";export{m as BroodsAccountApiError,Z as BroodsAccountClient,Ae as envPlaceholder,B as resolveEnvCredential};