@michael-joseph-miller/ant-bot 0.1.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/CHANGELOG.md +40 -0
- package/LICENSE +21 -0
- package/README.md +267 -0
- package/dist/browser-OHRD7YI3.js +524 -0
- package/dist/browser-OHRD7YI3.js.map +7 -0
- package/dist/bundled-46DUK5PG.js +133 -0
- package/dist/bundled-46DUK5PG.js.map +7 -0
- package/dist/chunk-7BOHBPB2.js +287 -0
- package/dist/chunk-7BOHBPB2.js.map +7 -0
- package/dist/chunk-AHAON6J7.js +24 -0
- package/dist/chunk-AHAON6J7.js.map +7 -0
- package/dist/chunk-DYIJTUMY.js +321 -0
- package/dist/chunk-DYIJTUMY.js.map +7 -0
- package/dist/chunk-KSQOVWP5.js +310 -0
- package/dist/chunk-KSQOVWP5.js.map +7 -0
- package/dist/chunk-Z2YT2PZN.js +64 -0
- package/dist/chunk-Z2YT2PZN.js.map +7 -0
- package/dist/index.js +1562 -0
- package/dist/index.js.map +7 -0
- package/dist/install-IY2M3OUQ.js +36 -0
- package/dist/install-IY2M3OUQ.js.map +7 -0
- package/dist/plugin-POMHVGD4.js +53 -0
- package/dist/plugin-POMHVGD4.js.map +7 -0
- package/dist/scheduler-Q7OHNGP6.js +274 -0
- package/dist/scheduler-Q7OHNGP6.js.map +7 -0
- package/dist/server.js +3016 -0
- package/dist/server.js.map +7 -0
- package/dist/skills-66WRX64H.js +17 -0
- package/dist/skills-66WRX64H.js.map +7 -0
- package/dist/skills-spec.js +172 -0
- package/dist/skills-spec.js.map +7 -0
- package/dist/tools-P5537ASX.js +148 -0
- package/dist/tools-P5537ASX.js.map +7 -0
- package/package.json +51 -0
- package/skills/README.md +69 -0
- package/skills/SPEC.md +274 -0
- package/skills/bug-repro/SKILL.md +53 -0
- package/skills/deep-research/SKILL.md +451 -0
- package/skills/deep-research/references/V6_1_improvements.md +112 -0
- package/skills/deep-research/references/completeness_review_checklist.md +25 -0
- package/skills/deep-research/references/counter_review_team_guide.md +181 -0
- package/skills/deep-research/references/enterprise_analysis_frameworks.md +135 -0
- package/skills/deep-research/references/enterprise_mode.md +99 -0
- package/skills/deep-research/references/enterprise_quality_checklist.md +160 -0
- package/skills/deep-research/references/enterprise_research_methodology.md +164 -0
- package/skills/deep-research/references/formatting_rules.md +31 -0
- package/skills/deep-research/references/quality_gates.md +77 -0
- package/skills/deep-research/references/report_template_v6.md +82 -0
- package/skills/deep-research/references/research_notes_format.md +147 -0
- package/skills/deep-research/references/research_plan_checklist.md +26 -0
- package/skills/deep-research/references/research_report_template.md +49 -0
- package/skills/deep-research/references/source_accessibility_policy.md +179 -0
- package/skills/deep-research/references/source_quality_rubric.md +28 -0
- package/skills/deep-research/references/subagent_prompt.md +116 -0
- package/skills/inbox-digest/SKILL.md +51 -0
- package/skills/skill-author/SKILL.md +92 -0
- package/skills/weekly-report/SKILL.md +49 -0
- package/web/dist/assets/index-BLQ8rPiN.js +130 -0
- package/web/dist/assets/index-IEIkG_jd.css +2 -0
- package/web/dist/index.html +13 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { createRequire as __antbotCreateRequire } from 'node:module';
|
|
2
|
+
const require = __antbotCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// packages/shared/dist/limits.js
|
|
5
|
+
var LIMITS = {
|
|
6
|
+
MAX_BOTS_AND_GROUPS: 50,
|
|
7
|
+
MIN_GROUP_MEMBERS: 2,
|
|
8
|
+
MAX_GROUP_MEMBERS: 6,
|
|
9
|
+
MAX_ROUTINES_PER_BOT: 50,
|
|
10
|
+
ROUTINE_RUNS_RETAINED: 20,
|
|
11
|
+
MAX_ATTACHMENTS_PER_MESSAGE: 6,
|
|
12
|
+
MAX_ATTACHMENT_BYTES: 25 * 1024 * 1024,
|
|
13
|
+
MAX_VIDEO_ATTACHMENT_BYTES: 200 * 1024 * 1024,
|
|
14
|
+
MAX_BOT_TO_BOT_HOPS: 5,
|
|
15
|
+
DEFAULT_MAX_CONCURRENT_SESSIONS: 2,
|
|
16
|
+
APPROVAL_TIMEOUT_MS: 15 * 60 * 1e3,
|
|
17
|
+
TEACH_RECORDING_MAX_MS: 10 * 60 * 1e3
|
|
18
|
+
};
|
|
19
|
+
var LIMIT_ERROR = {
|
|
20
|
+
TOO_MANY_BOTS: "TOO_MANY_BOTS",
|
|
21
|
+
GROUP_SIZE: "GROUP_SIZE",
|
|
22
|
+
TOO_MANY_ROUTINES: "TOO_MANY_ROUTINES",
|
|
23
|
+
TOO_MANY_ATTACHMENTS: "TOO_MANY_ATTACHMENTS",
|
|
24
|
+
ATTACHMENT_TOO_LARGE: "ATTACHMENT_TOO_LARGE",
|
|
25
|
+
HOP_LIMIT: "HOP_LIMIT"
|
|
26
|
+
};
|
|
27
|
+
var LimitError = class extends Error {
|
|
28
|
+
code;
|
|
29
|
+
constructor(code, message) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.code = code;
|
|
32
|
+
this.name = "LimitError";
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// packages/shared/dist/api.js
|
|
37
|
+
import { z as z2 } from "zod";
|
|
38
|
+
|
|
39
|
+
// packages/shared/dist/entities.js
|
|
40
|
+
import { z } from "zod";
|
|
41
|
+
var BotStateSchema = z.enum([
|
|
42
|
+
"idle",
|
|
43
|
+
"queued",
|
|
44
|
+
"running",
|
|
45
|
+
"waiting_approval",
|
|
46
|
+
"waiting_input",
|
|
47
|
+
"interrupted"
|
|
48
|
+
]);
|
|
49
|
+
var AttentionSchema = z.enum(["none", "unread", "needs_attention"]);
|
|
50
|
+
var ModelTierSchema = z.enum(["sonnet", "opus", "haiku"]);
|
|
51
|
+
var BotSchema = z.object({
|
|
52
|
+
id: z.string(),
|
|
53
|
+
slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
|
|
54
|
+
name: z.string().min(1).max(60),
|
|
55
|
+
title: z.string().max(120).default(""),
|
|
56
|
+
description: z.string().max(8e3).default(""),
|
|
57
|
+
avatarEmoji: z.string().max(8).default("\u{1F916}"),
|
|
58
|
+
modelTier: ModelTierSchema.default("sonnet"),
|
|
59
|
+
pinned: z.boolean().default(false),
|
|
60
|
+
hidden: z.boolean().default(false),
|
|
61
|
+
notifications: z.boolean().default(true),
|
|
62
|
+
sessionId: z.string().nullable().default(null),
|
|
63
|
+
state: BotStateSchema.default("idle"),
|
|
64
|
+
attention: AttentionSchema.default("none"),
|
|
65
|
+
threadId: z.string().nullable().default(null),
|
|
66
|
+
createdAt: z.number(),
|
|
67
|
+
deletedAt: z.number().nullable().default(null)
|
|
68
|
+
});
|
|
69
|
+
var ThreadKindSchema = z.enum(["dm", "group"]);
|
|
70
|
+
var ThreadSchema = z.object({
|
|
71
|
+
id: z.string(),
|
|
72
|
+
kind: ThreadKindSchema,
|
|
73
|
+
title: z.string().default(""),
|
|
74
|
+
memberBotIds: z.array(z.string()).default([]),
|
|
75
|
+
pinned: z.boolean().default(false),
|
|
76
|
+
hidden: z.boolean().default(false),
|
|
77
|
+
lastReadAt: z.number().default(0),
|
|
78
|
+
createdAt: z.number()
|
|
79
|
+
});
|
|
80
|
+
var CardSchema = z.discriminatedUnion("type", [
|
|
81
|
+
z.object({
|
|
82
|
+
type: z.literal("tool"),
|
|
83
|
+
toolName: z.string(),
|
|
84
|
+
summary: z.string(),
|
|
85
|
+
input: z.unknown().optional(),
|
|
86
|
+
result: z.string().optional(),
|
|
87
|
+
status: z.enum(["running", "ok", "error", "denied"])
|
|
88
|
+
}),
|
|
89
|
+
z.object({
|
|
90
|
+
type: z.literal("file"),
|
|
91
|
+
path: z.string(),
|
|
92
|
+
name: z.string(),
|
|
93
|
+
mime: z.string(),
|
|
94
|
+
bytes: z.number(),
|
|
95
|
+
action: z.enum(["created", "modified"]).default("created")
|
|
96
|
+
}),
|
|
97
|
+
z.object({ type: z.literal("approval"), approvalId: z.string() }),
|
|
98
|
+
z.object({ type: z.literal("handoff"), fromBotId: z.string(), toBotId: z.string(), note: z.string() }),
|
|
99
|
+
z.object({ type: z.literal("error"), message: z.string() })
|
|
100
|
+
]);
|
|
101
|
+
var AuthorKindSchema = z.enum(["user", "bot", "system"]);
|
|
102
|
+
var MessageSchema = z.object({
|
|
103
|
+
id: z.string(),
|
|
104
|
+
threadId: z.string(),
|
|
105
|
+
authorKind: AuthorKindSchema,
|
|
106
|
+
authorBotId: z.string().nullable().default(null),
|
|
107
|
+
replyToId: z.string().nullable().default(null),
|
|
108
|
+
contentMd: z.string().default(""),
|
|
109
|
+
cards: z.array(CardSchema).default([]),
|
|
110
|
+
streaming: z.boolean().default(false),
|
|
111
|
+
createdAt: z.number()
|
|
112
|
+
});
|
|
113
|
+
var AttachmentSchema = z.object({
|
|
114
|
+
id: z.string(),
|
|
115
|
+
messageId: z.string().nullable(),
|
|
116
|
+
path: z.string(),
|
|
117
|
+
name: z.string(),
|
|
118
|
+
mime: z.string(),
|
|
119
|
+
bytes: z.number(),
|
|
120
|
+
createdAt: z.number()
|
|
121
|
+
});
|
|
122
|
+
var ApprovalStatusSchema = z.enum(["pending", "allowed", "denied", "expired"]);
|
|
123
|
+
var ApprovalSchema = z.object({
|
|
124
|
+
id: z.string(),
|
|
125
|
+
botId: z.string(),
|
|
126
|
+
threadId: z.string(),
|
|
127
|
+
toolName: z.string(),
|
|
128
|
+
inputSummary: z.string(),
|
|
129
|
+
rawInput: z.unknown(),
|
|
130
|
+
status: ApprovalStatusSchema.default("pending"),
|
|
131
|
+
decidedBy: z.enum(["user", "rule", "auto_review"]).nullable().default(null),
|
|
132
|
+
reason: z.string().default(""),
|
|
133
|
+
ruleId: z.string().nullable().default(null),
|
|
134
|
+
createdAt: z.number(),
|
|
135
|
+
decidedAt: z.number().nullable().default(null)
|
|
136
|
+
});
|
|
137
|
+
var RuleKindSchema = z.enum(["require", "allow"]);
|
|
138
|
+
var RuleSchema = z.object({
|
|
139
|
+
id: z.string(),
|
|
140
|
+
kind: RuleKindSchema,
|
|
141
|
+
/** Glob over tool name, e.g. "Bash", "browser_*", "*" */
|
|
142
|
+
toolPattern: z.string().default("*"),
|
|
143
|
+
/** Optional regex tested against the serialized tool input. */
|
|
144
|
+
inputPattern: z.string().default(""),
|
|
145
|
+
scopeNote: z.string().default(""),
|
|
146
|
+
builtin: z.boolean().default(false),
|
|
147
|
+
enabled: z.boolean().default(true),
|
|
148
|
+
createdAt: z.number()
|
|
149
|
+
});
|
|
150
|
+
var SkillSchema = z.object({
|
|
151
|
+
id: z.string(),
|
|
152
|
+
slug: z.string(),
|
|
153
|
+
name: z.string(),
|
|
154
|
+
description: z.string().default(""),
|
|
155
|
+
path: z.string(),
|
|
156
|
+
source: z.enum(["user", "taught", "imported"]).default("user"),
|
|
157
|
+
createdAt: z.number()
|
|
158
|
+
});
|
|
159
|
+
var RoutineSchema = z.object({
|
|
160
|
+
id: z.string(),
|
|
161
|
+
botId: z.string(),
|
|
162
|
+
name: z.string().min(1),
|
|
163
|
+
cronExpr: z.string(),
|
|
164
|
+
timezone: z.string().default("UTC"),
|
|
165
|
+
instructionMd: z.string(),
|
|
166
|
+
enabled: z.boolean().default(true),
|
|
167
|
+
lastRunAt: z.number().nullable().default(null),
|
|
168
|
+
nextRunAt: z.number().nullable().default(null),
|
|
169
|
+
createdAt: z.number()
|
|
170
|
+
});
|
|
171
|
+
var RoutineRunSchema = z.object({
|
|
172
|
+
id: z.string(),
|
|
173
|
+
routineId: z.string(),
|
|
174
|
+
startedAt: z.number(),
|
|
175
|
+
finishedAt: z.number().nullable().default(null),
|
|
176
|
+
status: z.enum(["running", "ok", "failed", "interrupted"]),
|
|
177
|
+
summary: z.string().default(""),
|
|
178
|
+
threadId: z.string().nullable().default(null),
|
|
179
|
+
isTest: z.boolean().default(false)
|
|
180
|
+
});
|
|
181
|
+
var MailboxEntrySchema = z.object({
|
|
182
|
+
id: z.string(),
|
|
183
|
+
fromBotId: z.string(),
|
|
184
|
+
toBotId: z.string(),
|
|
185
|
+
contentMd: z.string(),
|
|
186
|
+
hops: z.number().default(1),
|
|
187
|
+
delivered: z.boolean().default(false),
|
|
188
|
+
createdAt: z.number()
|
|
189
|
+
});
|
|
190
|
+
var UsageRowSchema = z.object({
|
|
191
|
+
id: z.string(),
|
|
192
|
+
botId: z.string(),
|
|
193
|
+
turnId: z.string(),
|
|
194
|
+
model: z.string(),
|
|
195
|
+
inputTokens: z.number().default(0),
|
|
196
|
+
outputTokens: z.number().default(0),
|
|
197
|
+
cacheReadTokens: z.number().default(0),
|
|
198
|
+
costEstimate: z.number().default(0),
|
|
199
|
+
createdAt: z.number()
|
|
200
|
+
});
|
|
201
|
+
var TurnOriginSchema = z.enum(["user", "bot", "routine", "system"]);
|
|
202
|
+
|
|
203
|
+
// packages/shared/dist/api.js
|
|
204
|
+
var CreateBotRequest = z2.object({
|
|
205
|
+
name: z2.string().min(1).max(60),
|
|
206
|
+
title: z2.string().max(120).optional(),
|
|
207
|
+
description: z2.string().max(8e3).optional(),
|
|
208
|
+
avatarEmoji: z2.string().max(8).optional(),
|
|
209
|
+
modelTier: ModelTierSchema.optional()
|
|
210
|
+
});
|
|
211
|
+
var UpdateBotRequest = CreateBotRequest.partial().extend({
|
|
212
|
+
pinned: z2.boolean().optional(),
|
|
213
|
+
hidden: z2.boolean().optional(),
|
|
214
|
+
notifications: z2.boolean().optional()
|
|
215
|
+
});
|
|
216
|
+
var CreateThreadRequest = z2.object({
|
|
217
|
+
kind: z2.enum(["dm", "group"]),
|
|
218
|
+
title: z2.string().optional(),
|
|
219
|
+
memberBotIds: z2.array(z2.string())
|
|
220
|
+
});
|
|
221
|
+
var PostMessageRequest = z2.object({
|
|
222
|
+
contentMd: z2.string(),
|
|
223
|
+
attachmentIds: z2.array(z2.string()).optional(),
|
|
224
|
+
replyToId: z2.string().nullable().optional(),
|
|
225
|
+
/** explicit @-mention targets resolved by the client */
|
|
226
|
+
mentionBotIds: z2.array(z2.string()).optional(),
|
|
227
|
+
mentionEveryone: z2.boolean().optional()
|
|
228
|
+
});
|
|
229
|
+
var ApprovalDecisionRequest = z2.object({
|
|
230
|
+
decision: z2.enum(["allow", "deny"]),
|
|
231
|
+
alwaysRule: z2.object({ toolPattern: z2.string(), inputPattern: z2.string().default(""), scopeNote: z2.string().default("") }).optional()
|
|
232
|
+
});
|
|
233
|
+
var CreateRuleRequest = z2.object({
|
|
234
|
+
kind: z2.enum(["require", "allow"]),
|
|
235
|
+
toolPattern: z2.string().min(1),
|
|
236
|
+
inputPattern: z2.string().default(""),
|
|
237
|
+
scopeNote: z2.string().default("")
|
|
238
|
+
});
|
|
239
|
+
var CreateRoutineRequest = z2.object({
|
|
240
|
+
botId: z2.string(),
|
|
241
|
+
name: z2.string().min(1),
|
|
242
|
+
cronExpr: z2.string().min(1),
|
|
243
|
+
timezone: z2.string().optional(),
|
|
244
|
+
instructionMd: z2.string().min(1),
|
|
245
|
+
enabled: z2.boolean().optional()
|
|
246
|
+
});
|
|
247
|
+
var CreateSkillRequest = z2.object({
|
|
248
|
+
name: z2.string().min(1),
|
|
249
|
+
description: z2.string().default(""),
|
|
250
|
+
bodyMd: z2.string().min(1),
|
|
251
|
+
source: z2.enum(["user", "taught", "imported"]).optional()
|
|
252
|
+
});
|
|
253
|
+
var settingsFields = {
|
|
254
|
+
timezone: z2.string(),
|
|
255
|
+
maxConcurrentSessions: z2.number().min(1).max(8),
|
|
256
|
+
autoReviewEnabled: z2.boolean(),
|
|
257
|
+
theme: z2.enum(["system", "light", "dark"]),
|
|
258
|
+
localExecution: z2.enum(["ask", "always", "never"]),
|
|
259
|
+
dailyTokenBudget: z2.number(),
|
|
260
|
+
notificationsEnabled: z2.boolean(),
|
|
261
|
+
billingMode: z2.enum(["subscription", "api"]),
|
|
262
|
+
computerMode: z2.enum(["host", "container"])
|
|
263
|
+
};
|
|
264
|
+
var SettingsSchema = z2.object({
|
|
265
|
+
timezone: settingsFields.timezone.default("UTC"),
|
|
266
|
+
maxConcurrentSessions: settingsFields.maxConcurrentSessions.default(2),
|
|
267
|
+
autoReviewEnabled: settingsFields.autoReviewEnabled.default(true),
|
|
268
|
+
theme: settingsFields.theme.default("system"),
|
|
269
|
+
localExecution: settingsFields.localExecution.default("ask"),
|
|
270
|
+
dailyTokenBudget: settingsFields.dailyTokenBudget.default(0),
|
|
271
|
+
notificationsEnabled: settingsFields.notificationsEnabled.default(true),
|
|
272
|
+
billingMode: settingsFields.billingMode.default("subscription"),
|
|
273
|
+
computerMode: settingsFields.computerMode.default("host")
|
|
274
|
+
});
|
|
275
|
+
var SettingsPatchSchema = z2.object(settingsFields).partial();
|
|
276
|
+
var SearchResultSchema = z2.object({
|
|
277
|
+
kind: z2.enum(["message", "file", "routine", "bot"]),
|
|
278
|
+
id: z2.string(),
|
|
279
|
+
threadId: z2.string().nullable(),
|
|
280
|
+
botId: z2.string().nullable(),
|
|
281
|
+
title: z2.string(),
|
|
282
|
+
snippet: z2.string(),
|
|
283
|
+
createdAt: z2.number()
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
// packages/shared/dist/events.js
|
|
287
|
+
import { z as z3 } from "zod";
|
|
288
|
+
var base = { seq: z3.number(), threadId: z3.string().nullable(), botId: z3.string().nullable() };
|
|
289
|
+
var ServerEventSchema = z3.discriminatedUnion("type", [
|
|
290
|
+
/** Connection handshake. Carries the current seq so a client can detect gaps. */
|
|
291
|
+
z3.object({ ...base, type: z3.literal("hello") }),
|
|
292
|
+
z3.object({ ...base, type: z3.literal("message.created"), message: MessageSchema }),
|
|
293
|
+
z3.object({ ...base, type: z3.literal("message.delta"), messageId: z3.string(), delta: z3.string() }),
|
|
294
|
+
z3.object({ ...base, type: z3.literal("message.done"), messageId: z3.string(), contentMd: z3.string() }),
|
|
295
|
+
z3.object({ ...base, type: z3.literal("message.card"), messageId: z3.string(), card: CardSchema, cardIndex: z3.number() }),
|
|
296
|
+
z3.object({ ...base, type: z3.literal("bot.state"), state: BotStateSchema, attention: AttentionSchema }),
|
|
297
|
+
z3.object({ ...base, type: z3.literal("approval.pending"), approval: ApprovalSchema }),
|
|
298
|
+
z3.object({ ...base, type: z3.literal("approval.resolved"), approval: ApprovalSchema }),
|
|
299
|
+
z3.object({ ...base, type: z3.literal("routine.run"), run: RoutineRunSchema }),
|
|
300
|
+
z3.object({ ...base, type: z3.literal("usage.tick"), inputTokens: z3.number(), outputTokens: z3.number(), model: z3.string() }),
|
|
301
|
+
z3.object({ ...base, type: z3.literal("notify"), title: z3.string(), body: z3.string(), level: z3.enum(["info", "warn", "error"]) }),
|
|
302
|
+
z3.object({ ...base, type: z3.literal("secret.request"), requestId: z3.string(), name: z3.string(), reason: z3.string() }),
|
|
303
|
+
z3.object({ ...base, type: z3.literal("thread.updated"), threadId2: z3.string() })
|
|
304
|
+
]);
|
|
305
|
+
|
|
306
|
+
export {
|
|
307
|
+
LIMITS,
|
|
308
|
+
LIMIT_ERROR,
|
|
309
|
+
LimitError,
|
|
310
|
+
CreateBotRequest,
|
|
311
|
+
UpdateBotRequest,
|
|
312
|
+
CreateThreadRequest,
|
|
313
|
+
PostMessageRequest,
|
|
314
|
+
ApprovalDecisionRequest,
|
|
315
|
+
CreateRuleRequest,
|
|
316
|
+
CreateRoutineRequest,
|
|
317
|
+
CreateSkillRequest,
|
|
318
|
+
SettingsSchema,
|
|
319
|
+
SettingsPatchSchema
|
|
320
|
+
};
|
|
321
|
+
//# sourceMappingURL=chunk-DYIJTUMY.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../packages/shared/src/limits.ts", "../../packages/shared/src/api.ts", "../../packages/shared/src/entities.ts", "../../packages/shared/src/events.ts"],
|
|
4
|
+
"sourcesContent": ["/** Operational limits \u2014 mirrors grok-bot-system-outline.md \u00A713. */\nexport const LIMITS = {\n MAX_BOTS_AND_GROUPS: 50,\n MIN_GROUP_MEMBERS: 2,\n MAX_GROUP_MEMBERS: 6,\n MAX_ROUTINES_PER_BOT: 50,\n ROUTINE_RUNS_RETAINED: 20,\n MAX_ATTACHMENTS_PER_MESSAGE: 6,\n MAX_ATTACHMENT_BYTES: 25 * 1024 * 1024,\n MAX_VIDEO_ATTACHMENT_BYTES: 200 * 1024 * 1024,\n MAX_BOT_TO_BOT_HOPS: 5,\n DEFAULT_MAX_CONCURRENT_SESSIONS: 2,\n APPROVAL_TIMEOUT_MS: 15 * 60 * 1000,\n TEACH_RECORDING_MAX_MS: 10 * 60 * 1000,\n} as const;\n\n/** Error codes returned by the service layer when a limit is violated. */\nexport const LIMIT_ERROR = {\n TOO_MANY_BOTS: 'TOO_MANY_BOTS',\n GROUP_SIZE: 'GROUP_SIZE',\n TOO_MANY_ROUTINES: 'TOO_MANY_ROUTINES',\n TOO_MANY_ATTACHMENTS: 'TOO_MANY_ATTACHMENTS',\n ATTACHMENT_TOO_LARGE: 'ATTACHMENT_TOO_LARGE',\n HOP_LIMIT: 'HOP_LIMIT',\n} as const;\nexport type LimitErrorCode = (typeof LIMIT_ERROR)[keyof typeof LIMIT_ERROR];\n\nexport class LimitError extends Error {\n constructor(\n public code: LimitErrorCode,\n message: string,\n ) {\n super(message);\n this.name = 'LimitError';\n }\n}\n", "import { z } from 'zod';\nimport {\n BotSchema, ThreadSchema, MessageSchema, ApprovalSchema, RuleSchema,\n SkillSchema, RoutineSchema, RoutineRunSchema, UsageRowSchema, ModelTierSchema,\n} from './entities.js';\n\nexport const CreateBotRequest = z.object({\n name: z.string().min(1).max(60),\n title: z.string().max(120).optional(),\n description: z.string().max(8000).optional(),\n avatarEmoji: z.string().max(8).optional(),\n modelTier: ModelTierSchema.optional(),\n});\nexport type CreateBotRequest = z.infer<typeof CreateBotRequest>;\n\nexport const UpdateBotRequest = CreateBotRequest.partial().extend({\n pinned: z.boolean().optional(),\n hidden: z.boolean().optional(),\n notifications: z.boolean().optional(),\n});\nexport type UpdateBotRequest = z.infer<typeof UpdateBotRequest>;\n\nexport const CreateThreadRequest = z.object({\n kind: z.enum(['dm', 'group']),\n title: z.string().optional(),\n memberBotIds: z.array(z.string()),\n});\nexport type CreateThreadRequest = z.infer<typeof CreateThreadRequest>;\n\nexport const PostMessageRequest = z.object({\n contentMd: z.string(),\n attachmentIds: z.array(z.string()).optional(),\n replyToId: z.string().nullable().optional(),\n /** explicit @-mention targets resolved by the client */\n mentionBotIds: z.array(z.string()).optional(),\n mentionEveryone: z.boolean().optional(),\n});\nexport type PostMessageRequest = z.infer<typeof PostMessageRequest>;\n\nexport const ApprovalDecisionRequest = z.object({\n decision: z.enum(['allow', 'deny']),\n alwaysRule: z\n .object({ toolPattern: z.string(), inputPattern: z.string().default(''), scopeNote: z.string().default('') })\n .optional(),\n});\nexport type ApprovalDecisionRequest = z.infer<typeof ApprovalDecisionRequest>;\n\nexport const CreateRuleRequest = z.object({\n kind: z.enum(['require', 'allow']),\n toolPattern: z.string().min(1),\n inputPattern: z.string().default(''),\n scopeNote: z.string().default(''),\n});\nexport type CreateRuleRequest = z.infer<typeof CreateRuleRequest>;\n\nexport const CreateRoutineRequest = z.object({\n botId: z.string(),\n name: z.string().min(1),\n cronExpr: z.string().min(1),\n timezone: z.string().optional(),\n instructionMd: z.string().min(1),\n enabled: z.boolean().optional(),\n});\nexport type CreateRoutineRequest = z.infer<typeof CreateRoutineRequest>;\n\nexport const CreateSkillRequest = z.object({\n name: z.string().min(1),\n description: z.string().default(''),\n bodyMd: z.string().min(1),\n source: z.enum(['user', 'taught', 'imported']).optional(),\n});\nexport type CreateSkillRequest = z.infer<typeof CreateSkillRequest>;\n\n/**\n * Field types, declared once and without defaults. `SettingsSchema` layers the\n * defaults on for reads; `SettingsPatchSchema` deliberately leaves them off.\n */\nconst settingsFields = {\n timezone: z.string(),\n maxConcurrentSessions: z.number().min(1).max(8),\n autoReviewEnabled: z.boolean(),\n theme: z.enum(['system', 'light', 'dark']),\n localExecution: z.enum(['ask', 'always', 'never']),\n dailyTokenBudget: z.number(),\n notificationsEnabled: z.boolean(),\n billingMode: z.enum(['subscription', 'api']),\n computerMode: z.enum(['host', 'container']),\n};\n\nexport const SettingsSchema = z.object({\n timezone: settingsFields.timezone.default('UTC'),\n maxConcurrentSessions: settingsFields.maxConcurrentSessions.default(2),\n autoReviewEnabled: settingsFields.autoReviewEnabled.default(true),\n theme: settingsFields.theme.default('system'),\n localExecution: settingsFields.localExecution.default('ask'),\n dailyTokenBudget: settingsFields.dailyTokenBudget.default(0),\n notificationsEnabled: settingsFields.notificationsEnabled.default(true),\n billingMode: settingsFields.billingMode.default('subscription'),\n computerMode: settingsFields.computerMode.default('host'),\n});\nexport type Settings = z.infer<typeof SettingsSchema>;\n\n/**\n * Body schema for `PATCH /api/settings`. It must NOT carry defaults: parsing a\n * one-field patch through a defaulted schema yields a complete object, and\n * persisting that would reset every setting the client didn't mention \u2014 including\n * `localExecution`, which is a security control (see docs/SECURITY.md).\n */\nexport const SettingsPatchSchema = z.object(settingsFields).partial();\nexport type SettingsPatch = z.infer<typeof SettingsPatchSchema>;\n\nexport const SearchResultSchema = z.object({\n kind: z.enum(['message', 'file', 'routine', 'bot']),\n id: z.string(),\n threadId: z.string().nullable(),\n botId: z.string().nullable(),\n title: z.string(),\n snippet: z.string(),\n createdAt: z.number(),\n});\nexport type SearchResult = z.infer<typeof SearchResultSchema>;\n\nexport type ApiBot = z.infer<typeof BotSchema>;\nexport type ApiThread = z.infer<typeof ThreadSchema>;\nexport type ApiMessage = z.infer<typeof MessageSchema>;\nexport type ApiApproval = z.infer<typeof ApprovalSchema>;\nexport type ApiRule = z.infer<typeof RuleSchema>;\nexport type ApiSkill = z.infer<typeof SkillSchema>;\nexport type ApiRoutine = z.infer<typeof RoutineSchema>;\nexport type ApiRoutineRun = z.infer<typeof RoutineRunSchema>;\nexport type ApiUsageRow = z.infer<typeof UsageRowSchema>;\n\nexport interface RosterEntry { bot: ApiBot; thread: ApiThread | null; lastMessageAt: number }\nexport interface ThreadWithMessages { thread: ApiThread; messages: ApiMessage[] }\nexport interface UsageSummary {\n totals: { inputTokens: number; outputTokens: number; cacheReadTokens: number };\n byBot: Array<{ botId: string; botName: string; inputTokens: number; outputTokens: number }>;\n byDay: Array<{ day: string; inputTokens: number; outputTokens: number }>;\n byModel: Array<{ model: string; inputTokens: number; outputTokens: number }>;\n}\n", "import { z } from 'zod';\n\nexport const BotStateSchema = z.enum([\n 'idle',\n 'queued',\n 'running',\n 'waiting_approval',\n 'waiting_input',\n 'interrupted',\n]);\nexport type BotState = z.infer<typeof BotStateSchema>;\n\nexport const AttentionSchema = z.enum(['none', 'unread', 'needs_attention']);\nexport type Attention = z.infer<typeof AttentionSchema>;\n\nexport const ModelTierSchema = z.enum(['sonnet', 'opus', 'haiku']);\nexport type ModelTier = z.infer<typeof ModelTierSchema>;\n\nexport const BotSchema = z.object({\n id: z.string(),\n slug: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),\n name: z.string().min(1).max(60),\n title: z.string().max(120).default(''),\n description: z.string().max(8000).default(''),\n avatarEmoji: z.string().max(8).default('\uD83E\uDD16'),\n modelTier: ModelTierSchema.default('sonnet'),\n pinned: z.boolean().default(false),\n hidden: z.boolean().default(false),\n notifications: z.boolean().default(true),\n sessionId: z.string().nullable().default(null),\n state: BotStateSchema.default('idle'),\n attention: AttentionSchema.default('none'),\n threadId: z.string().nullable().default(null),\n createdAt: z.number(),\n deletedAt: z.number().nullable().default(null),\n});\nexport type Bot = z.infer<typeof BotSchema>;\n\nexport const ThreadKindSchema = z.enum(['dm', 'group']);\nexport type ThreadKind = z.infer<typeof ThreadKindSchema>;\n\nexport const ThreadSchema = z.object({\n id: z.string(),\n kind: ThreadKindSchema,\n title: z.string().default(''),\n memberBotIds: z.array(z.string()).default([]),\n pinned: z.boolean().default(false),\n hidden: z.boolean().default(false),\n lastReadAt: z.number().default(0),\n createdAt: z.number(),\n});\nexport type Thread = z.infer<typeof ThreadSchema>;\n\n/** Cards render structured, non-prose content inside a message. */\nexport const CardSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('tool'),\n toolName: z.string(),\n summary: z.string(),\n input: z.unknown().optional(),\n result: z.string().optional(),\n status: z.enum(['running', 'ok', 'error', 'denied']),\n }),\n z.object({\n type: z.literal('file'),\n path: z.string(),\n name: z.string(),\n mime: z.string(),\n bytes: z.number(),\n action: z.enum(['created', 'modified']).default('created'),\n }),\n z.object({ type: z.literal('approval'), approvalId: z.string() }),\n z.object({ type: z.literal('handoff'), fromBotId: z.string(), toBotId: z.string(), note: z.string() }),\n z.object({ type: z.literal('error'), message: z.string() }),\n]);\nexport type Card = z.infer<typeof CardSchema>;\n\nexport const AuthorKindSchema = z.enum(['user', 'bot', 'system']);\nexport type AuthorKind = z.infer<typeof AuthorKindSchema>;\n\nexport const MessageSchema = z.object({\n id: z.string(),\n threadId: z.string(),\n authorKind: AuthorKindSchema,\n authorBotId: z.string().nullable().default(null),\n replyToId: z.string().nullable().default(null),\n contentMd: z.string().default(''),\n cards: z.array(CardSchema).default([]),\n streaming: z.boolean().default(false),\n createdAt: z.number(),\n});\nexport type Message = z.infer<typeof MessageSchema>;\n\nexport const AttachmentSchema = z.object({\n id: z.string(),\n messageId: z.string().nullable(),\n path: z.string(),\n name: z.string(),\n mime: z.string(),\n bytes: z.number(),\n createdAt: z.number(),\n});\nexport type Attachment = z.infer<typeof AttachmentSchema>;\n\nexport const ApprovalStatusSchema = z.enum(['pending', 'allowed', 'denied', 'expired']);\nexport type ApprovalStatus = z.infer<typeof ApprovalStatusSchema>;\n\nexport const ApprovalSchema = z.object({\n id: z.string(),\n botId: z.string(),\n threadId: z.string(),\n toolName: z.string(),\n inputSummary: z.string(),\n rawInput: z.unknown(),\n status: ApprovalStatusSchema.default('pending'),\n decidedBy: z.enum(['user', 'rule', 'auto_review']).nullable().default(null),\n reason: z.string().default(''),\n ruleId: z.string().nullable().default(null),\n createdAt: z.number(),\n decidedAt: z.number().nullable().default(null),\n});\nexport type Approval = z.infer<typeof ApprovalSchema>;\n\nexport const RuleKindSchema = z.enum(['require', 'allow']);\nexport type RuleKind = z.infer<typeof RuleKindSchema>;\n\nexport const RuleSchema = z.object({\n id: z.string(),\n kind: RuleKindSchema,\n /** Glob over tool name, e.g. \"Bash\", \"browser_*\", \"*\" */\n toolPattern: z.string().default('*'),\n /** Optional regex tested against the serialized tool input. */\n inputPattern: z.string().default(''),\n scopeNote: z.string().default(''),\n builtin: z.boolean().default(false),\n enabled: z.boolean().default(true),\n createdAt: z.number(),\n});\nexport type Rule = z.infer<typeof RuleSchema>;\n\nexport const SkillSchema = z.object({\n id: z.string(),\n slug: z.string(),\n name: z.string(),\n description: z.string().default(''),\n path: z.string(),\n source: z.enum(['user', 'taught', 'imported']).default('user'),\n createdAt: z.number(),\n});\nexport type Skill = z.infer<typeof SkillSchema>;\n\nexport const RoutineSchema = z.object({\n id: z.string(),\n botId: z.string(),\n name: z.string().min(1),\n cronExpr: z.string(),\n timezone: z.string().default('UTC'),\n instructionMd: z.string(),\n enabled: z.boolean().default(true),\n lastRunAt: z.number().nullable().default(null),\n nextRunAt: z.number().nullable().default(null),\n createdAt: z.number(),\n});\nexport type Routine = z.infer<typeof RoutineSchema>;\n\nexport const RoutineRunSchema = z.object({\n id: z.string(),\n routineId: z.string(),\n startedAt: z.number(),\n finishedAt: z.number().nullable().default(null),\n status: z.enum(['running', 'ok', 'failed', 'interrupted']),\n summary: z.string().default(''),\n threadId: z.string().nullable().default(null),\n isTest: z.boolean().default(false),\n});\nexport type RoutineRun = z.infer<typeof RoutineRunSchema>;\n\nexport const MailboxEntrySchema = z.object({\n id: z.string(),\n fromBotId: z.string(),\n toBotId: z.string(),\n contentMd: z.string(),\n hops: z.number().default(1),\n delivered: z.boolean().default(false),\n createdAt: z.number(),\n});\nexport type MailboxEntry = z.infer<typeof MailboxEntrySchema>;\n\nexport const UsageRowSchema = z.object({\n id: z.string(),\n botId: z.string(),\n turnId: z.string(),\n model: z.string(),\n inputTokens: z.number().default(0),\n outputTokens: z.number().default(0),\n cacheReadTokens: z.number().default(0),\n costEstimate: z.number().default(0),\n createdAt: z.number(),\n});\nexport type UsageRow = z.infer<typeof UsageRowSchema>;\n\nexport const TurnOriginSchema = z.enum(['user', 'bot', 'routine', 'system']);\nexport type TurnOrigin = z.infer<typeof TurnOriginSchema>;\n", "import { z } from 'zod';\nimport { BotStateSchema, AttentionSchema, CardSchema, MessageSchema, ApprovalSchema, RoutineRunSchema } from './entities.js';\n\n/** Every server\u2192client event carries {threadId, botId, seq} for ordering/reconciliation. */\nconst base = { seq: z.number(), threadId: z.string().nullable(), botId: z.string().nullable() };\n\nexport const ServerEventSchema = z.discriminatedUnion('type', [\n /** Connection handshake. Carries the current seq so a client can detect gaps. */\n z.object({ ...base, type: z.literal('hello') }),\n z.object({ ...base, type: z.literal('message.created'), message: MessageSchema }),\n z.object({ ...base, type: z.literal('message.delta'), messageId: z.string(), delta: z.string() }),\n z.object({ ...base, type: z.literal('message.done'), messageId: z.string(), contentMd: z.string() }),\n z.object({ ...base, type: z.literal('message.card'), messageId: z.string(), card: CardSchema, cardIndex: z.number() }),\n z.object({ ...base, type: z.literal('bot.state'), state: BotStateSchema, attention: AttentionSchema }),\n z.object({ ...base, type: z.literal('approval.pending'), approval: ApprovalSchema }),\n z.object({ ...base, type: z.literal('approval.resolved'), approval: ApprovalSchema }),\n z.object({ ...base, type: z.literal('routine.run'), run: RoutineRunSchema }),\n z.object({ ...base, type: z.literal('usage.tick'), inputTokens: z.number(), outputTokens: z.number(), model: z.string() }),\n z.object({ ...base, type: z.literal('notify'), title: z.string(), body: z.string(), level: z.enum(['info', 'warn', 'error']) }),\n z.object({ ...base, type: z.literal('secret.request'), requestId: z.string(), name: z.string(), reason: z.string() }),\n z.object({ ...base, type: z.literal('thread.updated'), threadId2: z.string() }),\n]);\nexport type ServerEvent = z.infer<typeof ServerEventSchema>;\nexport type ServerEventType = ServerEvent['type'];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["z", "z", "z", "z"]
|
|
7
|
+
}
|