@spinabot/brigade 1.3.1 → 1.4.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.
Files changed (231) hide show
  1. package/README.md +54 -10
  2. package/convex/config.d.ts +2 -2
  3. package/convex/extensions.d.ts +2 -2
  4. package/convex/logs.d.ts +2 -2
  5. package/convex/memory.d.ts +7 -7
  6. package/convex/messages.d.ts +4 -4
  7. package/convex/schema.d.ts +17 -17
  8. package/convex/subagents.d.ts +12 -12
  9. package/dist/agents/agent-loop.d.ts +1 -0
  10. package/dist/agents/agent-loop.d.ts.map +1 -1
  11. package/dist/agents/agent-loop.js +1 -1
  12. package/dist/agents/agent-loop.js.map +1 -1
  13. package/dist/agents/channels/access-control/format-allow-from.d.ts +50 -0
  14. package/dist/agents/channels/access-control/format-allow-from.d.ts.map +1 -0
  15. package/dist/agents/channels/access-control/format-allow-from.js +64 -0
  16. package/dist/agents/channels/access-control/format-allow-from.js.map +1 -0
  17. package/dist/agents/channels/access-control/index.d.ts +2 -1
  18. package/dist/agents/channels/access-control/index.d.ts.map +1 -1
  19. package/dist/agents/channels/access-control/index.js +2 -1
  20. package/dist/agents/channels/access-control/index.js.map +1 -1
  21. package/dist/agents/channels/access-control/store.d.ts +15 -0
  22. package/dist/agents/channels/access-control/store.d.ts.map +1 -1
  23. package/dist/agents/channels/access-control/store.js +44 -1
  24. package/dist/agents/channels/access-control/store.js.map +1 -1
  25. package/dist/agents/channels/bundled-channel-metas.d.ts +26 -0
  26. package/dist/agents/channels/bundled-channel-metas.d.ts.map +1 -0
  27. package/dist/agents/channels/bundled-channel-metas.js +44 -0
  28. package/dist/agents/channels/bundled-channel-metas.js.map +1 -0
  29. package/dist/agents/channels/channel-messaging-registry.d.ts +130 -0
  30. package/dist/agents/channels/channel-messaging-registry.d.ts.map +1 -0
  31. package/dist/agents/channels/channel-messaging-registry.js +211 -0
  32. package/dist/agents/channels/channel-messaging-registry.js.map +1 -0
  33. package/dist/agents/channels/channel-meta-registry.d.ts +60 -0
  34. package/dist/agents/channels/channel-meta-registry.d.ts.map +1 -0
  35. package/dist/agents/channels/channel-meta-registry.js +128 -0
  36. package/dist/agents/channels/channel-meta-registry.js.map +1 -0
  37. package/dist/agents/channels/channel-security-registry.d.ts +138 -0
  38. package/dist/agents/channels/channel-security-registry.d.ts.map +1 -0
  39. package/dist/agents/channels/channel-security-registry.js +265 -0
  40. package/dist/agents/channels/channel-security-registry.js.map +1 -0
  41. package/dist/agents/channels/exposure.d.ts +44 -0
  42. package/dist/agents/channels/exposure.d.ts.map +1 -0
  43. package/dist/agents/channels/exposure.js +48 -0
  44. package/dist/agents/channels/exposure.js.map +1 -0
  45. package/dist/agents/channels/general-callback.d.ts +25 -0
  46. package/dist/agents/channels/general-callback.d.ts.map +1 -0
  47. package/dist/agents/channels/general-callback.js +31 -0
  48. package/dist/agents/channels/general-callback.js.map +1 -0
  49. package/dist/agents/channels/inbound-pipeline.d.ts +9 -0
  50. package/dist/agents/channels/inbound-pipeline.d.ts.map +1 -1
  51. package/dist/agents/channels/inbound-pipeline.js +429 -39
  52. package/dist/agents/channels/inbound-pipeline.js.map +1 -1
  53. package/dist/agents/channels/markdown-capability.d.ts +44 -0
  54. package/dist/agents/channels/markdown-capability.d.ts.map +1 -0
  55. package/dist/agents/channels/markdown-capability.js +66 -0
  56. package/dist/agents/channels/markdown-capability.js.map +1 -0
  57. package/dist/agents/channels/sdk.d.ts +170 -10
  58. package/dist/agents/channels/sdk.d.ts.map +1 -1
  59. package/dist/agents/channels/sdk.js +138 -6
  60. package/dist/agents/channels/sdk.js.map +1 -1
  61. package/dist/agents/channels/telegram/account-config.d.ts +41 -0
  62. package/dist/agents/channels/telegram/account-config.d.ts.map +1 -1
  63. package/dist/agents/channels/telegram/account-config.js +79 -0
  64. package/dist/agents/channels/telegram/account-config.js.map +1 -1
  65. package/dist/agents/channels/telegram/adapter.d.ts +6 -0
  66. package/dist/agents/channels/telegram/adapter.d.ts.map +1 -1
  67. package/dist/agents/channels/telegram/adapter.js +178 -6
  68. package/dist/agents/channels/telegram/adapter.js.map +1 -1
  69. package/dist/agents/channels/telegram/allowed-updates.d.ts +14 -5
  70. package/dist/agents/channels/telegram/allowed-updates.d.ts.map +1 -1
  71. package/dist/agents/channels/telegram/allowed-updates.js +8 -4
  72. package/dist/agents/channels/telegram/allowed-updates.js.map +1 -1
  73. package/dist/agents/channels/telegram/connection.d.ts +108 -1
  74. package/dist/agents/channels/telegram/connection.d.ts.map +1 -1
  75. package/dist/agents/channels/telegram/connection.js +219 -3
  76. package/dist/agents/channels/telegram/connection.js.map +1 -1
  77. package/dist/agents/channels/telegram/draft-stream.d.ts +98 -0
  78. package/dist/agents/channels/telegram/draft-stream.d.ts.map +1 -0
  79. package/dist/agents/channels/telegram/draft-stream.js +222 -0
  80. package/dist/agents/channels/telegram/draft-stream.js.map +1 -0
  81. package/dist/agents/channels/telegram/inbound-extras.d.ts +10 -1
  82. package/dist/agents/channels/telegram/inbound-extras.d.ts.map +1 -1
  83. package/dist/agents/channels/telegram/inbound-extras.js +66 -0
  84. package/dist/agents/channels/telegram/inbound-extras.js.map +1 -1
  85. package/dist/agents/channels/telegram/inline-keyboard.d.ts +36 -0
  86. package/dist/agents/channels/telegram/inline-keyboard.d.ts.map +1 -0
  87. package/dist/agents/channels/telegram/inline-keyboard.js +62 -0
  88. package/dist/agents/channels/telegram/inline-keyboard.js.map +1 -0
  89. package/dist/agents/channels/telegram/plugin.d.ts.map +1 -1
  90. package/dist/agents/channels/telegram/plugin.js +7 -11
  91. package/dist/agents/channels/telegram/plugin.js.map +1 -1
  92. package/dist/agents/channels/telegram/reasoning-lane.d.ts +41 -0
  93. package/dist/agents/channels/telegram/reasoning-lane.d.ts.map +1 -0
  94. package/dist/agents/channels/telegram/reasoning-lane.js +67 -0
  95. package/dist/agents/channels/telegram/reasoning-lane.js.map +1 -0
  96. package/dist/agents/channels/telegram/socks-dispatcher.d.ts +32 -0
  97. package/dist/agents/channels/telegram/socks-dispatcher.d.ts.map +1 -0
  98. package/dist/agents/channels/telegram/socks-dispatcher.js +97 -0
  99. package/dist/agents/channels/telegram/socks-dispatcher.js.map +1 -0
  100. package/dist/agents/channels/types.adapters.d.ts +137 -4
  101. package/dist/agents/channels/types.adapters.d.ts.map +1 -1
  102. package/dist/agents/channels/types.adapters.js +2 -2
  103. package/dist/agents/channels/types.core.d.ts +26 -2
  104. package/dist/agents/channels/types.core.d.ts.map +1 -1
  105. package/dist/agents/channels/types.plugin.d.ts +25 -7
  106. package/dist/agents/channels/types.plugin.d.ts.map +1 -1
  107. package/dist/agents/channels/types.plugin.js +6 -5
  108. package/dist/agents/channels/types.plugin.js.map +1 -1
  109. package/dist/agents/channels/whatsapp/adapter.d.ts +8 -0
  110. package/dist/agents/channels/whatsapp/adapter.d.ts.map +1 -1
  111. package/dist/agents/channels/whatsapp/adapter.js +7 -4
  112. package/dist/agents/channels/whatsapp/adapter.js.map +1 -1
  113. package/dist/agents/channels/whatsapp/connection.d.ts +24 -2
  114. package/dist/agents/channels/whatsapp/connection.d.ts.map +1 -1
  115. package/dist/agents/channels/whatsapp/connection.js +26 -5
  116. package/dist/agents/channels/whatsapp/connection.js.map +1 -1
  117. package/dist/agents/channels/whatsapp/plugin.d.ts.map +1 -1
  118. package/dist/agents/channels/whatsapp/plugin.js +6 -10
  119. package/dist/agents/channels/whatsapp/plugin.js.map +1 -1
  120. package/dist/agents/extensions/activation-planner.d.ts +125 -0
  121. package/dist/agents/extensions/activation-planner.d.ts.map +1 -0
  122. package/dist/agents/extensions/activation-planner.js +221 -0
  123. package/dist/agents/extensions/activation-planner.js.map +1 -0
  124. package/dist/agents/extensions/diagnose.d.ts +84 -0
  125. package/dist/agents/extensions/diagnose.d.ts.map +1 -0
  126. package/dist/agents/extensions/diagnose.js +123 -0
  127. package/dist/agents/extensions/diagnose.js.map +1 -0
  128. package/dist/agents/extensions/discovery.d.ts +85 -7
  129. package/dist/agents/extensions/discovery.d.ts.map +1 -1
  130. package/dist/agents/extensions/discovery.js +200 -15
  131. package/dist/agents/extensions/discovery.js.map +1 -1
  132. package/dist/agents/extensions/index.d.ts +3 -2
  133. package/dist/agents/extensions/index.d.ts.map +1 -1
  134. package/dist/agents/extensions/index.js +3 -2
  135. package/dist/agents/extensions/index.js.map +1 -1
  136. package/dist/agents/extensions/install-scan.d.ts +63 -0
  137. package/dist/agents/extensions/install-scan.d.ts.map +1 -0
  138. package/dist/agents/extensions/install-scan.js +201 -0
  139. package/dist/agents/extensions/install-scan.js.map +1 -0
  140. package/dist/agents/extensions/install.d.ts +135 -0
  141. package/dist/agents/extensions/install.d.ts.map +1 -0
  142. package/dist/agents/extensions/install.js +414 -0
  143. package/dist/agents/extensions/install.js.map +1 -0
  144. package/dist/agents/extensions/loader.d.ts +13 -2
  145. package/dist/agents/extensions/loader.d.ts.map +1 -1
  146. package/dist/agents/extensions/loader.js +126 -13
  147. package/dist/agents/extensions/loader.js.map +1 -1
  148. package/dist/agents/extensions/registry.d.ts +109 -0
  149. package/dist/agents/extensions/registry.d.ts.map +1 -1
  150. package/dist/agents/extensions/registry.js +172 -0
  151. package/dist/agents/extensions/registry.js.map +1 -1
  152. package/dist/agents/extensions/sdk-alias.d.ts +45 -0
  153. package/dist/agents/extensions/sdk-alias.d.ts.map +1 -0
  154. package/dist/agents/extensions/sdk-alias.js +94 -0
  155. package/dist/agents/extensions/sdk-alias.js.map +1 -0
  156. package/dist/agents/extensions/types.d.ts +155 -1
  157. package/dist/agents/extensions/types.d.ts.map +1 -1
  158. package/dist/agents/extensions/types.js.map +1 -1
  159. package/dist/agents/tools/composio-tool.d.ts +9 -1
  160. package/dist/agents/tools/composio-tool.d.ts.map +1 -1
  161. package/dist/agents/tools/composio-tool.js +68 -4
  162. package/dist/agents/tools/composio-tool.js.map +1 -1
  163. package/dist/agents/tools/message-action-tool.d.ts +6 -1
  164. package/dist/agents/tools/message-action-tool.d.ts.map +1 -1
  165. package/dist/agents/tools/message-action-tool.js +52 -2
  166. package/dist/agents/tools/message-action-tool.js.map +1 -1
  167. package/dist/agents/tools/send-message-tool.d.ts +1 -0
  168. package/dist/agents/tools/send-message-tool.d.ts.map +1 -1
  169. package/dist/agents/tools/send-message-tool.js +56 -1
  170. package/dist/agents/tools/send-message-tool.js.map +1 -1
  171. package/dist/buildstamp.json +1 -1
  172. package/dist/channel-sdk.d.ts +28 -0
  173. package/dist/channel-sdk.d.ts.map +1 -0
  174. package/dist/channel-sdk.js +28 -0
  175. package/dist/channel-sdk.js.map +1 -0
  176. package/dist/cli/commands/channels.d.ts.map +1 -1
  177. package/dist/cli/commands/channels.js +8 -8
  178. package/dist/cli/commands/channels.js.map +1 -1
  179. package/dist/cli/commands/connect.d.ts +8 -11
  180. package/dist/cli/commands/connect.d.ts.map +1 -1
  181. package/dist/cli/commands/connect.js +157 -17
  182. package/dist/cli/commands/connect.js.map +1 -1
  183. package/dist/cli/commands/doctor.d.ts.map +1 -1
  184. package/dist/cli/commands/doctor.js +64 -0
  185. package/dist/cli/commands/doctor.js.map +1 -1
  186. package/dist/cli/commands/extensions.d.ts +46 -0
  187. package/dist/cli/commands/extensions.d.ts.map +1 -0
  188. package/dist/cli/commands/extensions.js +578 -0
  189. package/dist/cli/commands/extensions.js.map +1 -0
  190. package/dist/cli/commands/gateway.d.ts.map +1 -1
  191. package/dist/cli/commands/gateway.js +6 -0
  192. package/dist/cli/commands/gateway.js.map +1 -1
  193. package/dist/cli/commands/pairing.d.ts.map +1 -1
  194. package/dist/cli/commands/pairing.js +16 -2
  195. package/dist/cli/commands/pairing.js.map +1 -1
  196. package/dist/cli/commands/update.d.ts +17 -0
  197. package/dist/cli/commands/update.d.ts.map +1 -0
  198. package/dist/cli/commands/update.js +104 -0
  199. package/dist/cli/commands/update.js.map +1 -0
  200. package/dist/cli/program/build-program.d.ts.map +1 -1
  201. package/dist/cli/program/build-program.js +113 -0
  202. package/dist/cli/program/build-program.js.map +1 -1
  203. package/dist/config/paths.d.ts +1 -0
  204. package/dist/config/paths.d.ts.map +1 -1
  205. package/dist/config/paths.js +9 -0
  206. package/dist/config/paths.js.map +1 -1
  207. package/dist/core/gateway-probe.d.ts.map +1 -1
  208. package/dist/core/gateway-probe.js +9 -1
  209. package/dist/core/gateway-probe.js.map +1 -1
  210. package/dist/core/server.d.ts.map +1 -1
  211. package/dist/core/server.js +134 -2
  212. package/dist/core/server.js.map +1 -1
  213. package/dist/protocol.d.ts +25 -0
  214. package/dist/protocol.d.ts.map +1 -1
  215. package/dist/protocol.js.map +1 -1
  216. package/dist/system-prompt/assembler.d.ts.map +1 -1
  217. package/dist/system-prompt/assembler.js +17 -0
  218. package/dist/system-prompt/assembler.js.map +1 -1
  219. package/dist/system-prompt/identity-defaults.d.ts +28 -0
  220. package/dist/system-prompt/identity-defaults.d.ts.map +1 -1
  221. package/dist/system-prompt/identity-defaults.js +47 -0
  222. package/dist/system-prompt/identity-defaults.js.map +1 -1
  223. package/dist/ui/editor.d.ts.map +1 -1
  224. package/dist/ui/editor.js +1 -0
  225. package/dist/ui/editor.js.map +1 -1
  226. package/dist/version.d.ts +4 -3
  227. package/dist/version.d.ts.map +1 -1
  228. package/dist/version.js +27 -5
  229. package/dist/version.js.map +1 -1
  230. package/package.json +21 -4
  231. package/scripts/build-done.mjs +11 -2
package/README.md CHANGED
@@ -12,6 +12,11 @@
12
12
  <strong>Built for enterprise scale. Open for everyone.</strong> &middot; <em>An ecosystem, not an app.</em>
13
13
  </p>
14
14
 
15
+ <p align="center">
16
+ 🔐 <strong>No tokens to juggle. No drama.</strong> No copy-pasting secrets, no telemetry —
17
+ <strong>we handle them, not you</strong>. Your API keys stay on your own machine, never sent to a middleman.
18
+ </p>
19
+
15
20
  <p align="center">
16
21
  <a href="https://github.com/spinabot/brigade/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/spinabot/brigade/ci.yml?branch=main&style=for-the-badge&logo=githubactions&logoColor=white&label=CI" alt="CI status"></a>
17
22
  <a href="https://www.npmjs.com/package/@spinabot/brigade"><img src="https://img.shields.io/npm/v/@spinabot/brigade?style=for-the-badge&logo=npm&logoColor=white&color=CB3837" alt="npm version"></a>
@@ -32,7 +37,7 @@ install; switch to a self-hosted Convex database when you want one. Bring any mo
32
37
  Claude, GPT, Gemini, Llama, or a local Ollama. Privileged actions wait for your
33
38
  approval, and your keys and data never leave your machine. No telemetry.
34
39
 
35
- It's an ecosystem, not an app: one crew you reach from the terminal and WhatsApp, and
40
+ It's an ecosystem, not an app: one crew you reach from the terminal, WhatsApp, and Telegram, and
36
41
  from your watch, Meta smart glasses, and Meta Quest.
37
42
 
38
43
  ```bash
@@ -42,7 +47,7 @@ brigade
42
47
 
43
48
  Start it and you get a fast chat TUI. Keep going and you get isolated agents with
44
49
  their own workspaces and credentials, persistent memory, a skill system, a cron
45
- scheduler, sub-agent fan-out, an org hierarchy, messaging channels like WhatsApp,
50
+ scheduler, sub-agent fan-out, an org hierarchy, messaging channels like WhatsApp and Telegram,
46
51
  1,000+ app connectors, an MCP memory server, and an optional self-hosted Convex
47
52
  backend — all under one `~/.brigade/` directory you fully own.
48
53
 
@@ -85,7 +90,7 @@ backend — all under one `~/.brigade/` directory you fully own.
85
90
  | 👥 **A real crew** | Spawn isolated agents with their own personas, credentials, and memory; wire them into an **org chart** that governs who can talk to whom. |
86
91
  | 🔌 **Bring any model** | Anthropic, OpenAI, Gemini, OpenRouter, Groq, Cerebras, xAI, DeepSeek, Mistral, local Ollama, or any OpenAI-compatible endpoint. Switch mid-conversation. |
87
92
  | 📅 **Always-on** | Run as a headless WebSocket gateway with a crash supervisor, cron jobs, and OS service install. |
88
- | 💬 **Channels** | Talk to your crew from WhatsApp today; the adapter contract is built for more. |
93
+ | 💬 **Channels** | Talk to your crew from WhatsApp and Telegram today; the adapter contract is built for more. |
89
94
  | 🔗 **1,000+ connectors** | Gmail, Slack, GitHub, Notion, Calendar, Linear… via the built-in Composio tool. |
90
95
  | 🧩 **MCP** | Expose your long-term memory to any MCP client (`brigade mcp`), or connect MCP servers in. |
91
96
  | 🗄️ **Your storage** | Default filesystem mode, or an optional **fully self-hosted Convex** backend with at-rest encryption. |
@@ -174,7 +179,7 @@ holds all state and runs agents) or as a **thin client** that attaches to it.
174
179
  ┌─────────────────┴─────────────────┐
175
180
  brigade tui ──ws──▶ │ GATEWAY :7777 │ ◀──ws── brigade connect
176
181
  brigade chat │ per-turn agent loop · routing │
177
- WhatsApp ──────────▶│ tools · sub-agents · supervisor │◀──────── cron jobs
182
+ WhatsApp·Telegram ──▶│ tools · sub-agents · supervisor │◀──────── cron jobs
178
183
  MCP client ─stdio──▶ │ (brigade mcp → memory server) │
179
184
  └───────────────────────────────────┘
180
185
  ```
@@ -227,8 +232,10 @@ or render a 🦁 Pride chart with the `org` tool.
227
232
 
228
233
  ### 💬 Channels
229
234
  A typed channel-adapter contract with a shared inbound pipeline (access control,
230
- dedupe, abort triggers, approval routing). **WhatsApp** is the reference adapter
231
- (Baileys, QR/code pairing, multi-account, reconnect backoff).
235
+ dedupe, abort triggers, approval routing). **WhatsApp** (Baileys, QR/code pairing,
236
+ multi-account, reconnect backoff) and **Telegram** (Bot API token, inline-button
237
+ approvals, owner bootstrapped on the gateway) ship today; the contract is built for
238
+ more. See [Telegram setup](#telegram-setup-end-to-end) for the full walkthrough.
232
239
 
233
240
  ### ⏰ Cron
234
241
  Schedule recurring or one-shot work: cron expressions (with IANA timezones and
@@ -482,16 +489,53 @@ target (`--channel`, `--to`).
482
489
 
483
490
  ### `brigade channels`
484
491
 
485
- Connect external messaging channels — WhatsApp ships today.
492
+ Connect external messaging channels — WhatsApp and Telegram ship today.
486
493
 
487
494
  ```bash
488
495
  brigade channels list
489
- brigade channels link --channel whatsapp # pair via QR / code
490
- brigade channels status --channel whatsapp
491
- brigade channels allow list --channel whatsapp # add / remove allowed senders
496
+ brigade channels link --channel whatsapp # WhatsApp: pair via QR / code
497
+ brigade channels add --channel telegram # Telegram: set up a bot token
498
+ brigade channels status --channel telegram
499
+ brigade channels allow list --channel telegram # add / remove allowed senders
500
+ brigade pairing approve <code> --channel telegram # approve a waiting sender
492
501
  brigade channels disable --channel whatsapp
493
502
  ```
494
503
 
504
+ ### Telegram setup (end to end)
505
+
506
+ A Telegram bot is a separate account from you, so Brigade establishes ownership on
507
+ the **gateway** — never by whoever texts the bot first.
508
+
509
+ 1. **Create the bot.** In Telegram, message [@BotFather](https://t.me/BotFather),
510
+ send `/newbot`, and copy the API token it returns.
511
+ 2. **Add it to Brigade** (on the gateway machine), then start the gateway:
512
+ ```bash
513
+ brigade channels add --channel telegram # paste the bot token when prompted
514
+ brigade gateway restart # load the channel
515
+ ```
516
+ 3. **Claim ownership.** DM your bot anything — it replies with a one-time code and
517
+ asks an admin to approve it. Approve it once, from the gateway:
518
+ ```bash
519
+ brigade pairing approve <code> --channel telegram
520
+ ```
521
+ The **first** approval on a Telegram bot makes you the owner. Because approving
522
+ requires access to the gateway machine, that access *is* the proof it's really
523
+ you — nobody becomes owner just by sending `/start`.
524
+ 4. **Run it from the chat.** As owner you're never challenged again, and you manage
525
+ everyone else from Telegram itself:
526
+
527
+ | Command | Who | What |
528
+ |---|---|---|
529
+ | `/start` · `/help` | admitted | welcome + command list |
530
+ | `/pending` | owner | list people waiting for approval |
531
+ | `/approve <code>` | owner | admit a waiting person — takes effect immediately, no restart |
532
+ | `/deny <code>` | owner | reject a pending request |
533
+ | `/allowlist add\|remove <id>` | owner | manage approved senders directly |
534
+ | `/whoami` · `/agent <id>` | admitted | see / pin which agent answers you |
535
+
536
+ Everyone else who messages the bot gets a pairing challenge; only you (in chat) or
537
+ the gateway CLI can let them in. Multiple bots or accounts each track their own owner.
538
+
495
539
  ---
496
540
 
497
541
  ## In-chat commands
@@ -5,8 +5,8 @@ export declare const read: import("convex/server").RegisteredQuery<"public", {
5
5
  _creationTime: number;
6
6
  auth?: any;
7
7
  channels?: any;
8
- session?: any;
9
8
  defaults?: any;
9
+ session?: any;
10
10
  agents?: any;
11
11
  gateway?: any;
12
12
  skills?: any;
@@ -29,8 +29,8 @@ export declare const read: import("convex/server").RegisteredQuery<"public", {
29
29
  export declare const write: import("convex/server").RegisteredMutation<"public", {
30
30
  auth?: any;
31
31
  channels?: any;
32
- session?: any;
33
32
  defaults?: any;
33
+ session?: any;
34
34
  agents?: any;
35
35
  gateway?: any;
36
36
  skills?: any;
@@ -7,10 +7,10 @@ export declare const list: import("convex/server").RegisteredQuery<"public", {},
7
7
  bundleSha?: string | undefined;
8
8
  enabled: boolean;
9
9
  createdBy: string;
10
+ moduleId: string;
10
11
  createdAt: number;
11
12
  origin: "bundled" | "user";
12
13
  updatedAt: number;
13
- moduleId: string;
14
14
  sourceLabel: string;
15
15
  }[]>>;
16
16
  export declare const upsert: import("convex/server").RegisteredMutation<"public", {
@@ -20,8 +20,8 @@ export declare const upsert: import("convex/server").RegisteredMutation<"public"
20
20
  bundleSha?: string | undefined;
21
21
  enabled: boolean;
22
22
  createdBy: string;
23
- origin: "bundled" | "user";
24
23
  moduleId: string;
24
+ origin: "bundled" | "user";
25
25
  sourceLabel: string;
26
26
  }, Promise<void>>;
27
27
  export declare const remove: import("convex/server").RegisteredMutation<"public", {
package/convex/logs.d.ts CHANGED
@@ -94,13 +94,13 @@ export declare const appendSubsystemRecord: import("convex/server").RegisteredMu
94
94
  fields?: any;
95
95
  message: string;
96
96
  time: string;
97
- level: "error" | "trace" | "debug" | "info" | "warn" | "fatal";
97
+ level: "trace" | "debug" | "info" | "warn" | "error" | "fatal";
98
98
  subsystem: string;
99
99
  day: string;
100
100
  ownerId: string;
101
101
  }, Promise<void>>;
102
102
  export declare const readSubsystemRecords: import("convex/server").RegisteredQuery<"public", {
103
- level?: "error" | "trace" | "debug" | "info" | "warn" | "fatal" | undefined;
103
+ level?: "trace" | "debug" | "info" | "warn" | "error" | "fatal" | undefined;
104
104
  subsystem?: string | undefined;
105
105
  limit?: number | undefined;
106
106
  day?: string | undefined;
@@ -21,7 +21,7 @@ export declare const listFacts: import("convex/server").RegisteredQuery<"public"
21
21
  confidence?: number | undefined;
22
22
  sourcePointers?: string[] | undefined;
23
23
  embedding?: number[] | undefined;
24
- modality?: "text" | "image" | "video" | "audio" | "document" | undefined;
24
+ modality?: "text" | "audio" | "image" | "video" | "document" | undefined;
25
25
  mediaPointer?: string | undefined;
26
26
  subjectKey?: string | undefined;
27
27
  createdByKind?: "owner" | "channel" | undefined;
@@ -58,7 +58,7 @@ export declare const writeFact: import("convex/server").RegisteredMutation<"publ
58
58
  confidence?: number | undefined;
59
59
  sourcePointers?: string[] | undefined;
60
60
  embedding?: number[] | undefined;
61
- modality?: "text" | "image" | "video" | "audio" | "document" | undefined;
61
+ modality?: "text" | "audio" | "image" | "video" | "document" | undefined;
62
62
  mediaPointer?: string | undefined;
63
63
  subjectKey?: string | undefined;
64
64
  createdByKind?: "owner" | "channel" | undefined;
@@ -92,7 +92,7 @@ export declare const writeFact: import("convex/server").RegisteredMutation<"publ
92
92
  confidence?: number | undefined;
93
93
  sourcePointers?: string[] | undefined;
94
94
  embedding?: number[] | undefined;
95
- modality?: "text" | "image" | "video" | "audio" | "document" | undefined;
95
+ modality?: "text" | "audio" | "image" | "video" | "document" | undefined;
96
96
  mediaPointer?: string | undefined;
97
97
  subjectKey?: string | undefined;
98
98
  createdByKind?: "owner" | "channel" | undefined;
@@ -137,7 +137,7 @@ export declare const listAllFacts: import("convex/server").RegisteredQuery<"publ
137
137
  confidence?: number | undefined;
138
138
  sourcePointers?: string[] | undefined;
139
139
  embedding?: number[] | undefined;
140
- modality?: "text" | "image" | "video" | "audio" | "document" | undefined;
140
+ modality?: "text" | "audio" | "image" | "video" | "document" | undefined;
141
141
  mediaPointer?: string | undefined;
142
142
  subjectKey?: string | undefined;
143
143
  createdByKind?: "owner" | "channel" | undefined;
@@ -177,7 +177,7 @@ export declare const upsertFactRecord: import("convex/server").RegisteredMutatio
177
177
  confidence?: number | undefined;
178
178
  sourcePointers?: string[] | undefined;
179
179
  embedding?: number[] | undefined;
180
- modality?: "text" | "image" | "video" | "audio" | "document" | undefined;
180
+ modality?: "text" | "audio" | "image" | "video" | "document" | undefined;
181
181
  mediaPointer?: string | undefined;
182
182
  subjectKey?: string | undefined;
183
183
  createdByKind?: "owner" | "channel" | undefined;
@@ -287,7 +287,7 @@ export declare const searchContent: import("convex/server").RegisteredQuery<"pub
287
287
  confidence?: number | undefined;
288
288
  sourcePointers?: string[] | undefined;
289
289
  embedding?: number[] | undefined;
290
- modality?: "text" | "image" | "video" | "audio" | "document" | undefined;
290
+ modality?: "text" | "audio" | "image" | "video" | "document" | undefined;
291
291
  mediaPointer?: string | undefined;
292
292
  subjectKey?: string | undefined;
293
293
  createdByKind?: "owner" | "channel" | undefined;
@@ -331,7 +331,7 @@ export declare const findSimilar: import("convex/server").RegisteredQuery<"publi
331
331
  confidence?: number | undefined;
332
332
  sourcePointers?: string[] | undefined;
333
333
  embedding?: number[] | undefined;
334
- modality?: "text" | "image" | "video" | "audio" | "document" | undefined;
334
+ modality?: "text" | "audio" | "image" | "video" | "document" | undefined;
335
335
  mediaPointer?: string | undefined;
336
336
  subjectKey?: string | undefined;
337
337
  createdByKind?: "owner" | "channel" | undefined;
@@ -72,8 +72,8 @@ export declare const inboxEnqueue: import("convex/server").RegisteredMutation<"p
72
72
  ts?: number | undefined;
73
73
  deliveryContext?: any;
74
74
  contextKey?: string | undefined;
75
- text: ArrayBuffer;
76
75
  sessionKey: string;
76
+ text: ArrayBuffer;
77
77
  trusted: boolean;
78
78
  }, Promise<{
79
79
  seq: number;
@@ -85,8 +85,8 @@ export declare const inboxPeek: import("convex/server").RegisteredQuery<"public"
85
85
  _creationTime: number;
86
86
  deliveryContext?: any;
87
87
  contextKey?: string | undefined;
88
- text: ArrayBuffer;
89
88
  sessionKey: string;
89
+ text: ArrayBuffer;
90
90
  ts: number;
91
91
  trusted: boolean;
92
92
  seq: number;
@@ -98,8 +98,8 @@ export declare const inboxDrain: import("convex/server").RegisteredMutation<"pub
98
98
  _creationTime: number;
99
99
  deliveryContext?: any;
100
100
  contextKey?: string | undefined;
101
- text: ArrayBuffer;
102
101
  sessionKey: string;
102
+ text: ArrayBuffer;
103
103
  ts: number;
104
104
  trusted: boolean;
105
105
  seq: number;
@@ -112,8 +112,8 @@ export declare const inboxConsumePrefix: import("convex/server").RegisteredMutat
112
112
  _creationTime: number;
113
113
  deliveryContext?: any;
114
114
  contextKey?: string | undefined;
115
- text: ArrayBuffer;
116
115
  sessionKey: string;
116
+ text: ArrayBuffer;
117
117
  ts: number;
118
118
  trusted: boolean;
119
119
  seq: number;
@@ -2,8 +2,8 @@ declare const _default: import("convex/server").SchemaDefinition<{
2
2
  brigadeConfig: import("convex/server").TableDefinition<import("convex/values").VObject<{
3
3
  auth?: any;
4
4
  channels?: any;
5
- session?: any;
6
5
  defaults?: any;
6
+ session?: any;
7
7
  agents?: any;
8
8
  gateway?: any;
9
9
  skills?: any;
@@ -45,7 +45,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
45
45
  bytes: import("convex/values").VFloat64<number, "required">;
46
46
  updatedAtMs: import("convex/values").VFloat64<number, "required">;
47
47
  updatedByPid: import("convex/values").VFloat64<number | undefined, "optional">;
48
- }, "required", "auth" | "channels" | "session" | "defaults" | "updatedAtMs" | "agents" | "gateway" | "bytes" | "skills" | "org" | "instanceId" | "schemaVersion" | "tools" | "plugins" | "bindings" | "wizard" | "meta" | "extra" | "encryptedGatewayAuthToken" | "encryptedGatewayAuthPassword" | "contentSha256" | "updatedByPid" | `auth.${string}` | `channels.${string}` | `session.${string}` | `defaults.${string}` | `agents.${string}` | `gateway.${string}` | `skills.${string}` | `org.${string}` | `tools.${string}` | `plugins.${string}` | `bindings.${string}` | `wizard.${string}` | `meta.${string}` | `extra.${string}`>, {
48
+ }, "required", "auth" | "channels" | "defaults" | "updatedAtMs" | "session" | "agents" | "gateway" | "bytes" | "skills" | "org" | "instanceId" | "schemaVersion" | "tools" | "plugins" | "bindings" | "wizard" | "meta" | "extra" | "encryptedGatewayAuthToken" | "encryptedGatewayAuthPassword" | "contentSha256" | "updatedByPid" | `auth.${string}` | `channels.${string}` | `defaults.${string}` | `session.${string}` | `agents.${string}` | `gateway.${string}` | `skills.${string}` | `org.${string}` | `tools.${string}` | `plugins.${string}` | `bindings.${string}` | `wizard.${string}` | `meta.${string}` | `extra.${string}`>, {
49
49
  by_instance: ["instanceId", "_creationTime"];
50
50
  }, {}, {}>;
51
51
  brigadeConfigAudit: import("convex/server").TableDefinition<import("convex/values").VObject<{
@@ -149,7 +149,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
149
149
  confidence?: number | undefined;
150
150
  sourcePointers?: string[] | undefined;
151
151
  embedding?: number[] | undefined;
152
- modality?: "text" | "image" | "video" | "audio" | "document" | undefined;
152
+ modality?: "text" | "audio" | "image" | "video" | "document" | undefined;
153
153
  mediaPointer?: string | undefined;
154
154
  subjectKey?: string | undefined;
155
155
  createdByKind?: "owner" | "channel" | undefined;
@@ -209,7 +209,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
209
209
  confidence: import("convex/values").VFloat64<number | undefined, "optional">;
210
210
  status: import("convex/values").VUnion<"asserted" | "provisional" | "confirmed" | "disputed" | "retracted" | undefined, [import("convex/values").VLiteral<"asserted", "required">, import("convex/values").VLiteral<"provisional", "required">, import("convex/values").VLiteral<"confirmed", "required">, import("convex/values").VLiteral<"disputed", "required">, import("convex/values").VLiteral<"retracted", "required">], "optional", never>;
211
211
  sourcePointers: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
212
- modality: import("convex/values").VUnion<"text" | "image" | "video" | "audio" | "document" | undefined, [import("convex/values").VLiteral<"text", "required">, import("convex/values").VLiteral<"audio", "required">, import("convex/values").VLiteral<"image", "required">, import("convex/values").VLiteral<"video", "required">, import("convex/values").VLiteral<"document", "required">], "optional", never>;
212
+ modality: import("convex/values").VUnion<"text" | "audio" | "image" | "video" | "document" | undefined, [import("convex/values").VLiteral<"text", "required">, import("convex/values").VLiteral<"audio", "required">, import("convex/values").VLiteral<"image", "required">, import("convex/values").VLiteral<"video", "required">, import("convex/values").VLiteral<"document", "required">], "optional", never>;
213
213
  mediaPointer: import("convex/values").VString<string | undefined, "optional">;
214
214
  subjectKey: import("convex/values").VString<string | undefined, "optional">;
215
215
  metadata: import("convex/values").VAny<any, "optional", string>;
@@ -352,8 +352,8 @@ declare const _default: import("convex/server").SchemaDefinition<{
352
352
  sessionInboxEvents: import("convex/server").TableDefinition<import("convex/values").VObject<{
353
353
  deliveryContext?: any;
354
354
  contextKey?: string | undefined;
355
- text: ArrayBuffer;
356
355
  sessionKey: string;
356
+ text: ArrayBuffer;
357
357
  ts: number;
358
358
  trusted: boolean;
359
359
  seq: number;
@@ -365,7 +365,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
365
365
  contextKey: import("convex/values").VString<string | undefined, "optional">;
366
366
  deliveryContext: import("convex/values").VAny<any, "optional", string>;
367
367
  trusted: import("convex/values").VBoolean<boolean, "required">;
368
- }, "required", "text" | "sessionKey" | "ts" | "deliveryContext" | "contextKey" | "trusted" | "seq" | `deliveryContext.${string}`>, {
368
+ }, "required", "sessionKey" | "text" | "ts" | "deliveryContext" | "contextKey" | "trusted" | "seq" | `deliveryContext.${string}`>, {
369
369
  by_session_seq: ["sessionKey", "seq", "_creationTime"];
370
370
  by_session_ts: ["sessionKey", "ts", "_creationTime"];
371
371
  }, {}, {}>;
@@ -907,10 +907,10 @@ declare const _default: import("convex/server").SchemaDefinition<{
907
907
  bundleSha?: string | undefined;
908
908
  enabled: boolean;
909
909
  createdBy: string;
910
+ moduleId: string;
910
911
  createdAt: number;
911
912
  origin: "bundled" | "user";
912
913
  updatedAt: number;
913
- moduleId: string;
914
914
  sourceLabel: string;
915
915
  }, {
916
916
  moduleId: import("convex/values").VString<string, "required">;
@@ -924,7 +924,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
924
924
  createdAt: import("convex/values").VFloat64<number, "required">;
925
925
  updatedAt: import("convex/values").VFloat64<number, "required">;
926
926
  createdBy: import("convex/values").VString<string, "required">;
927
- }, "required", "config" | "enabled" | "createdBy" | "createdAt" | "origin" | "updatedAt" | "moduleId" | "bundleBytes" | "sourceLabel" | "manifest" | "bundleSha" | `manifest.${string}`>, {
927
+ }, "required", "config" | "enabled" | "createdBy" | "moduleId" | "createdAt" | "origin" | "updatedAt" | "bundleBytes" | "sourceLabel" | "manifest" | "bundleSha" | `manifest.${string}`>, {
928
928
  by_moduleId: ["moduleId", "_creationTime"];
929
929
  by_origin_enabled: ["origin", "enabled", "_creationTime"];
930
930
  }, {}, {}>;
@@ -985,16 +985,16 @@ declare const _default: import("convex/server").SchemaDefinition<{
985
985
  controllerSessionKey?: string | undefined;
986
986
  requesterOrigin?: ArrayBuffer | undefined;
987
987
  runTimeoutSeconds?: number | undefined;
988
- spawnMode?: "session" | "run" | undefined;
988
+ spawnMode?: "run" | "session" | undefined;
989
989
  startedAt?: number | undefined;
990
990
  sessionStartedAt?: number | undefined;
991
991
  accumulatedRuntimeMs?: number | undefined;
992
992
  endedAt?: number | undefined;
993
993
  outcome?: {
994
- text?: ArrayBuffer | undefined;
995
994
  error?: string | undefined;
996
995
  reason?: string | undefined;
997
- status: "error" | "timeout" | "ok" | "abort";
996
+ text?: ArrayBuffer | undefined;
997
+ status: "timeout" | "error" | "ok" | "abort";
998
998
  } | undefined;
999
999
  archiveAtMs?: number | undefined;
1000
1000
  cleanupCompletedAt?: number | undefined;
@@ -1035,23 +1035,23 @@ declare const _default: import("convex/server").SchemaDefinition<{
1035
1035
  model: import("convex/values").VString<string | undefined, "optional">;
1036
1036
  workspaceDir: import("convex/values").VString<string | undefined, "optional">;
1037
1037
  runTimeoutSeconds: import("convex/values").VFloat64<number | undefined, "optional">;
1038
- spawnMode: import("convex/values").VUnion<"session" | "run" | undefined, [import("convex/values").VLiteral<"run", "required">, import("convex/values").VLiteral<"session", "required">], "optional", never>;
1038
+ spawnMode: import("convex/values").VUnion<"run" | "session" | undefined, [import("convex/values").VLiteral<"run", "required">, import("convex/values").VLiteral<"session", "required">], "optional", never>;
1039
1039
  createdAt: import("convex/values").VFloat64<number, "required">;
1040
1040
  startedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1041
1041
  sessionStartedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1042
1042
  accumulatedRuntimeMs: import("convex/values").VFloat64<number | undefined, "optional">;
1043
1043
  endedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1044
1044
  outcome: import("convex/values").VObject<{
1045
- text?: ArrayBuffer | undefined;
1046
1045
  error?: string | undefined;
1047
1046
  reason?: string | undefined;
1048
- status: "error" | "timeout" | "ok" | "abort";
1047
+ text?: ArrayBuffer | undefined;
1048
+ status: "timeout" | "error" | "ok" | "abort";
1049
1049
  } | undefined, {
1050
- status: import("convex/values").VUnion<"error" | "timeout" | "ok" | "abort", [import("convex/values").VLiteral<"ok", "required">, import("convex/values").VLiteral<"error", "required">, import("convex/values").VLiteral<"timeout", "required">, import("convex/values").VLiteral<"abort", "required">], "required", never>;
1050
+ status: import("convex/values").VUnion<"timeout" | "error" | "ok" | "abort", [import("convex/values").VLiteral<"ok", "required">, import("convex/values").VLiteral<"error", "required">, import("convex/values").VLiteral<"timeout", "required">, import("convex/values").VLiteral<"abort", "required">], "required", never>;
1051
1051
  text: import("convex/values").VBytes<ArrayBuffer | undefined, "optional">;
1052
1052
  error: import("convex/values").VString<string | undefined, "optional">;
1053
1053
  reason: import("convex/values").VString<string | undefined, "optional">;
1054
- }, "optional", "text" | "error" | "reason" | "status">;
1054
+ }, "optional", "error" | "reason" | "text" | "status">;
1055
1055
  archiveAtMs: import("convex/values").VFloat64<number | undefined, "optional">;
1056
1056
  cleanupCompletedAt: import("convex/values").VFloat64<number | undefined, "optional">;
1057
1057
  cleanupHandled: import("convex/values").VBoolean<boolean | undefined, "optional">;
@@ -1071,7 +1071,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
1071
1071
  attachmentsRootDir: import("convex/values").VString<string | undefined, "optional">;
1072
1072
  retainAttachmentsOnKeep: import("convex/values").VBoolean<boolean | undefined, "optional">;
1073
1073
  ownerId: import("convex/values").VString<string, "required">;
1074
- }, "required", "label" | "model" | "createdAt" | "workspaceDir" | "ownerId" | "cleanup" | "runId" | "childSessionKey" | "requesterSessionKey" | "controllerSessionKey" | "requesterDisplayKey" | "requesterOrigin" | "task" | "runTimeoutSeconds" | "spawnMode" | "startedAt" | "sessionStartedAt" | "accumulatedRuntimeMs" | "endedAt" | "outcome" | "archiveAtMs" | "cleanupCompletedAt" | "cleanupHandled" | "suppressAnnounceReason" | "expectsCompletionMessage" | "announceRetryCount" | "lastAnnounceRetryAt" | "endedReason" | "wakeOnDescendantSettle" | "frozenResultText" | "frozenResultCapturedAt" | "fallbackFrozenResultText" | "fallbackFrozenResultCapturedAt" | "endedHookEmittedAt" | "completionAnnouncedAt" | "attachmentsDir" | "attachmentsRootDir" | "retainAttachmentsOnKeep" | "outcome.text" | "outcome.error" | "outcome.reason" | "outcome.status">, {
1074
+ }, "required", "label" | "model" | "createdAt" | "workspaceDir" | "ownerId" | "cleanup" | "runId" | "childSessionKey" | "requesterSessionKey" | "controllerSessionKey" | "requesterDisplayKey" | "requesterOrigin" | "task" | "runTimeoutSeconds" | "spawnMode" | "startedAt" | "sessionStartedAt" | "accumulatedRuntimeMs" | "endedAt" | "outcome" | "archiveAtMs" | "cleanupCompletedAt" | "cleanupHandled" | "suppressAnnounceReason" | "expectsCompletionMessage" | "announceRetryCount" | "lastAnnounceRetryAt" | "endedReason" | "wakeOnDescendantSettle" | "frozenResultText" | "frozenResultCapturedAt" | "fallbackFrozenResultText" | "fallbackFrozenResultCapturedAt" | "endedHookEmittedAt" | "completionAnnouncedAt" | "attachmentsDir" | "attachmentsRootDir" | "retainAttachmentsOnKeep" | "outcome.error" | "outcome.reason" | "outcome.text" | "outcome.status">, {
1075
1075
  by_runId: ["ownerId", "runId", "_creationTime"];
1076
1076
  by_childSessionKey_active: ["ownerId", "childSessionKey", "endedAt", "_creationTime"];
1077
1077
  by_requester_createdAt: ["ownerId", "requesterSessionKey", "createdAt", "_creationTime"];
@@ -10,16 +10,16 @@ export declare const get: import("convex/server").RegisteredQuery<"public", {
10
10
  controllerSessionKey?: string | undefined;
11
11
  requesterOrigin?: ArrayBuffer | undefined;
12
12
  runTimeoutSeconds?: number | undefined;
13
- spawnMode?: "session" | "run" | undefined;
13
+ spawnMode?: "run" | "session" | undefined;
14
14
  startedAt?: number | undefined;
15
15
  sessionStartedAt?: number | undefined;
16
16
  accumulatedRuntimeMs?: number | undefined;
17
17
  endedAt?: number | undefined;
18
18
  outcome?: {
19
- text?: ArrayBuffer | undefined;
20
19
  error?: string | undefined;
21
20
  reason?: string | undefined;
22
- status: "error" | "timeout" | "ok" | "abort";
21
+ text?: ArrayBuffer | undefined;
22
+ status: "timeout" | "error" | "ok" | "abort";
23
23
  } | undefined;
24
24
  archiveAtMs?: number | undefined;
25
25
  cleanupCompletedAt?: number | undefined;
@@ -60,16 +60,16 @@ export declare const getByChildSessionKey: import("convex/server").RegisteredQue
60
60
  controllerSessionKey?: string | undefined;
61
61
  requesterOrigin?: ArrayBuffer | undefined;
62
62
  runTimeoutSeconds?: number | undefined;
63
- spawnMode?: "session" | "run" | undefined;
63
+ spawnMode?: "run" | "session" | undefined;
64
64
  startedAt?: number | undefined;
65
65
  sessionStartedAt?: number | undefined;
66
66
  accumulatedRuntimeMs?: number | undefined;
67
67
  endedAt?: number | undefined;
68
68
  outcome?: {
69
- text?: ArrayBuffer | undefined;
70
69
  error?: string | undefined;
71
70
  reason?: string | undefined;
72
- status: "error" | "timeout" | "ok" | "abort";
71
+ text?: ArrayBuffer | undefined;
72
+ status: "timeout" | "error" | "ok" | "abort";
73
73
  } | undefined;
74
74
  archiveAtMs?: number | undefined;
75
75
  cleanupCompletedAt?: number | undefined;
@@ -110,16 +110,16 @@ export declare const listByRequester: import("convex/server").RegisteredQuery<"p
110
110
  controllerSessionKey?: string | undefined;
111
111
  requesterOrigin?: ArrayBuffer | undefined;
112
112
  runTimeoutSeconds?: number | undefined;
113
- spawnMode?: "session" | "run" | undefined;
113
+ spawnMode?: "run" | "session" | undefined;
114
114
  startedAt?: number | undefined;
115
115
  sessionStartedAt?: number | undefined;
116
116
  accumulatedRuntimeMs?: number | undefined;
117
117
  endedAt?: number | undefined;
118
118
  outcome?: {
119
- text?: ArrayBuffer | undefined;
120
119
  error?: string | undefined;
121
120
  reason?: string | undefined;
122
- status: "error" | "timeout" | "ok" | "abort";
121
+ text?: ArrayBuffer | undefined;
122
+ status: "timeout" | "error" | "ok" | "abort";
123
123
  } | undefined;
124
124
  archiveAtMs?: number | undefined;
125
125
  cleanupCompletedAt?: number | undefined;
@@ -169,16 +169,16 @@ export declare const markCompleted: import("convex/server").RegisteredMutation<"
169
169
  controllerSessionKey?: string | undefined;
170
170
  requesterOrigin?: ArrayBuffer | undefined;
171
171
  runTimeoutSeconds?: number | undefined;
172
- spawnMode?: "session" | "run" | undefined;
172
+ spawnMode?: "run" | "session" | undefined;
173
173
  startedAt?: number | undefined;
174
174
  sessionStartedAt?: number | undefined;
175
175
  accumulatedRuntimeMs?: number | undefined;
176
176
  endedAt?: number | undefined;
177
177
  outcome?: {
178
- text?: ArrayBuffer | undefined;
179
178
  error?: string | undefined;
180
179
  reason?: string | undefined;
181
- status: "error" | "timeout" | "ok" | "abort";
180
+ text?: ArrayBuffer | undefined;
181
+ status: "timeout" | "error" | "ok" | "abort";
182
182
  } | undefined;
183
183
  archiveAtMs?: number | undefined;
184
184
  cleanupCompletedAt?: number | undefined;
@@ -134,6 +134,7 @@ interface ReadCredentialsResult {
134
134
  selectedProfileId?: string;
135
135
  }
136
136
  export declare function readAuthProfilesAsCredentialMap(authProfilesPath: string, cooldownFilter?: AuthStorageCooldownFilter, agentId?: string): ReadCredentialsResult;
137
+ export declare function flattenAssistantContent(content: unknown): string;
137
138
  export interface RunResilientTurnArgs extends RunSingleTurnArgs {
138
139
  fallbacks?: Array<{
139
140
  provider: string;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agents/agent-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../src/agents/agent-loop.ts"],"names":[],"mappings":"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"}
@@ -1803,7 +1803,7 @@ function joinAssistantTextFrom(session, fromIndex) {
1803
1803
  }
1804
1804
  return parts.join("\n\n");
1805
1805
  }
1806
- function flattenAssistantContent(content) {
1806
+ export function flattenAssistantContent(content) {
1807
1807
  if (typeof content === "string")
1808
1808
  return content;
1809
1809
  if (!Array.isArray(content))