verybot 0.1.8

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.
Files changed (277) hide show
  1. package/README.md +167 -0
  2. package/dist/aliases/store.d.ts +21 -0
  3. package/dist/aliases/store.js +148 -0
  4. package/dist/aliases/types.d.ts +6 -0
  5. package/dist/aliases/types.js +1 -0
  6. package/dist/brain/agent-registry.d.ts +96 -0
  7. package/dist/brain/agent-registry.js +141 -0
  8. package/dist/brain/agent.d.ts +167 -0
  9. package/dist/brain/agent.js +932 -0
  10. package/dist/brain/channel-store.d.ts +27 -0
  11. package/dist/brain/channel-store.js +78 -0
  12. package/dist/brain/compaction.d.ts +37 -0
  13. package/dist/brain/compaction.js +214 -0
  14. package/dist/brain/context.d.ts +43 -0
  15. package/dist/brain/context.js +139 -0
  16. package/dist/brain/delegation-store.d.ts +33 -0
  17. package/dist/brain/delegation-store.js +106 -0
  18. package/dist/brain/loop.d.ts +24 -0
  19. package/dist/brain/loop.js +318 -0
  20. package/dist/brain/mcp-adapter.d.ts +43 -0
  21. package/dist/brain/mcp-adapter.js +244 -0
  22. package/dist/brain/memory-extractor.d.ts +26 -0
  23. package/dist/brain/memory-extractor.js +82 -0
  24. package/dist/brain/providers.d.ts +14 -0
  25. package/dist/brain/providers.js +85 -0
  26. package/dist/brain/queue.d.ts +18 -0
  27. package/dist/brain/queue.js +111 -0
  28. package/dist/brain/run-tools.d.ts +50 -0
  29. package/dist/brain/run-tools.js +136 -0
  30. package/dist/brain/session-key.d.ts +23 -0
  31. package/dist/brain/session-key.js +41 -0
  32. package/dist/brain/session-state.d.ts +36 -0
  33. package/dist/brain/session-state.js +51 -0
  34. package/dist/brain/session-store.d.ts +50 -0
  35. package/dist/brain/session-store.js +207 -0
  36. package/dist/brain/session.d.ts +32 -0
  37. package/dist/brain/session.js +75 -0
  38. package/dist/brain/task-subscriber.d.ts +56 -0
  39. package/dist/brain/task-subscriber.js +317 -0
  40. package/dist/brain/user-content.d.ts +16 -0
  41. package/dist/brain/user-content.js +32 -0
  42. package/dist/brain/utils.d.ts +4 -0
  43. package/dist/brain/utils.js +26 -0
  44. package/dist/brain/worker-coordinator.d.ts +25 -0
  45. package/dist/brain/worker-coordinator.js +83 -0
  46. package/dist/channels/commands.d.ts +50 -0
  47. package/dist/channels/commands.js +132 -0
  48. package/dist/channels/discord/channel.d.ts +29 -0
  49. package/dist/channels/discord/channel.js +159 -0
  50. package/dist/channels/discord/markdown.d.ts +19 -0
  51. package/dist/channels/discord/markdown.js +62 -0
  52. package/dist/channels/manager.d.ts +29 -0
  53. package/dist/channels/manager.js +100 -0
  54. package/dist/channels/slack/channel.d.ts +37 -0
  55. package/dist/channels/slack/channel.js +227 -0
  56. package/dist/channels/slack/markdown.d.ts +19 -0
  57. package/dist/channels/slack/markdown.js +62 -0
  58. package/dist/channels/specs.d.ts +32 -0
  59. package/dist/channels/specs.js +99 -0
  60. package/dist/channels/telegram/channel.d.ts +29 -0
  61. package/dist/channels/telegram/channel.js +182 -0
  62. package/dist/channels/telegram/markdown.d.ts +17 -0
  63. package/dist/channels/telegram/markdown.js +66 -0
  64. package/dist/channels/types.d.ts +26 -0
  65. package/dist/channels/types.js +1 -0
  66. package/dist/channels/whatsapp/channel.d.ts +34 -0
  67. package/dist/channels/whatsapp/channel.js +276 -0
  68. package/dist/channels/whatsapp/markdown.d.ts +20 -0
  69. package/dist/channels/whatsapp/markdown.js +51 -0
  70. package/dist/cli/claude-login.d.ts +5 -0
  71. package/dist/cli/claude-login.js +47 -0
  72. package/dist/cli/config.d.ts +5 -0
  73. package/dist/cli/config.js +78 -0
  74. package/dist/cli/index.d.ts +11 -0
  75. package/dist/cli/index.js +96 -0
  76. package/dist/computer/browser/actions.d.ts +31 -0
  77. package/dist/computer/browser/actions.js +148 -0
  78. package/dist/computer/browser/context-manager.d.ts +28 -0
  79. package/dist/computer/browser/context-manager.js +78 -0
  80. package/dist/computer/browser/manager.d.ts +91 -0
  81. package/dist/computer/browser/manager.js +344 -0
  82. package/dist/computer/browser/profile-badge.d.ts +13 -0
  83. package/dist/computer/browser/profile-badge.js +67 -0
  84. package/dist/computer/browser/screenshot.d.ts +5 -0
  85. package/dist/computer/browser/screenshot.js +21 -0
  86. package/dist/computer/browser/snapshot.d.ts +30 -0
  87. package/dist/computer/browser/snapshot.js +242 -0
  88. package/dist/computer/browser/tools.d.ts +5 -0
  89. package/dist/computer/browser/tools.js +167 -0
  90. package/dist/computer/browser/types.d.ts +26 -0
  91. package/dist/computer/browser/types.js +1 -0
  92. package/dist/computer/desktop/adapter.d.ts +25 -0
  93. package/dist/computer/desktop/adapter.js +11 -0
  94. package/dist/computer/desktop/macos.d.ts +24 -0
  95. package/dist/computer/desktop/macos.js +223 -0
  96. package/dist/computer/desktop/tools.d.ts +25 -0
  97. package/dist/computer/desktop/tools.js +114 -0
  98. package/dist/config/agent-config.d.ts +55 -0
  99. package/dist/config/agent-config.js +16 -0
  100. package/dist/config/model-catalog.d.ts +22 -0
  101. package/dist/config/model-catalog.js +112 -0
  102. package/dist/config/model-spec.d.ts +8 -0
  103. package/dist/config/model-spec.js +66 -0
  104. package/dist/config/store.d.ts +25 -0
  105. package/dist/config/store.js +143 -0
  106. package/dist/config.d.ts +110 -0
  107. package/dist/config.js +259 -0
  108. package/dist/control-ui/assets/index-Cbl7G5Sc.css +1 -0
  109. package/dist/control-ui/assets/index-Cu1P4C62.js +266 -0
  110. package/dist/control-ui/assets/noto-sans-cyrillic-ext-wght-normal-DSNfmdVt.woff2 +0 -0
  111. package/dist/control-ui/assets/noto-sans-cyrillic-wght-normal-B2hlT84T.woff2 +0 -0
  112. package/dist/control-ui/assets/noto-sans-devanagari-wght-normal-Cv-Vwajv.woff2 +0 -0
  113. package/dist/control-ui/assets/noto-sans-greek-ext-wght-normal-12T8GTDR.woff2 +0 -0
  114. package/dist/control-ui/assets/noto-sans-greek-wght-normal-Ymb6dZNd.woff2 +0 -0
  115. package/dist/control-ui/assets/noto-sans-latin-ext-wght-normal-W1qJv59z.woff2 +0 -0
  116. package/dist/control-ui/assets/noto-sans-latin-wght-normal-BYSzYMf3.woff2 +0 -0
  117. package/dist/control-ui/assets/noto-sans-vietnamese-wght-normal-DLTJy58D.woff2 +0 -0
  118. package/dist/control-ui/index.html +14 -0
  119. package/dist/control-ui/vite.svg +1 -0
  120. package/dist/events.d.ts +2 -0
  121. package/dist/events.js +11 -0
  122. package/dist/gateway/broadcast.d.ts +5 -0
  123. package/dist/gateway/broadcast.js +33 -0
  124. package/dist/gateway/methods/aliases.d.ts +17 -0
  125. package/dist/gateway/methods/aliases.js +22 -0
  126. package/dist/gateway/methods/chat.d.ts +33 -0
  127. package/dist/gateway/methods/chat.js +37 -0
  128. package/dist/gateway/methods/config.d.ts +14 -0
  129. package/dist/gateway/methods/config.js +24 -0
  130. package/dist/gateway/methods/models.d.ts +10 -0
  131. package/dist/gateway/methods/models.js +14 -0
  132. package/dist/gateway/methods/playbooks.d.ts +45 -0
  133. package/dist/gateway/methods/playbooks.js +488 -0
  134. package/dist/gateway/methods/prompt-templates.d.ts +27 -0
  135. package/dist/gateway/methods/prompt-templates.js +106 -0
  136. package/dist/gateway/methods/scheduler.d.ts +62 -0
  137. package/dist/gateway/methods/scheduler.js +129 -0
  138. package/dist/gateway/methods/sessions.d.ts +44 -0
  139. package/dist/gateway/methods/sessions.js +111 -0
  140. package/dist/gateway/methods/system.d.ts +12 -0
  141. package/dist/gateway/methods/system.js +39 -0
  142. package/dist/gateway/methods/tasks.d.ts +40 -0
  143. package/dist/gateway/methods/tasks.js +151 -0
  144. package/dist/gateway/methods/teams.d.ts +69 -0
  145. package/dist/gateway/methods/teams.js +376 -0
  146. package/dist/gateway/methods/tools.d.ts +6 -0
  147. package/dist/gateway/methods/tools.js +7 -0
  148. package/dist/gateway/methods/whatsapp.d.ts +19 -0
  149. package/dist/gateway/methods/whatsapp.js +35 -0
  150. package/dist/gateway/rpc.d.ts +38 -0
  151. package/dist/gateway/rpc.js +79 -0
  152. package/dist/gateway/server.d.ts +9 -0
  153. package/dist/gateway/server.js +137 -0
  154. package/dist/index.d.ts +1 -0
  155. package/dist/index.js +254 -0
  156. package/dist/integrations/github.d.ts +7 -0
  157. package/dist/integrations/github.js +133 -0
  158. package/dist/integrations/mcp.d.ts +7 -0
  159. package/dist/integrations/mcp.js +106 -0
  160. package/dist/integrations/registry.d.ts +47 -0
  161. package/dist/integrations/registry.js +332 -0
  162. package/dist/integrations/scanner.d.ts +10 -0
  163. package/dist/integrations/scanner.js +122 -0
  164. package/dist/integrations/twitter.d.ts +10 -0
  165. package/dist/integrations/twitter.js +120 -0
  166. package/dist/integrations/types.d.ts +72 -0
  167. package/dist/integrations/types.js +1 -0
  168. package/dist/logger.d.ts +16 -0
  169. package/dist/logger.js +104 -0
  170. package/dist/markdown/chunk.d.ts +9 -0
  171. package/dist/markdown/chunk.js +52 -0
  172. package/dist/markdown/ir.d.ts +37 -0
  173. package/dist/markdown/ir.js +529 -0
  174. package/dist/markdown/render.d.ts +22 -0
  175. package/dist/markdown/render.js +148 -0
  176. package/dist/markdown/table-render.d.ts +43 -0
  177. package/dist/markdown/table-render.js +219 -0
  178. package/dist/markdown/tables.d.ts +17 -0
  179. package/dist/markdown/tables.js +27 -0
  180. package/dist/memory/embedding.d.ts +16 -0
  181. package/dist/memory/embedding.js +66 -0
  182. package/dist/memory/explicit.d.ts +16 -0
  183. package/dist/memory/explicit.js +29 -0
  184. package/dist/memory/extractor.d.ts +13 -0
  185. package/dist/memory/extractor.js +82 -0
  186. package/dist/memory/search.d.ts +15 -0
  187. package/dist/memory/search.js +57 -0
  188. package/dist/memory/session-learning.d.ts +23 -0
  189. package/dist/memory/session-learning.js +55 -0
  190. package/dist/memory/store.d.ts +36 -0
  191. package/dist/memory/store.js +334 -0
  192. package/dist/memory/types.d.ts +9 -0
  193. package/dist/memory/types.js +2 -0
  194. package/dist/paths.d.ts +28 -0
  195. package/dist/paths.js +48 -0
  196. package/dist/prompt-templates/builtins/index.d.ts +4 -0
  197. package/dist/prompt-templates/builtins/index.js +5 -0
  198. package/dist/prompt-templates/builtins/planner.d.ts +4 -0
  199. package/dist/prompt-templates/builtins/planner.js +77 -0
  200. package/dist/prompt-templates/store.d.ts +45 -0
  201. package/dist/prompt-templates/store.js +224 -0
  202. package/dist/prompt-templates/types.d.ts +10 -0
  203. package/dist/prompt-templates/types.js +1 -0
  204. package/dist/scheduler/connected-channels.d.ts +24 -0
  205. package/dist/scheduler/connected-channels.js +57 -0
  206. package/dist/scheduler/scheduler.d.ts +22 -0
  207. package/dist/scheduler/scheduler.js +132 -0
  208. package/dist/scheduler/store.d.ts +27 -0
  209. package/dist/scheduler/store.js +205 -0
  210. package/dist/scheduler/types.d.ts +29 -0
  211. package/dist/scheduler/types.js +1 -0
  212. package/dist/security/command-validator.d.ts +22 -0
  213. package/dist/security/command-validator.js +160 -0
  214. package/dist/security/docker-sandbox.d.ts +48 -0
  215. package/dist/security/docker-sandbox.js +218 -0
  216. package/dist/security/env-filter.d.ts +8 -0
  217. package/dist/security/env-filter.js +41 -0
  218. package/dist/skills/loader.d.ts +33 -0
  219. package/dist/skills/loader.js +132 -0
  220. package/dist/skills/prompt.d.ts +6 -0
  221. package/dist/skills/prompt.js +17 -0
  222. package/dist/skills/read-tool.d.ts +7 -0
  223. package/dist/skills/read-tool.js +24 -0
  224. package/dist/skills/scanner.d.ts +6 -0
  225. package/dist/skills/scanner.js +73 -0
  226. package/dist/skills/types.d.ts +15 -0
  227. package/dist/skills/types.js +1 -0
  228. package/dist/tasks/inline-attachment-content.d.ts +9 -0
  229. package/dist/tasks/inline-attachment-content.js +64 -0
  230. package/dist/tasks/store.d.ts +112 -0
  231. package/dist/tasks/store.js +519 -0
  232. package/dist/tasks/types.d.ts +129 -0
  233. package/dist/tasks/types.js +80 -0
  234. package/dist/teams/status-config.d.ts +8 -0
  235. package/dist/teams/status-config.js +40 -0
  236. package/dist/teams/store.d.ts +111 -0
  237. package/dist/teams/store.js +671 -0
  238. package/dist/teams/types.d.ts +30 -0
  239. package/dist/teams/types.js +1 -0
  240. package/dist/tools/bash.d.ts +18 -0
  241. package/dist/tools/bash.js +64 -0
  242. package/dist/tools/channel-history.d.ts +10 -0
  243. package/dist/tools/channel-history.js +43 -0
  244. package/dist/tools/delegate.d.ts +20 -0
  245. package/dist/tools/delegate.js +299 -0
  246. package/dist/tools/fs.d.ts +4 -0
  247. package/dist/tools/fs.js +335 -0
  248. package/dist/tools/integration-toggle.d.ts +14 -0
  249. package/dist/tools/integration-toggle.js +47 -0
  250. package/dist/tools/memory.d.ts +13 -0
  251. package/dist/tools/memory.js +59 -0
  252. package/dist/tools/prompt-templates.d.ts +7 -0
  253. package/dist/tools/prompt-templates.js +133 -0
  254. package/dist/tools/registry.d.ts +6 -0
  255. package/dist/tools/registry.js +9 -0
  256. package/dist/tools/schedule.d.ts +8 -0
  257. package/dist/tools/schedule.js +219 -0
  258. package/dist/tools/speak.d.ts +10 -0
  259. package/dist/tools/speak.js +56 -0
  260. package/dist/tools/tasks.d.ts +67 -0
  261. package/dist/tools/tasks.js +288 -0
  262. package/dist/tools/teams.d.ts +22 -0
  263. package/dist/tools/teams.js +470 -0
  264. package/dist/tools/web-fetch.d.ts +3 -0
  265. package/dist/tools/web-fetch.js +22 -0
  266. package/dist/tts/edge.d.ts +10 -0
  267. package/dist/tts/edge.js +60 -0
  268. package/dist/tts/speak.d.ts +12 -0
  269. package/dist/tts/speak.js +81 -0
  270. package/dist/tts/transcribe.d.ts +5 -0
  271. package/dist/tts/transcribe.js +40 -0
  272. package/dist/utils.d.ts +5 -0
  273. package/dist/utils.js +22 -0
  274. package/dist/version.d.ts +1 -0
  275. package/dist/version.js +13 -0
  276. package/package.json +102 -0
  277. package/verybot.js +2 -0
@@ -0,0 +1,80 @@
1
+ import { z } from "zod";
2
+ /** Max upload file size: 10 MB */
3
+ export const MAX_FILE_SIZE = 10 * 1024 * 1024;
4
+ const ALLOWED_ATTACHMENT_TYPES = ["image/png", "image/jpeg", "image/gif", "image/webp"];
5
+ export const ALLOWED_IMAGE_TYPES = new Set(ALLOWED_ATTACHMENT_TYPES);
6
+ export const EXT_FOR_MIME = {
7
+ "image/png": ".png",
8
+ "image/jpeg": ".jpg",
9
+ "image/gif": ".gif",
10
+ "image/webp": ".webp",
11
+ };
12
+ /** Legacy list of default status keys — used only for migration backfills. */
13
+ export const LEGACY_STATUS_KEYS = ["backlog", "todo", "plan", "in_progress", "done", "archived"];
14
+ /** Reusable Zod string for task status keys: 1-128 chars, word-chars only. */
15
+ const StatusKeySchema = z.string().min(1).max(128).regex(/^\w+$/, "Status key must be alphanumeric/underscore");
16
+ export const TASK_PRIORITIES = ["low", "medium", "high"];
17
+ /** Default statuses used when a team has no custom config. */
18
+ export const DEFAULT_TASK_STATUSES = [
19
+ { key: "backlog", label: "Backlog", color: "#71717a" },
20
+ { key: "todo", label: "Todo", color: "#64748b" },
21
+ { key: "plan", label: "Plan", color: "#06b6d4" },
22
+ { key: "in_progress", label: "In Progress", color: "#f59e0b" },
23
+ { key: "done", label: "Done", color: "#22c55e" },
24
+ ];
25
+ const MAX_ATTACHMENTS_PER_TASK = 20;
26
+ export const MAX_TASK_COMMENT_LENGTH = 4000;
27
+ const TaskAttachmentSchema = z.object({
28
+ id: z.string().regex(/^[0-9a-f-]+\.(png|jpg|gif|webp)$/),
29
+ name: z.string().max(255),
30
+ type: z.enum(ALLOWED_ATTACHMENT_TYPES),
31
+ size: z.number().int().positive().max(10 * 1024 * 1024),
32
+ createdAt: z.number().int().positive(),
33
+ });
34
+ const TaskCommentContentSchema = z.string().trim().min(1).max(MAX_TASK_COMMENT_LENGTH);
35
+ export const CreateTaskSchema = z.object({
36
+ title: z.string().min(1),
37
+ description: z.string().optional(),
38
+ teamId: z.string().optional(),
39
+ assignee: z.string().optional(),
40
+ priority: z.enum(TASK_PRIORITIES).default("medium"),
41
+ status: StatusKeySchema.default("todo"),
42
+ needsHumanReview: z.boolean().default(false),
43
+ attachments: z.array(TaskAttachmentSchema).max(MAX_ATTACHMENTS_PER_TASK).optional(),
44
+ });
45
+ export const UpdateTaskSchema = z.object({
46
+ id: z.string(),
47
+ title: z.string().min(1).optional(),
48
+ description: z.string().nullable().optional(),
49
+ status: StatusKeySchema.optional(),
50
+ assignee: z.string().nullable().optional(),
51
+ priority: z.enum(TASK_PRIORITIES).optional(),
52
+ teamId: z.string().nullable().optional(),
53
+ needsHumanReview: z.boolean().optional(),
54
+ attachments: z.array(TaskAttachmentSchema).max(MAX_ATTACHMENTS_PER_TASK).optional(),
55
+ });
56
+ export const ListTasksSchema = z.object({
57
+ teamId: z.string().optional(),
58
+ status: StatusKeySchema.optional(),
59
+ assignee: z.string().optional(),
60
+ needsHumanReview: z.boolean().optional(),
61
+ includeArchived: z.boolean().optional(),
62
+ });
63
+ export const ReorderTasksSchema = z.object({
64
+ status: StatusKeySchema,
65
+ orderedIds: z.array(z.string()).min(1),
66
+ });
67
+ export const ListTaskCommentsSchema = z.object({
68
+ taskId: z.string().min(1),
69
+ });
70
+ export const AddTaskCommentSchema = z.object({
71
+ taskId: z.string().min(1),
72
+ content: TaskCommentContentSchema,
73
+ });
74
+ export const UpdateTaskCommentSchema = z.object({
75
+ id: z.string().min(1),
76
+ content: TaskCommentContentSchema,
77
+ });
78
+ export const DeleteTaskCommentSchema = z.object({
79
+ id: z.string().min(1),
80
+ });
@@ -0,0 +1,8 @@
1
+ import type { TaskStatusConfig } from "../config/agent-config.js";
2
+ /** Required terminal task status key across all teams. */
3
+ export declare const REQUIRED_DONE_STATUS_KEY = "done";
4
+ /**
5
+ * Validate a full TaskStatusConfig[] payload.
6
+ * Enforces structural correctness plus the required `done` status invariant.
7
+ */
8
+ export declare function validateStatusConfigs(statuses: unknown): asserts statuses is TaskStatusConfig[];
@@ -0,0 +1,40 @@
1
+ const STATUS_KEY_RE = /^\w+$/;
2
+ const HEX_COLOR_RE = /^#[0-9a-fA-F]{6}$/;
3
+ const MIN_STATUS_COUNT = 1;
4
+ const MAX_STATUS_KEY_LENGTH = 128;
5
+ const DONE_STATUS_KEY = "done";
6
+ /** Required terminal task status key across all teams. */
7
+ export const REQUIRED_DONE_STATUS_KEY = DONE_STATUS_KEY;
8
+ /**
9
+ * Validate a full TaskStatusConfig[] payload.
10
+ * Enforces structural correctness plus the required `done` status invariant.
11
+ */
12
+ export function validateStatusConfigs(statuses) {
13
+ if (!Array.isArray(statuses))
14
+ throw new Error("statuses must be an array");
15
+ if (statuses.length < MIN_STATUS_COUNT)
16
+ throw new Error("statuses must contain at least one status");
17
+ const keys = new Set();
18
+ for (const status of statuses) {
19
+ if (typeof status !== "object" || status === null)
20
+ throw new Error("Each status must be an object");
21
+ const candidate = status;
22
+ if (typeof candidate.key !== "string"
23
+ || candidate.key.length > MAX_STATUS_KEY_LENGTH
24
+ || !STATUS_KEY_RE.test(candidate.key)) {
25
+ throw new Error(`Invalid status key "${candidate.key}": only letters, numbers, and underscores allowed`);
26
+ }
27
+ if (keys.has(candidate.key))
28
+ throw new Error(`Duplicate status key "${candidate.key}"`);
29
+ keys.add(candidate.key);
30
+ if (typeof candidate.label !== "string" || candidate.label.trim().length === 0) {
31
+ throw new Error(`Status "${candidate.key}" must have a non-empty label`);
32
+ }
33
+ if (typeof candidate.color !== "string" || !HEX_COLOR_RE.test(candidate.color)) {
34
+ throw new Error(`Status "${candidate.key}" must have a valid hex color`);
35
+ }
36
+ }
37
+ if (!keys.has(DONE_STATUS_KEY)) {
38
+ throw new Error(`statuses must include a "${DONE_STATUS_KEY}" status key`);
39
+ }
40
+ }
@@ -0,0 +1,111 @@
1
+ import type { Team, AgentRow } from "./types.js";
2
+ import type { TeamConfig, TaskStatusConfig } from "../config/agent-config.js";
3
+ /** Max allowed length for team/agent names. */
4
+ export declare const MAX_NAME_LENGTH = 128;
5
+ /** Max allowed length for agent identity strings. */
6
+ export declare const MAX_IDENTITY_LENGTH = 10000;
7
+ /** Max allowed length for model strings. */
8
+ export declare const MAX_MODEL_LENGTH = 256;
9
+ /** Hex color pattern: #RRGGBB */
10
+ export declare const HEX_COLOR_RE: RegExp;
11
+ export interface CreateTeamInput {
12
+ /** Optional caller-provided id. If omitted, a random UUID is generated. */
13
+ id?: string;
14
+ name: string;
15
+ color?: string;
16
+ workspace?: string;
17
+ variables?: Record<string, string>;
18
+ statuses?: TaskStatusConfig[];
19
+ }
20
+ export interface UpdateTeamInput {
21
+ name?: string;
22
+ color?: string;
23
+ workspace?: string;
24
+ variables?: Record<string, string>;
25
+ statuses?: TaskStatusConfig[];
26
+ }
27
+ export interface CreateAgentInput {
28
+ /** Optional caller-provided id. If omitted, a random UUID is generated. */
29
+ id?: string;
30
+ name: string;
31
+ role: "orchestrator" | "worker";
32
+ model: string;
33
+ contextWindow?: number;
34
+ maxSteps?: number;
35
+ identity?: string;
36
+ tools?: string[];
37
+ timeout?: number;
38
+ templateId?: string | null;
39
+ subscriptions?: string[];
40
+ concurrency?: number;
41
+ }
42
+ export interface UpdateAgentInput {
43
+ name?: string;
44
+ role?: "orchestrator" | "worker";
45
+ model?: string;
46
+ contextWindow?: number;
47
+ maxSteps?: number;
48
+ identity?: string;
49
+ tools?: string[];
50
+ timeout?: number;
51
+ templateId?: string | null;
52
+ subscriptions?: string[];
53
+ concurrency?: number;
54
+ }
55
+ /**
56
+ * SQLite-backed persistence for teams and agents.
57
+ * Shares the same DB file as MemoryStore, TaskStore, etc.
58
+ */
59
+ export declare class TeamStore {
60
+ private db;
61
+ private constructor();
62
+ static create(dbPath: string): Promise<TeamStore>;
63
+ private createSchema;
64
+ /** Run a function inside a SQLite transaction (all-or-nothing). */
65
+ transaction<T>(fn: () => T): T;
66
+ createTeam(input: CreateTeamInput): Team;
67
+ updateTeam(id: string, input: UpdateTeamInput): Team | null;
68
+ deleteTeam(id: string): boolean;
69
+ getTeamById(id: string): Team | null;
70
+ getTeamByName(name: string): Team | null;
71
+ listTeams(): Team[];
72
+ /**
73
+ * Bootstrap helper:
74
+ * guarantees a team row with id "default" exists.
75
+ */
76
+ ensureTeamWhenEmpty(): Team | null;
77
+ createAgent(teamId: string, input: CreateAgentInput): AgentRow;
78
+ updateAgent(id: string, input: UpdateAgentInput): AgentRow | null;
79
+ deleteAgent(id: string): boolean;
80
+ getAgentById(id: string): AgentRow | null;
81
+ /**
82
+ * Runtime lookup for agent execution.
83
+ * Resolves template-linked identity and interpolates team variables.
84
+ */
85
+ getRuntimeAgentById(id: string): AgentRow | null;
86
+ listAgentsByTeam(teamId: string): AgentRow[];
87
+ getAgentByName(teamId: string, name: string): AgentRow | null;
88
+ /** Replace an agent's subscriptions (transactional delete + reinsert). */
89
+ setSubscriptions(agentId: string, statuses: string[]): void;
90
+ /** Get an agent's subscribed task statuses. */
91
+ getSubscriptions(agentId: string): string[];
92
+ /**
93
+ * Find claimable tasks by joining tasks, agent_subscriptions, and agents tables.
94
+ * Used by TaskSubscriberManager to find task/agent matches without raw DB access.
95
+ * Enforces concurrency at query time from live claim counts.
96
+ */
97
+ findClaimableTasks(limit: number): {
98
+ taskId: string;
99
+ agentId: string;
100
+ teamId: string;
101
+ agentName: string;
102
+ model: string;
103
+ concurrency: number;
104
+ }[];
105
+ /**
106
+ * Convert DB rows to the existing TeamConfig[] format so TeamRegistry
107
+ * constructor is unchanged. Uses a single JOIN query instead of N+1.
108
+ */
109
+ toTeamConfigs(): TeamConfig[];
110
+ close(): void;
111
+ }