broods 0.14.0 → 0.17.3
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/README.md +8 -1
- package/dist/account.d.ts +78 -57
- package/dist/account.js +1 -1
- package/dist/chunk-3cvxks4m.js +2 -0
- package/dist/{chunk-9v4kpqb1.js → chunk-qerk8v3m.js} +5 -5
- package/dist/cli/index.js +95 -87
- package/dist/index.d.ts +239 -132
- package/dist/index.js +1 -1
- package/package.json +11 -11
- package/dist/chunk-1wahfz6h.js +0 -1
- package/dist/chunk-4gvdgqrg.js +0 -2
- package/dist/chunk-pfhy5049.js +0 -2
- package/dist/chunk-vmgd45s5.js +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -94,45 +94,6 @@ declare const MODEL_PROVIDERS: {
|
|
|
94
94
|
};
|
|
95
95
|
type AccountModelProviderName = keyof typeof MODEL_PROVIDERS;
|
|
96
96
|
|
|
97
|
-
/**
|
|
98
|
-
* Agent policy contracts and validation.
|
|
99
|
-
* Runtime decisions are made by OPA using the same document/input shape.
|
|
100
|
-
*/
|
|
101
|
-
declare const AGENT_POLICY_ACTIONS: readonly ["agent.invoke", "tool.call", "workspace.read", "workspace.write", "workspace.exec", "subagent.run", "skill.load"];
|
|
102
|
-
type AgentPolicyAction = (typeof AGENT_POLICY_ACTIONS)[number];
|
|
103
|
-
type AgentPolicyEffect = "allow" | "deny";
|
|
104
|
-
type AgentPolicyMode = "enforce" | "audit";
|
|
105
|
-
type AgentPolicyConditionOperator = "equals" | "notEquals" | "in" | "notIn" | "prefix" | "contains";
|
|
106
|
-
interface AgentPolicyCondition {
|
|
107
|
-
attribute: string;
|
|
108
|
-
operator: AgentPolicyConditionOperator;
|
|
109
|
-
value: string | number | boolean | string[] | number[] | boolean[];
|
|
110
|
-
}
|
|
111
|
-
interface AgentPolicyResourceSelector {
|
|
112
|
-
toolNames?: string[];
|
|
113
|
-
toolIds?: string[];
|
|
114
|
-
workspaceIds?: string[];
|
|
115
|
-
workspaceNames?: string[];
|
|
116
|
-
filePaths?: string[];
|
|
117
|
-
subagentIds?: string[];
|
|
118
|
-
skillPaths?: string[];
|
|
119
|
-
}
|
|
120
|
-
interface AgentPolicyRule {
|
|
121
|
-
id: string;
|
|
122
|
-
effect: AgentPolicyEffect;
|
|
123
|
-
actions: AgentPolicyAction[];
|
|
124
|
-
resources?: AgentPolicyResourceSelector;
|
|
125
|
-
conditions?: AgentPolicyCondition[];
|
|
126
|
-
}
|
|
127
|
-
interface AgentPolicyDocument {
|
|
128
|
-
version: 1;
|
|
129
|
-
rules: AgentPolicyRule[];
|
|
130
|
-
}
|
|
131
|
-
interface AgentPolicyConfig {
|
|
132
|
-
policyIds?: string[];
|
|
133
|
-
mode?: AgentPolicyMode;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
97
|
/**
|
|
137
98
|
* Agent configuration: types for the per-agent settings object, input
|
|
138
99
|
* normalization, encryption helpers, patch-merge, and redaction.
|
|
@@ -162,7 +123,8 @@ interface AgentConfig {
|
|
|
162
123
|
skills?: AgentSkillsConfig;
|
|
163
124
|
subagent?: AgentSubagentConfig;
|
|
164
125
|
scheduler?: AgentSchedulerConfig;
|
|
165
|
-
|
|
126
|
+
/** Policies that gate this agent. Each one carries its own enforcement mode. */
|
|
127
|
+
policies?: string[];
|
|
166
128
|
publicAccess?: boolean;
|
|
167
129
|
[key: string]: unknown;
|
|
168
130
|
}
|
|
@@ -338,7 +300,8 @@ interface AgentTelegramChannelConfig {
|
|
|
338
300
|
apiUrl?: string;
|
|
339
301
|
botToken?: string;
|
|
340
302
|
webhookSecret?: string;
|
|
341
|
-
|
|
303
|
+
allowedChannelIds?: string[];
|
|
304
|
+
allowedUserIds?: string[];
|
|
342
305
|
reactionEmoji?: string;
|
|
343
306
|
trace?: "enabled" | "disabled";
|
|
344
307
|
workspaceScope?: AgentChannelWorkspaceScope;
|
|
@@ -350,7 +313,8 @@ interface AgentGitHubChannelConfig {
|
|
|
350
313
|
webhookSecret?: string;
|
|
351
314
|
appId?: string;
|
|
352
315
|
privateKey?: string;
|
|
353
|
-
|
|
316
|
+
allowedChannelIds?: string[];
|
|
317
|
+
allowedUserIds?: string[];
|
|
354
318
|
/** Bot username for @-mention detection (e.g. "my-bot" or "my-bot[bot]"). */
|
|
355
319
|
userName?: string;
|
|
356
320
|
/** Bot's numeric GitHub user ID for self-message detection. */
|
|
@@ -369,6 +333,7 @@ interface AgentSlackChannelConfig {
|
|
|
369
333
|
botToken?: string;
|
|
370
334
|
signingSecret?: string;
|
|
371
335
|
allowedChannelIds?: string[];
|
|
336
|
+
allowedUserIds?: string[];
|
|
372
337
|
reactionEmoji?: string;
|
|
373
338
|
trace?: "enabled" | "disabled";
|
|
374
339
|
workspaceScope?: AgentChannelWorkspaceScope;
|
|
@@ -379,7 +344,8 @@ interface AgentDiscordChannelConfig {
|
|
|
379
344
|
apiUrl?: string;
|
|
380
345
|
botToken?: string;
|
|
381
346
|
publicKey?: string;
|
|
382
|
-
|
|
347
|
+
allowedChannelIds?: string[];
|
|
348
|
+
allowedUserIds?: string[];
|
|
383
349
|
/** Bot's Discord user id. Set it to answer only when the agent is mentioned. */
|
|
384
350
|
botUserId?: string;
|
|
385
351
|
/** Role ids that count as mentioning the agent, e.g. an on-call role. */
|
|
@@ -389,6 +355,8 @@ interface AgentDiscordChannelConfig {
|
|
|
389
355
|
[key: string]: unknown;
|
|
390
356
|
}
|
|
391
357
|
interface AgentPancakeChannelConfig {
|
|
358
|
+
allowedChannelIds?: string[];
|
|
359
|
+
allowedUserIds?: string[];
|
|
392
360
|
id?: string;
|
|
393
361
|
pageId?: string;
|
|
394
362
|
pageAccessToken?: string;
|
|
@@ -399,11 +367,11 @@ interface AgentPancakeChannelConfig {
|
|
|
399
367
|
[key: string]: unknown;
|
|
400
368
|
}
|
|
401
369
|
interface AgentZaloChannelConfig {
|
|
370
|
+
allowedChannelIds?: string[];
|
|
371
|
+
allowedUserIds?: string[];
|
|
402
372
|
id?: string;
|
|
403
373
|
botToken?: string;
|
|
404
374
|
webhookSecret?: string;
|
|
405
|
-
allowedUserIds?: string[];
|
|
406
|
-
allowedGroupIds?: string[];
|
|
407
375
|
trace?: "enabled" | "disabled";
|
|
408
376
|
workspaceScope?: AgentChannelWorkspaceScope;
|
|
409
377
|
[key: string]: unknown;
|
|
@@ -544,6 +512,60 @@ interface WorkspaceConfig {
|
|
|
544
512
|
harness?: WorkspaceHarnessConfig;
|
|
545
513
|
}
|
|
546
514
|
|
|
515
|
+
/**
|
|
516
|
+
* Agent policy contracts and validation.
|
|
517
|
+
* Runtime decisions are made by OPA using the same document/input shape.
|
|
518
|
+
*/
|
|
519
|
+
declare const POLICY_ACTIONS: readonly ["agent.invoke", "tool.call", "workspace.read", "workspace.write", "workspace.exec", "subagent.run", "skill.load"];
|
|
520
|
+
type PolicyAction = (typeof POLICY_ACTIONS)[number];
|
|
521
|
+
type PolicyEffect = "allow" | "deny";
|
|
522
|
+
type PolicyMode = "enforce" | "audit";
|
|
523
|
+
type PolicyConditionOperator = "equals" | "notEquals" | "in" | "notIn" | "prefix" | "contains";
|
|
524
|
+
interface PolicyCondition {
|
|
525
|
+
attribute: string;
|
|
526
|
+
operator: PolicyConditionOperator;
|
|
527
|
+
value: string | number | boolean | string[] | number[] | boolean[];
|
|
528
|
+
}
|
|
529
|
+
interface PolicyResourceSelector {
|
|
530
|
+
toolNames?: string[];
|
|
531
|
+
toolIds?: string[];
|
|
532
|
+
workspaceIds?: string[];
|
|
533
|
+
workspaceNames?: string[];
|
|
534
|
+
filePaths?: string[];
|
|
535
|
+
subagentIds?: string[];
|
|
536
|
+
skillPaths?: string[];
|
|
537
|
+
}
|
|
538
|
+
interface PolicyRule {
|
|
539
|
+
id: string;
|
|
540
|
+
effect: PolicyEffect;
|
|
541
|
+
actions: PolicyAction[];
|
|
542
|
+
resources?: PolicyResourceSelector;
|
|
543
|
+
conditions?: PolicyCondition[];
|
|
544
|
+
}
|
|
545
|
+
interface PolicyDocument {
|
|
546
|
+
version: 1;
|
|
547
|
+
/**
|
|
548
|
+
* How hard this policy bites. `audit` records what it would have done and
|
|
549
|
+
* blocks nothing; `enforce` lets its deny rules refuse, and switches the
|
|
550
|
+
* places it is attached to over to default-deny. Omitted reads as `audit`,
|
|
551
|
+
* so a freshly written policy can never break a running agent.
|
|
552
|
+
*/
|
|
553
|
+
mode?: PolicyMode;
|
|
554
|
+
rules: PolicyRule[];
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
/**
|
|
558
|
+
* Channel records: an account-scoped row per real place a team talks — one Slack
|
|
559
|
+
* channel, one Discord channel, one repository. It binds that place to an agent
|
|
560
|
+
* and adds instructions, workspaces, policies and roles scoped to it.
|
|
561
|
+
* Distinct from `config.channels`, which holds one adapter's credentials.
|
|
562
|
+
* A record narrows and adds; it never grants capability the agent lacks.
|
|
563
|
+
*/
|
|
564
|
+
|
|
565
|
+
/** Where a reply lands: its own thread, or wherever the message came from. */
|
|
566
|
+
declare const CHANNEL_REPLY_TARGETS: readonly ["thread", "source"];
|
|
567
|
+
type ChannelReplyIn = (typeof CHANNEL_REPLY_TARGETS)[number];
|
|
568
|
+
|
|
547
569
|
/**
|
|
548
570
|
* Telegram channel adapter implementated as a ChannelAdapter.
|
|
549
571
|
* Implements Telegram auth, message normalization, and reply actions through the Chat SDK Telegram adapter.
|
|
@@ -925,11 +947,11 @@ type WebSocketClientMessage = WebSocketClientExecuteMessage | WebSocketClientCon
|
|
|
925
947
|
* the gateway, the SDK/CLI, and the dashboard. Pure types + tiny pure helpers,
|
|
926
948
|
* zero runtime deps. Kept separate from the agent-test websocket-contracts.
|
|
927
949
|
*/
|
|
928
|
-
type LogLevel = "INFO" | "WARN" | "ERROR";
|
|
950
|
+
type LogLevel = "DEBUG" | "INFO" | "WARN" | "ERROR";
|
|
929
951
|
declare const MAX_OBSERVABILITY_BACKFILL = 500;
|
|
930
952
|
type ObservabilityLogEntry = {
|
|
931
953
|
ts: number;
|
|
932
|
-
level: LogLevel
|
|
954
|
+
level: LogLevel;
|
|
933
955
|
eventType: string;
|
|
934
956
|
message: string;
|
|
935
957
|
traceId?: string;
|
|
@@ -990,6 +1012,8 @@ type ObservabilityErrorMessage = {
|
|
|
990
1012
|
};
|
|
991
1013
|
type ObservabilityServerMessage = ObservabilityReadyMessage | ObservabilityBackfillMessage | ObservabilityLogMessage | ObservabilitySpanMessage | ObservabilityErrorMessage;
|
|
992
1014
|
declare function isObservabilityClientMessage(v: unknown): v is ObservabilityClientMessage;
|
|
1015
|
+
/** Narrow an unknown wire value to a LogLevel. */
|
|
1016
|
+
declare function isLogLevel(value: unknown): value is LogLevel;
|
|
993
1017
|
/** Whether a span is a top-level run, each of which owns its own trace. */
|
|
994
1018
|
declare function isRootSpanKind(kind: ObservabilitySpanRow["kind"]): boolean;
|
|
995
1019
|
|
|
@@ -1257,7 +1281,7 @@ interface AccountPolicy {
|
|
|
1257
1281
|
policyId: string;
|
|
1258
1282
|
name: string;
|
|
1259
1283
|
description?: string;
|
|
1260
|
-
document:
|
|
1284
|
+
document: PolicyDocument;
|
|
1261
1285
|
status: string;
|
|
1262
1286
|
createdAt: string;
|
|
1263
1287
|
updatedAt: string;
|
|
@@ -1292,9 +1316,8 @@ interface ChannelRecordConfig {
|
|
|
1292
1316
|
name: string;
|
|
1293
1317
|
workspaceId: string;
|
|
1294
1318
|
}>;
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
policyMode?: "enforce" | "audit";
|
|
1319
|
+
/** Added to whatever the agent already carries. Each policy holds its own mode. */
|
|
1320
|
+
policies?: string[];
|
|
1298
1321
|
/**
|
|
1299
1322
|
* Tool names withheld in this channel, applied after the tool set is built —
|
|
1300
1323
|
* so it also covers sandbox tools (`bash`, `read`, …) that `config.tools`
|
|
@@ -1302,18 +1325,18 @@ interface ChannelRecordConfig {
|
|
|
1302
1325
|
*/
|
|
1303
1326
|
denyTools?: string[];
|
|
1304
1327
|
/**
|
|
1305
|
-
* Where the reply lands. `
|
|
1306
|
-
* when the message already did. Slack only — no other provider
|
|
1307
|
-
* runtime a second place to reply.
|
|
1328
|
+
* Where the reply lands. `source` answers wherever the message came from, and
|
|
1329
|
+
* threads only when the message already did. Slack only — no other provider
|
|
1330
|
+
* gives the runtime a second place to reply.
|
|
1308
1331
|
*/
|
|
1309
|
-
|
|
1332
|
+
replyIn?: ChannelReplyIn;
|
|
1310
1333
|
workspaceScope?: AgentChannelWorkspaceScope;
|
|
1311
1334
|
/** Images the agent may stand a sandbox up from for a thread here. */
|
|
1312
1335
|
sandboxImages?: string[];
|
|
1313
|
-
/** Named groups of people, readable from policy conditions as `
|
|
1336
|
+
/** Named groups of people, readable from policy conditions as `userRoles`. */
|
|
1314
1337
|
tagRoles?: Array<{
|
|
1315
1338
|
roleId: string;
|
|
1316
|
-
|
|
1339
|
+
userIds: string[];
|
|
1317
1340
|
}>;
|
|
1318
1341
|
}
|
|
1319
1342
|
/** The stage a tool belongs to. Tools with the same name in two stages are two tools. */
|
|
@@ -1522,14 +1545,14 @@ declare class BroodsAccountClient {
|
|
|
1522
1545
|
createPolicy(input: {
|
|
1523
1546
|
name: string;
|
|
1524
1547
|
description?: string;
|
|
1525
|
-
document:
|
|
1548
|
+
document: PolicyDocument;
|
|
1526
1549
|
}): Promise<AccountPolicy>;
|
|
1527
1550
|
getPolicy(policyId: string): Promise<AccountPolicy | null>;
|
|
1528
1551
|
/** PATCH a policy. `description: null` clears it. Returns null when the policy is gone. */
|
|
1529
1552
|
updatePolicy(policyId: string, patch: {
|
|
1530
1553
|
name?: string;
|
|
1531
1554
|
description?: string | null;
|
|
1532
|
-
document?:
|
|
1555
|
+
document?: PolicyDocument;
|
|
1533
1556
|
status?: string;
|
|
1534
1557
|
}): Promise<AccountPolicy | null>;
|
|
1535
1558
|
deletePolicy(policyId: string): Promise<boolean>;
|
|
@@ -1665,7 +1688,7 @@ declare function toWebSocketBaseUrl(url: string): string;
|
|
|
1665
1688
|
|
|
1666
1689
|
declare const RESOURCE_MARKER: unique symbol;
|
|
1667
1690
|
declare const CONFIG_MARKER: unique symbol;
|
|
1668
|
-
declare const
|
|
1691
|
+
declare const CONNECTION_MARKER: unique symbol;
|
|
1669
1692
|
interface EnvRef<Name extends string = string> {
|
|
1670
1693
|
readonly __beeblastEnv: true;
|
|
1671
1694
|
readonly name: Name;
|
|
@@ -1772,46 +1795,148 @@ interface ToolDefinitionConfig<Input = Record<string, unknown>> {
|
|
|
1772
1795
|
*/
|
|
1773
1796
|
defaultConfig?: Record<string, unknown>;
|
|
1774
1797
|
}
|
|
1775
|
-
type PolicyDefinitionConfig = Omit<
|
|
1776
|
-
version?:
|
|
1798
|
+
type PolicyDefinitionConfig = Omit<PolicyDocument, "version"> & {
|
|
1799
|
+
version?: PolicyDocument["version"];
|
|
1777
1800
|
};
|
|
1778
1801
|
type ChannelType = "telegram" | "github" | "slack" | "discord" | "pancake" | "zalo";
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1802
|
+
/**
|
|
1803
|
+
* A connection is one app install: the credentials an agent needs before a
|
|
1804
|
+
* provider can reach it at all. Channels point at a connection; a connection
|
|
1805
|
+
* never points back, which is what keeps the reference graph acyclic.
|
|
1806
|
+
*/
|
|
1807
|
+
interface ConnectionDefinition<Type extends ChannelType, Config> {
|
|
1808
|
+
readonly [CONNECTION_MARKER]: true;
|
|
1809
|
+
readonly kind: "connection";
|
|
1782
1810
|
readonly type: Type;
|
|
1783
|
-
readonly
|
|
1784
|
-
|
|
1811
|
+
readonly partition?: ChannelPartition;
|
|
1812
|
+
/** `partition` is lifted out of the authored input, so it is not in here. */
|
|
1813
|
+
readonly config: Omit<Config, "partition">;
|
|
1785
1814
|
}
|
|
1815
|
+
/**
|
|
1816
|
+
* How an attached partitioned workspace splits its folders for runs arriving
|
|
1817
|
+
* through this door. `shared` mounts the workspace root; `conversation` mounts
|
|
1818
|
+
* a private child folder per thread, issue or chat under `alias`.
|
|
1819
|
+
*/
|
|
1820
|
+
type ChannelPartition = {
|
|
1821
|
+
by: "shared";
|
|
1822
|
+
alias?: never;
|
|
1823
|
+
} | {
|
|
1824
|
+
by: "conversation";
|
|
1825
|
+
alias: string;
|
|
1826
|
+
};
|
|
1827
|
+
/**
|
|
1828
|
+
* An agent bound to a channel. Every bound agent runs when a message arrives;
|
|
1829
|
+
* `reply: false` runs it with a silenced channel, so it can work without
|
|
1830
|
+
* speaking in the room.
|
|
1831
|
+
*/
|
|
1832
|
+
type ChannelAgentInput = AgentResource | {
|
|
1833
|
+
agent: AgentResource;
|
|
1834
|
+
reply?: boolean;
|
|
1835
|
+
};
|
|
1786
1836
|
type RequiredChannelKeys<Config, Keys extends keyof Config> = Required<Pick<Config, Keys>> & Omit<Config, Keys>;
|
|
1787
1837
|
type ChannelSecret = string | EnvRef | undefined;
|
|
1788
|
-
type
|
|
1838
|
+
type ConnectionIdentityInput = {
|
|
1839
|
+
/** Include the dashboard trace link in channel replies. Off by default. */
|
|
1789
1840
|
trace?: "enabled" | "disabled";
|
|
1790
|
-
|
|
1841
|
+
partition?: ChannelPartition;
|
|
1842
|
+
/**
|
|
1843
|
+
* Rooms this connection answers in, on top of every channel declared against
|
|
1844
|
+
* it. Use `["*"]` to answer everywhere instead, which is the only reason to
|
|
1845
|
+
* name rooms here at all: a room with rules belongs in a channel resource.
|
|
1846
|
+
*/
|
|
1847
|
+
allowedChannelIds?: readonly string[];
|
|
1848
|
+
/** Provider user ids allowed to trigger the agent. `["*"]` or omitted is everyone. */
|
|
1849
|
+
allowedUserIds?: readonly string[];
|
|
1791
1850
|
};
|
|
1792
|
-
type
|
|
1793
|
-
type
|
|
1794
|
-
type
|
|
1795
|
-
type
|
|
1796
|
-
interface
|
|
1851
|
+
type TelegramConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentTelegramChannelConfig, "apiUrl" | "botToken" | "webhookSecret" | "reactionEmoji">, "botToken" | "webhookSecret">> & ConnectionIdentityInput;
|
|
1852
|
+
type GitHubConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentGitHubChannelConfig, "apiUrl" | "webhookSecret" | "appId" | "privateKey" | "userName" | "botUserId" | "triggerOnIssueOpen" | "triggerOnPROpen">, "webhookSecret" | "appId" | "privateKey">> & ConnectionIdentityInput;
|
|
1853
|
+
type SlackConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentSlackChannelConfig, "apiUrl" | "botToken" | "signingSecret" | "reactionEmoji">, "botToken" | "signingSecret">> & ConnectionIdentityInput;
|
|
1854
|
+
type DiscordConnectionInput = EnvRefString<RequiredChannelKeys<Pick<AgentDiscordChannelConfig, "apiUrl" | "botToken" | "publicKey" | "botUserId" | "mentionRoleIds">, "botToken" | "publicKey">> & ConnectionIdentityInput;
|
|
1855
|
+
interface PancakeConnectionInput extends ConnectionIdentityInput {
|
|
1797
1856
|
pageId: ChannelSecret;
|
|
1798
1857
|
pageAccessToken: ChannelSecret;
|
|
1799
1858
|
webhookSecret: ChannelSecret;
|
|
1800
1859
|
senderId?: string | EnvRef;
|
|
1801
1860
|
}
|
|
1802
|
-
interface
|
|
1861
|
+
interface ZaloConnectionInput extends ConnectionIdentityInput {
|
|
1803
1862
|
botToken: ChannelSecret;
|
|
1804
1863
|
webhookSecret: ChannelSecret;
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
type
|
|
1809
|
-
type
|
|
1810
|
-
type
|
|
1811
|
-
type
|
|
1812
|
-
type
|
|
1813
|
-
|
|
1814
|
-
|
|
1864
|
+
}
|
|
1865
|
+
type TelegramConnectionDefinition = ConnectionDefinition<"telegram", TelegramConnectionInput>;
|
|
1866
|
+
type GitHubConnectionDefinition = ConnectionDefinition<"github", GitHubConnectionInput>;
|
|
1867
|
+
type SlackConnectionDefinition = ConnectionDefinition<"slack", SlackConnectionInput>;
|
|
1868
|
+
type DiscordConnectionDefinition = ConnectionDefinition<"discord", DiscordConnectionInput>;
|
|
1869
|
+
type PancakeConnectionDefinition = ConnectionDefinition<"pancake", PancakeConnectionInput>;
|
|
1870
|
+
type ZaloConnectionDefinition = ConnectionDefinition<"zalo", ZaloConnectionInput>;
|
|
1871
|
+
type AnyConnectionDefinition = TelegramConnectionDefinition | GitHubConnectionDefinition | SlackConnectionDefinition | DiscordConnectionDefinition | PancakeConnectionDefinition | ZaloConnectionDefinition;
|
|
1872
|
+
/**
|
|
1873
|
+
* One real place a team talks: a Slack channel, a Discord channel, a repo. It
|
|
1874
|
+
* narrows and adds — instructions append, policies union, tools and workspaces
|
|
1875
|
+
* only narrow — and never grants what a bound agent lacks. It names the
|
|
1876
|
+
* connection it belongs to, so `platform` is never written by hand.
|
|
1877
|
+
*/
|
|
1878
|
+
type ChannelDefinitionConfig = {
|
|
1879
|
+
connection: AnyConnectionDefinition;
|
|
1880
|
+
/** Provider id of the place, from the per-platform field on the input. */
|
|
1881
|
+
externalId: string;
|
|
1882
|
+
/** Team, guild or repo owner the place sits in, when the provider has one. */
|
|
1883
|
+
workspaceRef?: string;
|
|
1884
|
+
/** Every one of these runs. Omit and the connection's own agent answers. */
|
|
1885
|
+
agents?: readonly ChannelAgentInput[];
|
|
1886
|
+
/** Appended after each agent's own system prompt, never replacing it. */
|
|
1887
|
+
instructions?: string;
|
|
1888
|
+
/** Selects from what the agent already attaches; anything else is dropped. */
|
|
1889
|
+
workspaces?: readonly AgentWorkspaceInput[];
|
|
1890
|
+
/** Added to whatever the agent already carries. Each policy holds its own mode. */
|
|
1891
|
+
policies?: readonly (PolicyResource | string)[];
|
|
1892
|
+
denyTools?: readonly string[];
|
|
1893
|
+
/** Where the reply lands. Slack only. */
|
|
1894
|
+
replyIn?: ChannelReplyIn;
|
|
1895
|
+
partition?: ChannelPartition;
|
|
1896
|
+
sandboxImages?: readonly string[];
|
|
1897
|
+
tagRoles?: readonly {
|
|
1898
|
+
roleId: string;
|
|
1899
|
+
userIds: readonly string[];
|
|
1900
|
+
}[];
|
|
1901
|
+
};
|
|
1902
|
+
/** Rules shared by every channel, whatever the provider calls its rooms. */
|
|
1903
|
+
type ChannelRulesInput = Omit<ChannelDefinitionConfig, "connection" | "externalId" | "workspaceRef" | "replyIn">;
|
|
1904
|
+
type SlackChannelInput = ChannelRulesInput & {
|
|
1905
|
+
connection: SlackConnectionDefinition;
|
|
1906
|
+
/** Slack channel id, e.g. "C0123ABCD". */
|
|
1907
|
+
channelId: string;
|
|
1908
|
+
/** Slack team id the channel sits in. */
|
|
1909
|
+
teamId?: string;
|
|
1910
|
+
/** Where the reply lands. Slack is the only provider with a choice. */
|
|
1911
|
+
replyIn?: ChannelReplyIn;
|
|
1912
|
+
};
|
|
1913
|
+
type DiscordChannelInput = ChannelRulesInput & {
|
|
1914
|
+
connection: DiscordConnectionDefinition;
|
|
1915
|
+
/** Discord channel id (a snowflake). */
|
|
1916
|
+
channelId: string;
|
|
1917
|
+
/** Guild the channel sits in. */
|
|
1918
|
+
guildId?: string;
|
|
1919
|
+
};
|
|
1920
|
+
type GitHubChannelInput = ChannelRulesInput & {
|
|
1921
|
+
connection: GitHubConnectionDefinition;
|
|
1922
|
+
/** Repository full name, e.g. "beeblast/api". */
|
|
1923
|
+
repo: string;
|
|
1924
|
+
};
|
|
1925
|
+
type TelegramChannelInput = ChannelRulesInput & {
|
|
1926
|
+
connection: TelegramConnectionDefinition;
|
|
1927
|
+
/** Telegram chat id, e.g. "-1001234567". */
|
|
1928
|
+
chatId: string;
|
|
1929
|
+
};
|
|
1930
|
+
type ZaloChannelInput = ChannelRulesInput & {
|
|
1931
|
+
connection: ZaloConnectionDefinition;
|
|
1932
|
+
/** Zalo user or group chat id. */
|
|
1933
|
+
chatId: string;
|
|
1934
|
+
};
|
|
1935
|
+
type PancakeChannelInput = ChannelRulesInput & {
|
|
1936
|
+
connection: PancakeConnectionDefinition;
|
|
1937
|
+
/** Pancake conversation id. */
|
|
1938
|
+
conversationId: string;
|
|
1939
|
+
};
|
|
1815
1940
|
/**
|
|
1816
1941
|
* Per-agent workspace mount with an optional sandbox override. A bare
|
|
1817
1942
|
* `defineWorkspace(...)` inherits the agent-level sandbox; the object form lets
|
|
@@ -1959,9 +2084,6 @@ interface AgentHooks {
|
|
|
1959
2084
|
text?: string;
|
|
1960
2085
|
}>;
|
|
1961
2086
|
}
|
|
1962
|
-
type AgentPolicyDefinitionConfig = Omit<AgentPolicyConfig, "policyIds"> & {
|
|
1963
|
-
policies?: readonly (PolicyResource | string)[];
|
|
1964
|
-
};
|
|
1965
2087
|
/**
|
|
1966
2088
|
* Code-first agent config surface. Built from an explicit `Pick` of `AgentConfig`
|
|
1967
2089
|
* (not `Omit`) so the SDK input type does NOT inherit `AgentConfig`'s
|
|
@@ -1993,12 +2115,13 @@ type AgentDefinitionConfig = EnvRefString<Pick<AgentConfig, "agent" | "model" |
|
|
|
1993
2115
|
hooks?: AgentHooks & {
|
|
1994
2116
|
webhooks?: readonly EnvRefString<AgentWebhookHookConfig>[];
|
|
1995
2117
|
};
|
|
1996
|
-
|
|
2118
|
+
connections?: readonly AnyConnectionDefinition[];
|
|
1997
2119
|
sandbox?: SandboxResource | string;
|
|
1998
2120
|
workspaces?: readonly AgentWorkspaceInput[];
|
|
1999
2121
|
subagent?: AgentSubagentDefinitionConfig;
|
|
2000
2122
|
skills?: AgentSkillsDefinitionConfig;
|
|
2001
|
-
|
|
2123
|
+
/** Policies that gate this agent. Each one carries its own enforcement mode. */
|
|
2124
|
+
policies?: readonly (PolicyResource | string)[];
|
|
2002
2125
|
/**
|
|
2003
2126
|
* Opt the agent into the public runtime endpoint (SSE/WebSocket via the
|
|
2004
2127
|
* stage runtime key). Off by default — secured: when unset the public
|
|
@@ -2010,45 +2133,24 @@ type AgentDefinitionConfig = EnvRefString<Pick<AgentConfig, "agent" | "model" |
|
|
|
2010
2133
|
type CronDefinitionConfig = Omit<CreateCronInput, "agentId" | "name"> & {
|
|
2011
2134
|
agent: AgentResource | string;
|
|
2012
2135
|
};
|
|
2136
|
+
type AgentResource<Name extends string = string> = ResourceDefinition<"agent", Name, AgentDefinitionConfig>;
|
|
2013
2137
|
/**
|
|
2014
|
-
*
|
|
2015
|
-
*
|
|
2016
|
-
*
|
|
2017
|
-
* in #product-eng. A record narrows and adds, never granting what the agent lacks.
|
|
2138
|
+
* Code-first workspace config. Says `partitioned` where storage says
|
|
2139
|
+
* `isolation`: the flag permits a split, it does not perform one — a channel's
|
|
2140
|
+
* `partition` decides which folder a run actually mounts.
|
|
2018
2141
|
*/
|
|
2019
|
-
type
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
externalId: string;
|
|
2023
|
-
/** Team or guild the place sits in, when the provider has one. */
|
|
2024
|
-
workspaceRef?: string;
|
|
2025
|
-
/** Who answers here. The first is the default when a turn matches no other. */
|
|
2026
|
-
agents: readonly (AgentResource | string)[];
|
|
2027
|
-
/** Appended after the bound agent's own system prompt. */
|
|
2028
|
-
instructions?: string;
|
|
2029
|
-
/** Selects from what the agent already attaches; anything else is dropped. */
|
|
2030
|
-
workspaces?: readonly AgentWorkspaceInput[];
|
|
2031
|
-
policies?: readonly (PolicyResource | string)[];
|
|
2032
|
-
policyMode?: AgentPolicyConfig["mode"];
|
|
2033
|
-
denyTools?: readonly string[];
|
|
2034
|
-
/** Where the reply lands. Slack only — see the channel-records docs. */
|
|
2035
|
-
threadPolicy?: "always-thread" | "inline";
|
|
2036
|
-
workspaceScope?: AgentChannelWorkspaceScope;
|
|
2037
|
-
sandboxImages?: readonly string[];
|
|
2038
|
-
tagRoles?: readonly {
|
|
2039
|
-
roleId: string;
|
|
2040
|
-
actorIds: readonly string[];
|
|
2041
|
-
}[];
|
|
2142
|
+
type WorkspaceDefinitionConfig = Omit<WorkspaceConfig, "isolation"> & {
|
|
2143
|
+
/** Allow this workspace to be split into per-conversation folders. */
|
|
2144
|
+
partitioned?: boolean;
|
|
2042
2145
|
};
|
|
2043
|
-
type
|
|
2044
|
-
type WorkspaceResource<Name extends string = string> = ResourceDefinition<"workspace", Name, WorkspaceConfig>;
|
|
2146
|
+
type WorkspaceResource<Name extends string = string> = ResourceDefinition<"workspace", Name, WorkspaceDefinitionConfig>;
|
|
2045
2147
|
type SandboxResource<Name extends string = string> = ResourceDefinition<"sandbox", Name, SandboxDefinitionConfig>;
|
|
2046
2148
|
type SkillResource<Name extends string = string> = ResourceDefinition<"skill", Name, SkillDefinitionConfig>;
|
|
2047
2149
|
type ToolResource<Name extends string = string> = ResourceDefinition<"tool", Name, ToolDefinitionConfig>;
|
|
2048
2150
|
type PolicyResource<Name extends string = string> = ResourceDefinition<"policy", Name, PolicyDefinitionConfig>;
|
|
2049
2151
|
type CronResource<Name extends string = string> = ResourceDefinition<"cron", Name, CronDefinitionConfig>;
|
|
2050
|
-
type
|
|
2051
|
-
type AnyResource = AgentResource | WorkspaceResource | SandboxResource | CronResource | SkillResource | ToolResource | PolicyResource |
|
|
2152
|
+
type ChannelResource<Name extends string = string> = ResourceDefinition<"channelRecord", Name, ChannelDefinitionConfig>;
|
|
2153
|
+
type AnyResource = AgentResource | WorkspaceResource | SandboxResource | CronResource | SkillResource | ToolResource | PolicyResource | ChannelResource;
|
|
2052
2154
|
/**
|
|
2053
2155
|
* References an account/environment variable resolved on the SERVER at runtime —
|
|
2054
2156
|
* set it with `broods env set <NAME>` or in the dashboard (the Convex-style
|
|
@@ -2062,27 +2164,32 @@ type AnyResource = AgentResource | WorkspaceResource | SandboxResource | CronRes
|
|
|
2062
2164
|
* bake the literal local value into the deployed config instead of deferring it.
|
|
2063
2165
|
*/
|
|
2064
2166
|
declare const env: EnvAccessor;
|
|
2065
|
-
declare function
|
|
2066
|
-
declare function
|
|
2067
|
-
declare function
|
|
2068
|
-
declare function
|
|
2069
|
-
declare function
|
|
2070
|
-
declare function
|
|
2167
|
+
declare function defineDiscordConnection(config: DiscordConnectionInput): DiscordConnectionDefinition;
|
|
2168
|
+
declare function defineGitHubConnection(config: GitHubConnectionInput): GitHubConnectionDefinition;
|
|
2169
|
+
declare function definePancakeConnection(config: PancakeConnectionInput): PancakeConnectionDefinition;
|
|
2170
|
+
declare function defineSlackConnection(config: SlackConnectionInput): SlackConnectionDefinition;
|
|
2171
|
+
declare function defineTelegramConnection(config: TelegramConnectionInput): TelegramConnectionDefinition;
|
|
2172
|
+
declare function defineZaloConnection(config: ZaloConnectionInput): ZaloConnectionDefinition;
|
|
2173
|
+
declare function defineDiscordChannel<const Name extends string>(input: ResourceInput<Name, DiscordChannelInput>): ChannelResource<Name>;
|
|
2174
|
+
declare function defineGitHubChannel<const Name extends string>(input: ResourceInput<Name, GitHubChannelInput>): ChannelResource<Name>;
|
|
2175
|
+
declare function definePancakeChannel<const Name extends string>(input: ResourceInput<Name, PancakeChannelInput>): ChannelResource<Name>;
|
|
2176
|
+
declare function defineSlackChannel<const Name extends string>(input: ResourceInput<Name, SlackChannelInput>): ChannelResource<Name>;
|
|
2177
|
+
declare function defineTelegramChannel<const Name extends string>(input: ResourceInput<Name, TelegramChannelInput>): ChannelResource<Name>;
|
|
2178
|
+
declare function defineZaloChannel<const Name extends string>(input: ResourceInput<Name, ZaloChannelInput>): ChannelResource<Name>;
|
|
2071
2179
|
declare function defineBroods(config: BroodsProjectConfig): BroodsConfigDefinition;
|
|
2072
2180
|
declare function defineAgent<const Name extends string>(input: ResourceInput<Name, AgentDefinitionConfig>): AgentResource<Name>;
|
|
2073
2181
|
declare function defineHarness<const Definition extends HarnessDefinition>(definition: Definition): Definition;
|
|
2074
|
-
declare function defineWorkspace<const Name extends string>(input: ResourceInput<Name,
|
|
2182
|
+
declare function defineWorkspace<const Name extends string>(input: ResourceInput<Name, WorkspaceDefinitionConfig>): WorkspaceResource<Name>;
|
|
2075
2183
|
declare function defineSandbox<const Name extends string>(input: ResourceInput<Name, SandboxDefinitionConfig>): SandboxResource<Name>;
|
|
2076
2184
|
declare function defineSkill<const Name extends string>(input: ResourceInput<Name, SkillDefinitionConfig>): SkillResource<Name>;
|
|
2077
2185
|
declare function defineTool<const Name extends string, Input = Record<string, unknown>>(input: {
|
|
2078
2186
|
name: Name;
|
|
2079
2187
|
} & ToolDefinitionConfig<Input>): ToolResource<Name>;
|
|
2080
2188
|
declare function definePolicy<const Name extends string>(input: ResourceInput<Name, PolicyDefinitionConfig>): PolicyResource<Name>;
|
|
2081
|
-
declare function defineChannelRecord<const Name extends string>(input: ResourceInput<Name, ChannelRecordDefinitionConfig>): ChannelRecordResource<Name>;
|
|
2082
2189
|
declare function defineCron<const Name extends string>(input: ResourceInput<Name, CronDefinitionConfig>): CronResource<Name>;
|
|
2083
2190
|
declare function isResource(value: unknown): value is AnyResource;
|
|
2084
|
-
declare function
|
|
2191
|
+
declare function isConnectionDefinition(value: unknown): value is AnyConnectionDefinition;
|
|
2085
2192
|
declare function isBroodsConfig(value: unknown): value is BroodsConfigDefinition;
|
|
2086
2193
|
|
|
2087
|
-
export { BroodsAccountApiError, BroodsAccountClient, BroodsClient, BroodsWebSocketClient, DEFAULT_CORE_BASE_URL, IngressAcceptedError, MAX_OBSERVABILITY_BACKFILL, BroodsWebSocketClient as WebSocketClient, BroodsWebSocketClient as WebsocketClient, defineAgent, defineBroods,
|
|
2088
|
-
export type { Account, AccountAgent, AccountChannel, AccountEnvVar, AccountPolicy, AccountSandbox, AccountTool, AccountWorkspace, Agent, AgentChannelWorkspaceScope, AgentChannelsConfig, AgentCodeHookConfig, AgentConfig, AgentConfigDoc, AgentDefinitionConfig, AgentDiscordChannelConfig, AgentGitHubChannelConfig, AgentHandle, AgentHookEventName, AgentHooks, AgentHooksConfig, AgentPancakeChannelConfig,
|
|
2194
|
+
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, 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 };
|
|
2195
|
+
export type { Account, AccountAgent, AccountChannel, AccountEnvVar, AccountPolicy, AccountSandbox, AccountTool, AccountWorkspace, Agent, AgentChannelWorkspaceScope, 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, 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, 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, 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, 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, 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 };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as O,b as R,c as L}from"./chunk-ce3yb3yz.js";import{A as _,B as U,C as B,D as H,E as K,F as P,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,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-qerk8v3m.js";import"./chunk-3cvxks4m.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,ee as defineCron,B as defineDiscordChannel,D as defineDiscordConnection,H as defineGitHubChannel,T as defineGitHubConnection,Z as defineHarness,K as definePancakeChannel,q as definePancakeConnection,Q as definePolicy,X as defineSandbox,Y as defineSkill,P as defineSlackChannel,N as defineSlackConnection,j as defineTelegramChannel,_ as defineTelegramConnection,J as defineTool,V as defineWorkspace,G as defineZaloChannel,U 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,k 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.
|
|
3
|
+
"version": "0.17.3",
|
|
4
4
|
"description": "CLI + TypeScript SDK for the broods agent platform.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -54,26 +54,26 @@
|
|
|
54
54
|
"test": "bun test"
|
|
55
55
|
},
|
|
56
56
|
"engines": {
|
|
57
|
-
"node": ">=22"
|
|
57
|
+
"node": ">=22.15"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"esbuild": "^0.28.2"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
|
-
"ai": "^7.0.
|
|
63
|
+
"ai": "^7.0.67"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@ai-sdk/tui": "^1.0.
|
|
66
|
+
"@ai-sdk/tui": "^1.0.68",
|
|
67
67
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
68
|
-
"@chat-adapter/discord": "^4.
|
|
69
|
-
"@chat-adapter/github": "^4.
|
|
70
|
-
"@chat-adapter/slack": "^4.
|
|
71
|
-
"@chat-adapter/telegram": "^4.
|
|
68
|
+
"@chat-adapter/discord": "^4.38.1",
|
|
69
|
+
"@chat-adapter/github": "^4.38.1",
|
|
70
|
+
"@chat-adapter/slack": "^4.38.1",
|
|
71
|
+
"@chat-adapter/telegram": "^4.38.1",
|
|
72
72
|
"@types/bun": "^1.3.14",
|
|
73
|
-
"ai": "^7.0.
|
|
73
|
+
"ai": "^7.0.67",
|
|
74
74
|
"publint": "^0.3.23",
|
|
75
|
-
"rollup": "^4.62.
|
|
76
|
-
"rollup-plugin-dts": "^6.
|
|
75
|
+
"rollup": "^4.62.4",
|
|
76
|
+
"rollup-plugin-dts": "^6.5.1",
|
|
77
77
|
"typescript": "^6.0.3"
|
|
78
78
|
}
|
|
79
79
|
}
|