broods 0.27.0 → 0.29.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
@@ -122,7 +122,7 @@ interface AgentConfig {
122
122
  channels?: AgentChannelsConfig;
123
123
  tools?: AgentToolsConfig;
124
124
  /** Connected MCP servers, keyed by their config-plane row id (#331). */
125
- mcpServers?: AgentMcpServersConfig;
125
+ mcp?: AgentMcpConfig;
126
126
  /**
127
127
  * Tool names withheld for this run, applied after the tool set is built.
128
128
  * Set by a channel record; a channel can take a tool away, never add one.
@@ -287,8 +287,8 @@ interface AgentToolConfig {
287
287
  config?: Record<string, unknown>;
288
288
  [key: string]: unknown;
289
289
  }
290
- type AgentMcpServersConfig = Record<string, AgentMcpServerConfig>;
291
- interface AgentMcpServerConfig {
290
+ type AgentMcpConfig = Record<string, AgentMcpEntry>;
291
+ interface AgentMcpEntry {
292
292
  enabled?: boolean;
293
293
  /** Applies to every tool the server exposes. */
294
294
  needsApproval?: boolean;
@@ -573,7 +573,6 @@ type PolicyEffect = "allow" | "deny";
573
573
  */
574
574
  interface PolicyResourceSelector {
575
575
  toolNames?: string[];
576
- toolIds?: string[];
577
576
  /** MCP registration ids, for scoping tool.call rules per server (#331). */
578
577
  mcpIds?: string[];
579
578
  workspaceIds?: string[];
@@ -717,7 +716,7 @@ interface ZaloSource {
717
716
  * import it without pulling the Convex server module graph into its typecheck.
718
717
  */
719
718
  type CliManifestResource = {
720
- kind: "agent" | "workspace" | "sandbox" | "cron" | "skill" | "tool" | "hook" | "mcp" | "policy" | "channelRecord";
719
+ kind: "agent" | "workspace" | "sandbox" | "cron" | "skill" | "hook" | "mcp" | "policy" | "channelRecord";
721
720
  name: string;
722
721
  description?: string;
723
722
  config: unknown;
@@ -728,9 +727,8 @@ type GeneratedIds = {
728
727
  sandboxes: Record<string, string>;
729
728
  crons: Record<string, string>;
730
729
  skills: Record<string, string>;
731
- tools: Record<string, string>;
732
730
  hooks: Record<string, string>;
733
- mcpServers: Record<string, string>;
731
+ mcp: Record<string, string>;
734
732
  policies: Record<string, string>;
735
733
  channelRecords: Record<string, string>;
736
734
  };
@@ -759,7 +757,6 @@ type AgentConfigDoc = Doc<"agentConfigs">;
759
757
  type WorkspaceConfigDoc = Doc<"workspaceConfigs">;
760
758
  type SandboxConfigDoc = Doc<"sandboxConfigs">;
761
759
  type CronDoc = Doc<"crons">;
762
- type CliResourceKind = "agent" | "workspace" | "sandbox" | "cron" | "skill" | "tool" | "mcp" | "policy" | "channelRecord";
763
760
 
764
761
  /**
765
762
  * Wire types for the public account-manage and harness APIs. These mirror
@@ -853,14 +850,6 @@ interface Skill {
853
850
  size?: number;
854
851
  }>;
855
852
  }
856
- interface CustomTool {
857
- accountId: string;
858
- toolId: string;
859
- name: string;
860
- description: string;
861
- sha256: string;
862
- runtime?: "isolate" | "sandbox";
863
- }
864
853
 
865
854
  type StreamTextOptions = Parameters<typeof streamText>[0];
866
855
  type JsonCallSettings = Partial<LanguageModelCallOptions & Pick<RequestOptions, "maxRetries" | "timeout">>;
@@ -1128,7 +1117,6 @@ interface ResourceApi {
1128
1117
  readonly sandboxes?: Record<string, unknown>;
1129
1118
  readonly crons?: Record<string, unknown>;
1130
1119
  readonly skills?: Record<string, unknown>;
1131
- readonly tools?: Record<string, unknown>;
1132
1120
  readonly policies?: Record<string, unknown>;
1133
1121
  }
1134
1122
  interface BroodsClientOptions {
@@ -1410,48 +1398,13 @@ interface ChannelRecordConfig {
1410
1398
  userIds: string[];
1411
1399
  }>;
1412
1400
  }
1413
- /** The stage a tool belongs to. Tools with the same name in two stages are two tools. */
1414
- interface ToolScope {
1401
+ /** The stage a resource belongs to. Same name in two stages = two resources. */
1402
+ interface StageScope {
1415
1403
  project: string;
1416
1404
  stage: string;
1417
1405
  }
1418
- /** Public uploaded-tool record returned by the tools routes. */
1419
- interface AccountTool {
1420
- accountId: string;
1421
- toolId: string;
1422
- projectId: string;
1423
- stageId: string;
1424
- name: string;
1425
- description: string;
1426
- inputSchema: unknown;
1427
- sha256: string;
1428
- runtime: "isolate" | "sandbox";
1429
- defaultConfig?: unknown;
1430
- status: string;
1431
- createdAt: string;
1432
- updatedAt: string;
1433
- deletedAt?: string;
1434
- }
1435
- /** Fields accepted by `POST /v1/tools`. `bundle` is already-bundled JavaScript module source. */
1436
- interface CreateToolInput {
1437
- name: string;
1438
- description: string;
1439
- inputSchema: unknown;
1440
- bundle: string;
1441
- runtime?: "isolate" | "sandbox";
1442
- defaultConfig?: unknown;
1443
- }
1444
- /** Fields accepted by `PATCH /v1/tools/{toolId}`; every field is optional. Omitting `bundle` keeps the stored one. */
1445
- interface UpdateToolInput {
1446
- name?: string;
1447
- description?: string;
1448
- inputSchema?: unknown;
1449
- bundle?: string;
1450
- runtime?: "isolate" | "sandbox";
1451
- defaultConfig?: unknown;
1452
- }
1453
1406
  /** Public MCP server registration returned by the `/v1/mcp` routes (#331). */
1454
- interface AccountMcpServer {
1407
+ interface AccountMcp {
1455
1408
  accountId: string;
1456
1409
  serverId: string;
1457
1410
  projectId: string;
@@ -1472,7 +1425,7 @@ interface AccountMcpServer {
1472
1425
  deletedAt?: string;
1473
1426
  }
1474
1427
  /** Fields accepted by `POST /v1/mcp`: `url` connects, `bundle` uploads. */
1475
- interface CreateMcpServerInput {
1428
+ interface CreateMcpInput {
1476
1429
  name: string;
1477
1430
  description?: string;
1478
1431
  url?: string;
@@ -1481,7 +1434,7 @@ interface CreateMcpServerInput {
1481
1434
  allowedTools?: string[];
1482
1435
  }
1483
1436
  /** Fields accepted by `PATCH /v1/mcp/{serverId}`; every field is optional. */
1484
- interface UpdateMcpServerInput {
1437
+ interface UpdateMcpInput {
1485
1438
  name?: string;
1486
1439
  description?: string;
1487
1440
  url?: string;
@@ -1654,19 +1607,12 @@ declare class BroodsAccountClient {
1654
1607
  snapshotSandbox(sandboxId: string, reservationKey: string, name: string): Promise<SandboxSnapshotResult>;
1655
1608
  /** Mint a short-lived sealed ticket for an interactive PTY session on a persistent sandbox (`sandbox`/`lambda` providers). Throws on 404/403/409. */
1656
1609
  openSandboxTerminal(sandboxId: string, reservationKey: string): Promise<SandboxTerminalTicket>;
1657
- /** Tools live in one stage, so the collection routes need a scope. Both fields are required. */
1658
- listTools(scope: ToolScope): Promise<AccountTool[]>;
1659
- createTool(scope: ToolScope, input: CreateToolInput): Promise<AccountTool>;
1660
- getTool(toolId: string): Promise<AccountTool | null>;
1661
- /** PATCH an uploaded tool. Omitting `bundle` keeps the stored bundle and runtime. Returns null when the tool is gone. */
1662
- updateTool(toolId: string, patch: UpdateToolInput): Promise<AccountTool | null>;
1663
- deleteTool(toolId: string): Promise<boolean>;
1664
- /** MCP servers are stage-scoped like tools; both scope fields are required. */
1665
- listMcpServers(scope: ToolScope): Promise<AccountMcpServer[]>;
1666
- createMcpServer(scope: ToolScope, input: CreateMcpServerInput): Promise<AccountMcpServer>;
1667
- getMcpServer(serverId: string): Promise<AccountMcpServer | null>;
1668
- updateMcpServer(serverId: string, patch: UpdateMcpServerInput): Promise<AccountMcpServer | null>;
1669
- deleteMcpServer(serverId: string): Promise<boolean>;
1610
+ /** MCP servers live in one stage, so the collection routes need a scope. */
1611
+ listMcp(scope: StageScope): Promise<AccountMcp[]>;
1612
+ createMcp(scope: StageScope, input: CreateMcpInput): Promise<AccountMcp>;
1613
+ getMcp(serverId: string): Promise<AccountMcp | null>;
1614
+ updateMcp(serverId: string, patch: UpdateMcpInput): Promise<AccountMcp | null>;
1615
+ deleteMcp(serverId: string): Promise<boolean>;
1670
1616
  listPolicies(): Promise<AccountPolicy[]>;
1671
1617
  createPolicy(input: {
1672
1618
  name: string;
@@ -1858,7 +1804,7 @@ interface BroodsConfigDefinition {
1858
1804
  readonly [CONFIG_MARKER]: true;
1859
1805
  readonly config: BroodsProjectConfig;
1860
1806
  }
1861
- type ResourceKind = "agent" | "workspace" | "sandbox" | "cron" | "skill" | "tool" | "mcp" | "policy" | "channelRecord";
1807
+ type ResourceKind = "agent" | "workspace" | "sandbox" | "cron" | "skill" | "mcp" | "policy" | "channelRecord";
1862
1808
  interface ResourceDefinition<Kind extends ResourceKind, Name extends string, Config> {
1863
1809
  readonly [RESOURCE_MARKER]: true;
1864
1810
  readonly kind: Kind;
@@ -1905,70 +1851,34 @@ interface SkillDefinitionConfig {
1905
1851
  */
1906
1852
  path: string;
1907
1853
  }
1908
- /** Broods-side context on `ToolExecuteOptions`, alongside the AI SDK's own fields. */
1909
- interface ToolExecuteContext {
1910
- /** Resolved tool config, `env("NAME")` already substituted. Where secrets arrive. */
1911
- config: Record<string, unknown>;
1912
- /** SSRF-guarded fetch. Also installed as the global `fetch`. */
1913
- fetch: typeof fetch;
1914
- /** Per-run scratchpad. Read back after hooks; empty and unused for tools. */
1915
- state: Record<string, unknown>;
1916
- }
1917
- /** Call options an inline `execute` receives, mirroring the AI SDK's tool(). */
1918
- interface ToolExecuteOptions {
1919
- toolCallId?: string;
1920
- context: ToolExecuteContext;
1921
- abortSignal?: AbortSignal;
1922
- /** Conversation so far. Truncated from the front to the newest 512 KB. */
1923
- messages: ModelMessage[];
1924
- experimental_context?: unknown;
1925
- }
1926
- interface ToolDefinitionConfig<Input = Record<string, unknown>> {
1927
- /**
1928
- * Optional module file exporting the tool implementation, resolved from the
1929
- * `broods/` project directory. Omit it and declare `execute` inline instead —
1930
- * the CLI then bundles the module this tool is exported from.
1931
- */
1932
- path?: string;
1933
- /**
1934
- * Runs in the isolate or the sandbox runner, not locally. Shaped like the AI
1935
- * SDK's `tool({ execute })`: the input first, call options second. Annotate
1936
- * the parameter to type it — `inputSchema` is JSON Schema, so it cannot be
1937
- * inferred.
1938
- */
1939
- execute?: (input: Input, options: ToolExecuteOptions) => unknown;
1940
- description: string;
1941
- inputSchema: Record<string, unknown>;
1942
- runtime?: "isolate" | "sandbox";
1943
- /**
1944
- * Account-wide, non-secret defaults. Environment variable references are
1945
- * rejected here; put `env("NAME")` under the enabling agent's
1946
- * `tools.<tool>.config` so the value is resolved per stage and stored with
1947
- * encrypted agent config.
1948
- */
1949
- defaultConfig?: Record<string, unknown>;
1950
- }
1951
1854
  type PolicyDefinitionConfig = Omit<PolicyDocument, "version"> & {
1952
1855
  version?: PolicyDocument["version"];
1953
1856
  };
1954
1857
  /**
1955
- * MCP server registration (#331) — external (`url`) or hosted (`path`).
1858
+ * Fetch-style MCP handler for a hosted server: what
1859
+ * `createMcpHandler(...)` from @modelcontextprotocol/server returns —
1860
+ * either the request function itself or an object exposing it as `fetch`.
1861
+ */
1862
+ type McpHandler = ((request: Request) => Response | Promise<Response>) | {
1863
+ fetch(request: Request): Response | Promise<Response>;
1864
+ };
1865
+ /**
1866
+ * MCP server registration (#331) — external (`url`) or hosted (`handler`).
1956
1867
  * Either way the server's tools are offered as `<name>__<tool>`; an external
1957
1868
  * row is dialed over the stateless HTTP transport (spec 2026-07-28) at agent
1958
1869
  * registration time. The name namespaces those tools, so it must be 1-32
1959
1870
  * lowercase letters, digits, or hyphens, starting with a letter.
1960
1871
  */
1961
- interface McpServerDefinitionConfig {
1872
+ interface McpDefinitionConfig {
1962
1873
  /** External server's MCP endpoint; http(s), no embedded credentials. */
1963
1874
  url?: string;
1964
1875
  /**
1965
- * Hosted alternative to `url`: a module (resolved from the `broods/`
1966
- * directory) whose default export is a fetch-style MCP handler —
1967
- * `export default createMcpHandler(...)` from @modelcontextprotocol/server.
1968
- * The CLI bundles it and the tool-runner Lambda hosts it, one invoke per
1969
- * request.
1876
+ * Hosted alternative to `url`: declare the server inline —
1877
+ * `handler: createMcpHandler(...)` from @modelcontextprotocol/server,
1878
+ * right next to the `defineMcp` call. The CLI bundles the defining module
1879
+ * and the tool-runner Lambda hosts it, one invoke per request.
1970
1880
  */
1971
- path?: string;
1881
+ handler?: McpHandler;
1972
1882
  /**
1973
1883
  * Extra request headers. Credential-bearing headers (Authorization,
1974
1884
  * X-Api-Key, ...) must reference an account env var — e.g.
@@ -2279,7 +2189,7 @@ interface ProviderSettingsInput {
2279
2189
  }
2280
2190
  /** Per-provider settings; provider names stay synced with core's `AgentConfig`. */
2281
2191
  type ProviderConfigInput = Partial<Record<keyof NonNullable<AgentConfig["provider"]>, ProviderSettingsInput>>;
2282
- type AgentDefinitionConfig = EnvRefString<Pick<AgentConfig, "agent" | "model" | "scheduler" | "session" | "tools" | "mcpServers">> & {
2192
+ type AgentDefinitionConfig = EnvRefString<Pick<AgentConfig, "agent" | "model" | "scheduler" | "session" | "tools" | "mcp">> & {
2283
2193
  provider?: ProviderConfigInput;
2284
2194
  } & {
2285
2195
  harness?: HarnessDefinition;
@@ -2317,12 +2227,11 @@ type WorkspaceDefinitionConfig = Omit<WorkspaceConfig, "isolation"> & {
2317
2227
  type WorkspaceResource<Name extends string = string> = ResourceDefinition<"workspace", Name, WorkspaceDefinitionConfig>;
2318
2228
  type SandboxResource<Name extends string = string> = ResourceDefinition<"sandbox", Name, SandboxDefinitionConfig>;
2319
2229
  type SkillResource<Name extends string = string> = ResourceDefinition<"skill", Name, SkillDefinitionConfig>;
2320
- type ToolResource<Name extends string = string> = ResourceDefinition<"tool", Name, ToolDefinitionConfig>;
2321
- type McpServerResource<Name extends string = string> = ResourceDefinition<"mcp", Name, McpServerDefinitionConfig>;
2230
+ type McpResource<Name extends string = string> = ResourceDefinition<"mcp", Name, McpDefinitionConfig>;
2322
2231
  type PolicyResource<Name extends string = string> = ResourceDefinition<"policy", Name, PolicyDefinitionConfig>;
2323
2232
  type CronResource<Name extends string = string> = ResourceDefinition<"cron", Name, CronDefinitionConfig>;
2324
2233
  type ChannelResource<Name extends string = string> = ResourceDefinition<"channelRecord", Name, ChannelDefinitionConfig>;
2325
- type AnyResource = AgentResource | WorkspaceResource | SandboxResource | CronResource | SkillResource | ToolResource | McpServerResource | PolicyResource | ChannelResource;
2234
+ type AnyResource = AgentResource | WorkspaceResource | SandboxResource | CronResource | SkillResource | McpResource | PolicyResource | ChannelResource;
2326
2235
  /**
2327
2236
  * References an account/environment variable resolved on the SERVER at runtime —
2328
2237
  * set it with `broods env set <NAME>` or in the dashboard (the Convex-style
@@ -2359,15 +2268,12 @@ declare function defineHarness<const Definition extends HarnessDefinition>(defin
2359
2268
  declare function defineWorkspace<const Name extends string>(input: ResourceInput<Name, WorkspaceDefinitionConfig>): WorkspaceResource<Name>;
2360
2269
  declare function defineSandbox<const Name extends string>(input: ResourceInput<Name, SandboxDefinitionConfig>): SandboxResource<Name>;
2361
2270
  declare function defineSkill<const Name extends string>(input: ResourceInput<Name, SkillDefinitionConfig>): SkillResource<Name>;
2362
- declare function defineTool<const Name extends string, Input = Record<string, unknown>>(input: {
2363
- name: Name;
2364
- } & ToolDefinitionConfig<Input>): ToolResource<Name>;
2365
- declare function defineMcp<const Name extends string>(input: ResourceInput<Name, McpServerDefinitionConfig>): McpServerResource<Name>;
2271
+ declare function defineMcp<const Name extends string>(input: ResourceInput<Name, McpDefinitionConfig>): McpResource<Name>;
2366
2272
  declare function definePolicy<const Name extends string>(input: ResourceInput<Name, PolicyDefinitionConfig>): PolicyResource<Name>;
2367
2273
  declare function defineCron<const Name extends string>(input: ResourceInput<Name, CronDefinitionConfig>): CronResource<Name>;
2368
2274
  declare function isResource(value: unknown): value is AnyResource;
2369
2275
  declare function isConnectionDefinition(value: unknown): value is AnyConnectionDefinition;
2370
2276
  declare function isBroodsConfig(value: unknown): value is BroodsConfigDefinition;
2371
2277
 
2372
- 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, defineMcp, definePancakeChannel, definePancakeConnection, definePolicy, defineSandbox, defineSkill, defineSlackChannel, defineSlackConnection, defineTelegramChannel, defineTelegramConnection, defineTool, defineWorkspace, defineZaloChannel, defineZaloConnection, env, envPlaceholder, isBroodsConfig, isConnectionDefinition, isLogLevel, isObservabilityClientMessage, isResource, isRootSpanKind, normalizeHttpServiceUrl, readSseStream, resolveRunEvents, toWebSocketBaseUrl };
2373
- export type { Account, AccountAgent, AccountChannel, AccountEnvVar, AccountMcpServer, AccountPolicy, AccountRole, AccountSandbox, AccountTool, AccountWorkspace, Agent, AgentChannelsConfig, AgentCodeHookConfig, AgentConfig, AgentConfigDoc, AgentDefinitionConfig, AgentDiscordChannelConfig, AgentGitHubChannelConfig, AgentHandle, AgentHookEventName, AgentHooks, AgentHooksConfig, AgentPancakeChannelConfig, AgentProviderSettings, AgentReference, AgentResource, 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, CliResourceKind, ConnectionDefinition, CreateAgentResult, CreateClientCronInput, CreateCronInput, CreateMcpServerInput, CreateToolInput, Cron, CronDefinitionConfig, CronDoc, CronLastStatus, CronResource, CronRun, CronStatus, CustomTool, DeleteAccountResult, DiscordChannelInput, DiscordConnectionDefinition, DiscordConnectionInput, DiscordMessageSource, DiscordSource, Doc, EnvAccessor, EnvRef, EnvRefString, GeneratedIds, GitHubChannelInput, GitHubConnectionDefinition, GitHubConnectionInput, GitHubMessageSource, GitHubSource, HarnessDefinition, HarnessType, HookContext, Id, IngressMode, IngressStatus, LogLevel, McpServerDefinitionConfig, McpServerResource, ObservabilityBackfillMessage, ObservabilityClientMessage, ObservabilityErrorMessage, ObservabilityLogEntry, ObservabilityLogMessage, ObservabilityReadyMessage, ObservabilityServerMessage, ObservabilitySpanMessage, ObservabilitySpanRow, ObservabilitySubscribeMessage, ObservabilityUnsubscribeMessage, PancakeChannelInput, PancakeConnectionDefinition, PancakeConnectionInput, PancakeMessageSource, PancakeSource, PolicyDefinitionConfig, PolicyDocument, PolicyResource, ProjectDoc, ProviderConfigInput, ProviderSettingsInput, ResourceApi, ResourceDefinition, ResourceInput, ResourceKind, RotateSecretResult, Sandbox, SandboxConfig, SandboxConfigDoc, SandboxDefinitionConfig, SandboxDefinitionOptions, SandboxLifecycleResult, SandboxResource, SandboxSnapshotResult, SandboxTerminalTicket, Skill, SkillDefinitionConfig, SkillResource, SkillUploadInput, SlackChannelInput, SlackConnectionDefinition, SlackConnectionInput, SlackMessageSource, SlackSource, StageDoc, TelegramChannelInput, TelegramConnectionDefinition, TelegramConnectionInput, TelegramMessageSource, TelegramSource, ToolApprovalSummary, ToolDefinitionConfig, ToolExecuteContext, ToolExecuteOptions, ToolResource, ToolScope, UpdateAgentInput, UpdateCronInput, UpdateMcpServerInput, UpdateToolInput, 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 };
2278
+ 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, defineMcp, definePancakeChannel, definePancakeConnection, definePolicy, defineSandbox, defineSkill, defineSlackChannel, defineSlackConnection, defineTelegramChannel, defineTelegramConnection, defineWorkspace, defineZaloChannel, defineZaloConnection, env, envPlaceholder, isBroodsConfig, isConnectionDefinition, isLogLevel, isObservabilityClientMessage, isResource, isRootSpanKind, normalizeHttpServiceUrl, readSseStream, resolveRunEvents, toWebSocketBaseUrl };
2279
+ export type { Account, AccountAgent, AccountChannel, AccountEnvVar, AccountMcp, AccountPolicy, AccountRole, AccountSandbox, AccountWorkspace, Agent, AgentChannelsConfig, AgentCodeHookConfig, AgentConfig, AgentConfigDoc, AgentDefinitionConfig, AgentDiscordChannelConfig, AgentGitHubChannelConfig, AgentHandle, AgentHookEventName, AgentHooks, AgentHooksConfig, AgentPancakeChannelConfig, AgentProviderSettings, AgentReference, AgentResource, 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, ConnectionDefinition, CreateAgentResult, CreateClientCronInput, 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, McpDefinitionConfig, McpHandler, McpResource, ObservabilityBackfillMessage, ObservabilityClientMessage, ObservabilityErrorMessage, ObservabilityLogEntry, ObservabilityLogMessage, ObservabilityReadyMessage, ObservabilityServerMessage, ObservabilitySpanMessage, ObservabilitySpanRow, ObservabilitySubscribeMessage, ObservabilityUnsubscribeMessage, PancakeChannelInput, PancakeConnectionDefinition, PancakeConnectionInput, PancakeMessageSource, PancakeSource, PolicyDefinitionConfig, PolicyDocument, PolicyResource, ProjectDoc, ProviderConfigInput, ProviderSettingsInput, 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, 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 };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as O,b as R,c as L}from"./chunk-36yhe6qb.js";import{A as _,B as P,C as U,D as B,E as H,F as K,G as j,H as G,I as F,J as z,K as Z,L as V,M as X,N as Y,O as J,P as Q,Q as ee,R as te,S as re,T as ne,U as se,d as v,e as k,p as S,q as A,r as M,s as h,t as w,u as W,v as E,w as D,x as T,y as q,z as N}from"./chunk-rwpj4428.js";import"./chunk-4sdsq7gb.js";var a=500;function i(e){if(typeof e!=="object"||e===null)return!1;let t=e;if(t.type==="subscribe"){let r=t.stream;if(r!=="logs"&&r!=="traces")return!1;let n=t.backfill;if(n!==void 0&&(typeof n!=="number"||!Number.isSafeInteger(n)||n<0||n>500))return!1;if(t.liveOnly!==void 0&&typeof t.liveOnly!=="boolean")return!1;let s=t.minLevel;if(s!==void 0&&!o(s))return!1;return!0}if(t.type==="unsubscribe"){let r=t.stream;return r==="logs"||r==="traces"}return!1}function o(e){return e==="DEBUG"||e==="INFO"||e==="WARN"||e==="ERROR"}function p(e){return e==="task"||e==="cron"||e==="subtask"}export{R as BroodsAccountApiError,L as BroodsAccountClient,M as BroodsClient,w as BroodsWebSocketClient,S as DEFAULT_CORE_BASE_URL,A as IngressAcceptedError,a as MAX_OBSERVABILITY_BACKFILL,w as WebSocketClient,w as WebsocketClient,z as defineAgent,F as defineBroods,te as defineCron,U as defineDiscordChannel,D as defineDiscordConnection,B as defineGitHubChannel,T as defineGitHubConnection,Z as defineHarness,Q as defineMcp,H as definePancakeChannel,q as definePancakeConnection,ee as definePolicy,X as defineSandbox,Y as defineSkill,K as defineSlackChannel,N as defineSlackConnection,j as defineTelegramChannel,_ as defineTelegramConnection,J as defineTool,V as defineWorkspace,G as defineZaloChannel,P as defineZaloConnection,E as env,O as envPlaceholder,se as isBroodsConfig,ne as isConnectionDefinition,o as isLogLevel,i as isObservabilityClientMessage,re as isResource,p as isRootSpanKind,h as normalizeHttpServiceUrl,k as readSseStream,v as resolveRunEvents,W as toWebSocketBaseUrl};
1
+ import{A as B,B as H,C as K,D as j,E as G,F,G as z,H as Z,I as V,J as X,K as Y,L as J,M as Q,N as ee,O as te,P as re,Q as ne,a as v,b as S,m as k,n as A,o as M,p as h,q as W,r as w,s as E,t as D,u as T,v as q,w as N,x as _,y as P,z as U}from"./chunk-3qpgf0c1.js";import{R as O,S as R,T as L}from"./chunk-xzamx5yk.js";import"./chunk-8essas2r.js";var a=500;function i(e){if(typeof e!=="object"||e===null)return!1;let t=e;if(t.type==="subscribe"){let r=t.stream;if(r!=="logs"&&r!=="traces")return!1;let n=t.backfill;if(n!==void 0&&(typeof n!=="number"||!Number.isSafeInteger(n)||n<0||n>500))return!1;if(t.liveOnly!==void 0&&typeof t.liveOnly!=="boolean")return!1;let s=t.minLevel;if(s!==void 0&&!o(s))return!1;return!0}if(t.type==="unsubscribe"){let r=t.stream;return r==="logs"||r==="traces"}return!1}function o(e){return e==="DEBUG"||e==="INFO"||e==="WARN"||e==="ERROR"}function p(e){return e==="task"||e==="cron"||e==="subtask"}export{R as BroodsAccountApiError,L as BroodsAccountClient,M as BroodsClient,W as BroodsWebSocketClient,k as DEFAULT_CORE_BASE_URL,A as IngressAcceptedError,a as MAX_OBSERVABILITY_BACKFILL,W as WebSocketClient,W as WebsocketClient,z as defineAgent,F as defineBroods,ee as defineCron,U as defineDiscordChannel,D as defineDiscordConnection,B as defineGitHubChannel,T as defineGitHubConnection,Z as defineHarness,J as defineMcp,H as definePancakeChannel,q as definePancakeConnection,Q as definePolicy,X as defineSandbox,Y as defineSkill,K as defineSlackChannel,N as defineSlackConnection,j as defineTelegramChannel,_ as defineTelegramConnection,V as defineWorkspace,G as defineZaloChannel,P as defineZaloConnection,E as env,O as envPlaceholder,ne as isBroodsConfig,re as isConnectionDefinition,o as isLogLevel,i as isObservabilityClientMessage,te as isResource,p as isRootSpanKind,h as normalizeHttpServiceUrl,S as readSseStream,v as resolveRunEvents,w as toWebSocketBaseUrl};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "broods",
3
- "version": "0.27.0",
3
+ "version": "0.29.0",
4
4
  "description": "CLI + TypeScript SDK for the broods agent platform.",
5
5
  "keywords": [
6
6
  "agents",
@@ -54,7 +54,9 @@
54
54
  "test": "bun test"
55
55
  },
56
56
  "dependencies": {
57
- "esbuild": "^0.28.2"
57
+ "@modelcontextprotocol/server": "2.0.0",
58
+ "esbuild": "^0.28.2",
59
+ "zod": "^4.4.3"
58
60
  },
59
61
  "devDependencies": {
60
62
  "@ai-sdk/tui": "1.0.78",
@@ -1,2 +0,0 @@
1
- var d=Object.defineProperty;var e=(a)=>a;function f(a,b){this[a]=e.bind(null,b)}var g=(a,b)=>{for(var c in b)d(a,c,{get:b[c],enumerable:!0,configurable:!0,set:f.bind(b,c)})};
2
- export{g as V};