broods 0.44.1 → 0.46.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
@@ -178,10 +178,11 @@ interface McpOauth {
178
178
  }
179
179
 
180
180
  /**
181
- * Agent configuration: types for the per-agent settings object, the runtime
182
- * projection of a stored config, and encryption helpers. The validation rules
183
- * are the config plane's (`@broods/convex/model/agentRules`), so a config is
184
- * judged the same on write and on every run.
181
+ * Agent configuration: types for the per-agent settings object and the
182
+ * runtime projection of a stored config. The validation rules are the config
183
+ * plane's (`@broods/convex/model/agentRules`), so a config is judged the same
184
+ * on write and on every run. Decrypting the stored blob is
185
+ * `../convex/account-keys.ts`.
185
186
  * Account types and auth live in `./accounts.ts` and `../auth.ts`.
186
187
  */
187
188
 
@@ -733,17 +734,24 @@ type UpdateCronInput = {
733
734
  input?: never;
734
735
  });
735
736
 
737
+ /**
738
+ * The sandbox provider list: the one list the schema validator, the config
739
+ * rules, core's executor registry and the SDK derive from. A leaf on purpose,
740
+ * so `schema.ts` can read it without pulling the rules' import graph.
741
+ */
742
+ declare const SANDBOX_PROVIDERS: readonly ["sandbox", "lambda", "e2b", "daytona", "vercel", "machine", "custom"];
743
+ type SandboxProvider = (typeof SANDBOX_PROVIDERS)[number];
744
+
736
745
  /**
737
746
  * Sandbox-config validation for the Convex config plane. Ports core's former
738
747
  * storage/sandbox-config.ts normalizer so the public /v1/sandboxes contract
739
748
  * is unchanged. The public projection lives in ./responses.ts.
740
749
  */
741
- declare const SANDBOX_PROVIDERS: readonly ["sandbox", "lambda", "e2b", "daytona", "vercel", "machine"];
750
+
742
751
  declare const SANDBOX_RUNTIMES: readonly ["bash", "python", "node"];
743
752
  declare const SANDBOX_PERMISSION_MODES: readonly ["edit", "ask", "bypass"];
744
753
  declare const SANDBOX_NETWORK_MODES: readonly ["allow-all", "deny-all", "restricted"];
745
754
  declare const SANDBOX_SIZE_NAMES: readonly ["tiny", "xsmall", "small", "medium", "large"];
746
- type SandboxProvider = (typeof SANDBOX_PROVIDERS)[number];
747
755
  type RuntimeName = (typeof SANDBOX_RUNTIMES)[number];
748
756
  type PermissionMode = (typeof SANDBOX_PERMISSION_MODES)[number];
749
757
  type NetworkMode = (typeof SANDBOX_NETWORK_MODES)[number];
@@ -782,6 +790,81 @@ interface SandboxConfig {
782
790
  options?: Record<string, unknown>;
783
791
  }
784
792
 
793
+ /**
794
+ * Sandbox config: account-scoped, reusable sandbox definitions referenced by
795
+ * agents via `config.sandboxes`. A sandbox is a collection of Claude-Code-style
796
+ * tools (bash/read/write/edit/glob/grep) backed by a provider. Stored encrypted
797
+ * at rest because `envVars`/`options` may hold secrets. Validation and the
798
+ * public projection live in packages/convex/model/sandboxRules.ts. The exec
799
+ * wire contract a sandbox server speaks is here too, since the SDK publishes it.
800
+ */
801
+
802
+ /**
803
+ * One exec, POSTed as JSON to `<endpoint>/exec`. The `lambda` MicroVM image
804
+ * speaks it and the `custom` provider lets an account point core at its own
805
+ * server that does. snake_case on purpose: the image shipped it first.
806
+ */
807
+ interface SandboxExecRequest {
808
+ /** Which interpreter runs `code`. Core sends `bash`. */
809
+ runtime: RuntimeName;
810
+ code: string;
811
+ /** Workspace namespace; selects the working directory. Absent for a stateless run. */
812
+ namespace?: string;
813
+ /** Root the namespace sits under; the server picks its default when absent. */
814
+ workspace_root?: string;
815
+ /** The server kills the process and answers `timed_out: true` once this passes. */
816
+ timeout_ms: number;
817
+ /** Positional arguments for `code`. */
818
+ args?: string[];
819
+ /** The process environment, set over an empty one or the server's start-up defaults (HOME, TMPDIR, PATH). */
820
+ env: Record<string, string>;
821
+ }
822
+ /** The JSON answer to one exec; HTTP 200 even when the code failed. */
823
+ interface SandboxExecResponse {
824
+ /** False when the process failed, timed out, or the request was invalid. */
825
+ ok: boolean;
826
+ runtime?: string;
827
+ /** Null when the process was killed by the timeout. */
828
+ exit_code?: number | null;
829
+ timed_out: boolean;
830
+ /** Wall-clock time of the exec. */
831
+ duration_ms: number;
832
+ stdout: string;
833
+ stderr: string;
834
+ /** True when the server already cut stdout or stderr. */
835
+ truncated?: boolean;
836
+ /** CPU time of the exec in microseconds, for usage metering. */
837
+ cpu_usec?: number;
838
+ /** The machine's vCPU-s and GB-s above its baseline since boot. MicroVM only. */
839
+ burst?: {
840
+ vcpu_seconds: number;
841
+ gb_seconds: number;
842
+ };
843
+ }
844
+
845
+ /**
846
+ * Workspace isolation levels, the one list the config plane, core, the
847
+ * dashboard and the CLI read. No imports on purpose: the CLI bundles this file
848
+ * without the Convex runtime behind workspaceRules (like modelProviders.ts).
849
+ */
850
+ declare const WORKSPACE_ISOLATION_LEVELS: readonly ["conversation", "agent"];
851
+ /**
852
+ * How a workspace splits its files. "conversation" mounts a folder per channel
853
+ * partition, "agent" gives every attached agent its own folder. Unset shares
854
+ * one root between every agent and conversation.
855
+ */
856
+ type WorkspaceIsolation = (typeof WORKSPACE_ISOLATION_LEVELS)[number];
857
+
858
+ /**
859
+ * Workspace-config validation for the Convex config plane. Ports core's
860
+ * former storage/workspace-config.ts normalizer so the public /v1/workspaces
861
+ * contract is unchanged. Workspace config holds no secrets (a roleArn is not
862
+ * a secret), so it is stored and returned in plaintext. Pure module, safe
863
+ * for the default Convex runtime. The public projection lives in
864
+ * ./responses.ts. Core runs the storage access rule too, so it reads the env
865
+ * names of both sides.
866
+ */
867
+
785
868
  declare const WORKSPACE_STORAGE_PROVIDERS: readonly ["s3"];
786
869
  type WorkspaceStorageProvider = (typeof WORKSPACE_STORAGE_PROVIDERS)[number];
787
870
  type WorkspaceStorageAuth = {
@@ -801,7 +884,7 @@ interface WorkspaceStorageConfig {
801
884
  }
802
885
  interface WorkspaceConfig {
803
886
  storage: WorkspaceStorageConfig;
804
- isolation?: boolean;
887
+ isolation?: WorkspaceIsolation;
805
888
  harness?: {
806
889
  workspace?: {
807
890
  enabled?: boolean;
@@ -823,7 +906,7 @@ declare const AGENT_POLICY_ACTIONS: readonly ["agent.invoke", "tool.call", "work
823
906
  * resource route. Roles carry the same PolicyDocument shape as agent policies;
824
907
  * each caller passes its action set to `normalizePolicyDocument`.
825
908
  */
826
- declare const API_POLICY_ACTIONS: readonly ["account:read", "account:write", "agents:read", "agents:write", "channels:read", "channels:write", "crons:read", "crons:write", "env:read", "env:write", "hooks:read", "hooks:write", "mcp:read", "mcp:write", "policies:read", "policies:write", "sandboxes:read", "sandboxes:write", "skills:read", "skills:write", "workspaces:read", "workspaces:write"];
909
+ declare const API_POLICY_ACTIONS: readonly ["account:read", "account:write", "agents:read", "agents:write", "audit:read", "audit:write", "channels:read", "channels:write", "crons:read", "crons:write", "env:read", "env:write", "hooks:read", "hooks:write", "mcp:read", "mcp:write", "policies:read", "policies:write", "sandboxes:read", "sandboxes:write", "skills:read", "skills:write", "workspaces:read", "workspaces:write"];
827
910
  type AgentPolicyAction = (typeof AGENT_POLICY_ACTIONS)[number];
828
911
  type ApiPolicyAction = (typeof API_POLICY_ACTIONS)[number];
829
912
  type PolicyAction = AgentPolicyAction | ApiPolicyAction;
@@ -1222,7 +1305,6 @@ interface PendingQuestion {
1222
1305
  label: string;
1223
1306
  description?: string;
1224
1307
  }[];
1225
- allowFreeText?: boolean;
1226
1308
  }[];
1227
1309
  }
1228
1310
  /** Answers one open prompt: option labels or free text, keyed by question id. */
@@ -1754,7 +1836,7 @@ interface Connection {
1754
1836
  * server runtimes, as well as Node and Bun.
1755
1837
  *
1756
1838
  * Auth: every call sends `Authorization: Bearer {accountSecret}` to
1757
- * `{baseUrl}/v1/...`, or a short-lived `fp_sts_` role session token from
1839
+ * `{baseUrl}/v1/...`, or a short-lived `bsts_` role session token from
1758
1840
  * `assumeRole()`, limited to what the role's policy allows. Secrets inside
1759
1841
  * agent configs are encrypted at rest by the platform and come back redacted
1760
1842
  * (`********`) on reads.
@@ -1770,7 +1852,7 @@ interface BroodsAccountClientOptions {
1770
1852
  /** Account key used as the Bearer token. Falls back to `BROODS_ACCOUNT_SECRET`. */
1771
1853
  accountSecret?: string;
1772
1854
  /**
1773
- * Short-lived `fp_sts_` role session token (from {@link BroodsAccountClient.assumeRole})
1855
+ * Short-lived `bsts_` role session token (from {@link BroodsAccountClient.assumeRole})
1774
1856
  * used as the Bearer instead of the account key. The session can only do
1775
1857
  * what its role's policy allows. Falls back to `BROODS_SESSION_TOKEN`.
1776
1858
  */
@@ -1782,6 +1864,8 @@ interface BroodsAccount {
1782
1864
  accountId: string;
1783
1865
  username: string;
1784
1866
  status: string;
1867
+ /** Days an audit row is kept; absent means the 90 day default. */
1868
+ auditRetentionDays?: number;
1785
1869
  [key: string]: unknown;
1786
1870
  }
1787
1871
  /** Public agent record; `config` comes back with secret values redacted. */
@@ -1870,9 +1954,82 @@ interface AccountRole {
1870
1954
  createdAt: string;
1871
1955
  updatedAt: string;
1872
1956
  }
1957
+ /** One link of an agent actor's delegation chain: who asked, or an agent that delegated. */
1958
+ type AuditPrincipalLink = {
1959
+ kind: "user";
1960
+ id: string;
1961
+ name?: string;
1962
+ channel?: string;
1963
+ } | {
1964
+ kind: "api";
1965
+ keyKind: "account" | "deployment" | "cron";
1966
+ } | {
1967
+ kind: "agent";
1968
+ agentId: string;
1969
+ };
1970
+ /**
1971
+ * One row of the account's hash-chained audit ledger, as `GET /v1/audit`
1972
+ * serves it. `hash` is sha256 over the canonical JSON of every field but
1973
+ * `hash` itself (an absent optional field is left out, not null), with
1974
+ * `prevHash` linking it to the row before.
1975
+ */
1976
+ interface AuditEvent {
1977
+ accountId: string;
1978
+ seq: number;
1979
+ prevHash: string;
1980
+ hash: string;
1981
+ /** Unix ms. */
1982
+ at: number;
1983
+ actor: {
1984
+ kind: string;
1985
+ id?: string;
1986
+ email?: string;
1987
+ name?: string;
1988
+ agentId?: string;
1989
+ /** On an agent actor: who asked, then each agent that delegated, oldest first. */
1990
+ chain?: AuditPrincipalLink[];
1991
+ };
1992
+ action: string;
1993
+ resource: {
1994
+ kind: string;
1995
+ id?: string;
1996
+ name?: string;
1997
+ };
1998
+ summary: string;
1999
+ detailsJson?: string;
2000
+ projectId?: string;
2001
+ stageId?: string;
2002
+ traceId?: string;
2003
+ }
2004
+ /** A page of ledger rows plus the chain head to compare the last row against. */
2005
+ interface AuditPage {
2006
+ events: AuditEvent[];
2007
+ /** Pass as `since` to read the rows after this page. */
2008
+ nextSince: number;
2009
+ head: {
2010
+ seq: number;
2011
+ hash: string;
2012
+ } | null;
2013
+ }
2014
+ /** Result of `GET /v1/audit/verify`: the chain recomputed over the checked range. */
2015
+ interface AuditVerification {
2016
+ ok: boolean;
2017
+ brokenAtSeq?: number;
2018
+ checkedFrom?: number;
2019
+ checkedTo?: number;
2020
+ }
2021
+ /** The account's audit export target. The signing secret never comes back. */
2022
+ interface AuditSink {
2023
+ kind: "webhook";
2024
+ url: string;
2025
+ /** Highest seq the receiver acknowledged. */
2026
+ exportedSeq: number;
2027
+ lastError?: string;
2028
+ updatedAt: string;
2029
+ }
1873
2030
  /** Short-lived role session minted by `POST /v1/account/assume-role`. */
1874
2031
  interface AssumeRoleResult {
1875
- /** `fp_sts_` bearer token; pass it as `sessionToken` to a new client. */
2032
+ /** `bsts_` bearer token; pass it as `sessionToken` to a new client. */
1876
2033
  token: string;
1877
2034
  /** ISO timestamp when the session stops working. */
1878
2035
  expiresAt: string;
@@ -2077,9 +2234,11 @@ declare class BroodsAccountClient {
2077
2234
  updateAccount(patch: {
2078
2235
  username?: string;
2079
2236
  description?: string | null;
2237
+ /** 1 to 3650 days, or null to return to the 90 day default. */
2238
+ auditRetentionDays?: number | null;
2080
2239
  }): Promise<BroodsAccount | null>;
2081
2240
  /**
2082
- * Exchange a role for a short-lived `fp_sts_` session token. Callable with
2241
+ * Exchange a role for a short-lived `bsts_` session token. Callable with
2083
2242
  * the account key, a CLI login token, or a runtime key (the latter
2084
2243
  * only into roles scoped to the key's own project/stage). Construct a new
2085
2244
  * client with `{ sessionToken: result.token }` to act as the role.
@@ -2231,6 +2390,32 @@ declare class BroodsAccountClient {
2231
2390
  status?: "active" | "disabled";
2232
2391
  }): Promise<AccountRole | null>;
2233
2392
  deleteRole(roleId: string): Promise<boolean>;
2393
+ /** The audit ledger: rows since a seq, chain verification, and the webhook sink. */
2394
+ readonly audit: {
2395
+ /** Rows with `seq > since`, oldest first, at most `limit` (default 100, max 500). */
2396
+ list: (options?: {
2397
+ since?: number;
2398
+ limit?: number;
2399
+ }) => Promise<AuditPage>;
2400
+ /**
2401
+ * Recompute the chain over `[fromSeq, toSeq]`, from the oldest kept row by
2402
+ * default, at most 1000 rows per call. `ok` covers only `checkedFrom` to
2403
+ * `checkedTo`; on a longer ledger call again with `fromSeq: checkedTo + 1`.
2404
+ */
2405
+ verify: (options?: {
2406
+ fromSeq?: number;
2407
+ toSeq?: number;
2408
+ }) => Promise<AuditVerification>;
2409
+ /** The account's sink, or null when none is set. */
2410
+ getSink: () => Promise<AuditSink | null>;
2411
+ /** Set the one webhook sink. `url` must be public https; `secret` signs each batch. */
2412
+ setSink: (input: {
2413
+ url: string;
2414
+ secret: string;
2415
+ }) => Promise<AuditSink>;
2416
+ /** Remove the sink; exports stop and rows age out on retention alone. Returns whether one existed. */
2417
+ deleteSink: () => Promise<boolean>;
2418
+ };
2234
2419
  listChannels(): Promise<AccountChannel[]>;
2235
2420
  /** Bind one real chat channel to an agent. One active record per place. */
2236
2421
  createChannel(input: {
@@ -2414,9 +2599,15 @@ type ResourceInput<Name extends string, Config> = {
2414
2599
  * `persistent` sandbox reconnects to when no workspace is mounted; unset, each
2415
2600
  * agent gets its own, and pinning one string on two sandboxes shares a machine.
2416
2601
  * Keys are scoped to the account, so they cannot reach another account's machine.
2602
+ * A `custom` sandbox names its server with `endpoint` (https, required), an
2603
+ * optional bearer `token` and extra static `headers`; a credential header's
2604
+ * value is an `env("NAME")` ref.
2417
2605
  */
2418
2606
  type SandboxDefinitionOptions = Record<string, unknown> & {
2419
2607
  reservationKey?: string;
2608
+ endpoint?: string;
2609
+ token?: string | EnvRef;
2610
+ headers?: Record<string, string | EnvRef>;
2420
2611
  };
2421
2612
  /**
2422
2613
  * Code-first sandbox config input. Mirrors core's `SandboxConfig` but lets
@@ -2934,12 +3125,13 @@ type CronDefinitionConfig = Omit<CreateCronInput, "agentId" | "name"> & {
2934
3125
  type AgentResource<Name extends string = string> = ResourceDefinition<"agent", Name, AgentDefinitionConfig>;
2935
3126
  /**
2936
3127
  * Code-first workspace config. Says `partitioned` where storage says
2937
- * `isolation`: the flag permits a split, it does not perform one. A channel's
2938
- * `partition` decides which folder a run mounts.
3128
+ * `isolation`. "conversation" permits a per-conversation split that a
3129
+ * channel's `partition` performs; "agent" splits the workspace per attached
3130
+ * agent on its own, with no partition needed.
2939
3131
  */
2940
3132
  type WorkspaceDefinitionConfig = Omit<WorkspaceConfig, "isolation"> & {
2941
- /** Allow this workspace to be split into per-conversation folders. */
2942
- partitioned?: boolean;
3133
+ /** How to split this workspace: per conversation or per agent. */
3134
+ partitioned?: WorkspaceIsolation;
2943
3135
  };
2944
3136
  type WorkspaceResource<Name extends string = string> = ResourceDefinition<"workspace", Name, WorkspaceDefinitionConfig>;
2945
3137
  type SandboxResource<Name extends string = string> = ResourceDefinition<"sandbox", Name, SandboxDefinitionConfig>;
@@ -3015,4 +3207,4 @@ declare function isConnectionDefinition(value: unknown): value is AnyConnectionD
3015
3207
  declare function isResource(value: unknown): value is AnyResource;
3016
3208
 
3017
3209
  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 };
3018
- 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, Connection, ConnectionCode, ConnectionDefinition, ConnectionStart, ConnectionStartResult, ConnectionType, 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 };
3210
+ 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, AuditEvent, AuditPage, AuditPrincipalLink, AuditSink, AuditVerification, BroodsAccount, BroodsAccountClientOptions, BroodsClientOptions, BroodsConfigDefinition, BroodsProjectConfig, BroodsWebSocketClientOptions, ChannelAgentInput, ChannelDefinitionConfig, ChannelMessageReceived, ChannelPartition, ChannelRecordConfig, ChannelReference, ChannelReplyIn, ChannelResource, ChannelType, CliManifest, CliManifestResource, ConfigPatch, Connection, ConnectionCode, ConnectionDefinition, ConnectionStart, ConnectionStartResult, ConnectionType, 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, SandboxExecRequest, SandboxExecResponse, SandboxLifecycleResult, SandboxProvider, 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, WorkspaceIsolation, WorkspaceResource, ZaloChannelInput, ZaloConnectionDefinition, ZaloConnectionInput, ZaloMessageSource, ZaloSource };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{V,ge,Me,Pe,Ne,je,G,Ie,E,ye,F,J,xe,Y,z,qe,De,Le,Ue,Fe,Be,Ze,He,Ve,Ge,We,Ke,Je,Ye,Xe,Qe,et,tt,nt,rt,ot,st,it,at,ct,lt,ut,dt,pt,mt,ht,ft,gt,yt,St,bt,vt,_t,ie,w,g}from"./chunk-hdcy74kj.js";import{m,Ae,Z,R}from"./chunk-a3f2xzbr.js";export{m as BroodsAccountApiError,R as BroodsAccountClient,F as BroodsClient,xe as BroodsWebSocketClient,E as DEFAULT_CORE_BASE_URL,ye as IngressAcceptedError,Me as MAX_OBSERVABILITY_BACKFILL,xe as WebSocketClient,xe as WebsocketClient,De as defineAgent,Le as defineBroods,Ue as defineCron,ct as defineDiscordChannel,We as defineDiscordConnection,lt as defineGitHubChannel,Ke as defineGitHubConnection,ut as defineGoogleChatChannel,Je as defineGoogleChatConnection,Fe as defineHarness,dt as defineInstagramChannel,Ye as defineInstagramConnection,pt as defineLinearChannel,Xe as defineLinearConnection,mt as defineMatrixChannel,Qe as defineMatrixConnection,Be as defineMcp,ht as defineMessengerChannel,et as defineMessengerConnection,ft as definePancakeChannel,tt as definePancakeConnection,Ze as definePolicy,He as defineSandbox,Ve as defineSkill,gt as defineSlackChannel,nt as defineSlackConnection,yt as defineTeamsChannel,rt as defineTeamsConnection,St as defineTelegramChannel,ot as defineTelegramConnection,bt as defineTwilioChannel,st as defineTwilioConnection,vt as defineWhatsAppChannel,it as defineWhatsAppConnection,Ge as defineWorkspace,_t as defineZaloChannel,at as defineZaloConnection,qe as env,Ae as envPlaceholder,ie as isBroodsConfig,w as isConnectionDefinition,Pe as isLogLevel,Ne as isObservabilityClientMessage,g as isResource,je as isRootSpanKind,G as isSandboxLogId,Ie as isTraceId,J as normalizeHttpServiceUrl,ge as readSseStream,Z as resolveEnvCredential,V as resolveRunEvents,Y as toWebSocketBaseUrl,z as webSocketSubprotocols};
1
+ import{V,ge,Me,Pe,Ne,je,G,Ie,E,ye,F,J,xe,Y,z,qe,De,Le,Ue,Fe,Be,Ze,He,Ve,Ge,We,Ke,Je,Ye,Xe,Qe,et,tt,nt,rt,ot,st,it,at,ct,lt,ut,dt,pt,mt,ht,ft,gt,yt,St,bt,vt,_t,ie,w,g}from"./chunk-hdcy74kj.js";import{m,Ae,Z,R}from"./chunk-bb3jfhv3.js";export{m as BroodsAccountApiError,R as BroodsAccountClient,F as BroodsClient,xe as BroodsWebSocketClient,E as DEFAULT_CORE_BASE_URL,ye as IngressAcceptedError,Me as MAX_OBSERVABILITY_BACKFILL,xe as WebSocketClient,xe as WebsocketClient,De as defineAgent,Le as defineBroods,Ue as defineCron,ct as defineDiscordChannel,We as defineDiscordConnection,lt as defineGitHubChannel,Ke as defineGitHubConnection,ut as defineGoogleChatChannel,Je as defineGoogleChatConnection,Fe as defineHarness,dt as defineInstagramChannel,Ye as defineInstagramConnection,pt as defineLinearChannel,Xe as defineLinearConnection,mt as defineMatrixChannel,Qe as defineMatrixConnection,Be as defineMcp,ht as defineMessengerChannel,et as defineMessengerConnection,ft as definePancakeChannel,tt as definePancakeConnection,Ze as definePolicy,He as defineSandbox,Ve as defineSkill,gt as defineSlackChannel,nt as defineSlackConnection,yt as defineTeamsChannel,rt as defineTeamsConnection,St as defineTelegramChannel,ot as defineTelegramConnection,bt as defineTwilioChannel,st as defineTwilioConnection,vt as defineWhatsAppChannel,it as defineWhatsAppConnection,Ge as defineWorkspace,_t as defineZaloChannel,at as defineZaloConnection,qe as env,Ae as envPlaceholder,ie as isBroodsConfig,w as isConnectionDefinition,Pe as isLogLevel,Ne as isObservabilityClientMessage,g as isResource,je as isRootSpanKind,G as isSandboxLogId,Ie as isTraceId,J as normalizeHttpServiceUrl,ge as readSseStream,Z as resolveEnvCredential,V as resolveRunEvents,Y as toWebSocketBaseUrl,z as webSocketSubprotocols};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "broods",
3
- "version": "0.44.1",
3
+ "version": "0.46.0",
4
4
  "description": "CLI + TypeScript SDK for the broods agent platform.",
5
5
  "keywords": [
6
6
  "agents",
File without changes