@tt-a1i/hive 0.6.0-alpha.5 → 0.6.0-alpha.7

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 (37) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.en.md +272 -0
  3. package/README.md +100 -151
  4. package/dist/src/server/agent-launch-cache.js +2 -2
  5. package/dist/src/server/agent-launch-cache.js.map +1 -1
  6. package/dist/src/server/agent-launch-resolver.d.ts +4 -0
  7. package/dist/src/server/agent-launch-resolver.js +33 -0
  8. package/dist/src/server/agent-launch-resolver.js.map +1 -0
  9. package/dist/src/server/hive-team-guidance.js +1 -0
  10. package/dist/src/server/hive-team-guidance.js.map +1 -1
  11. package/dist/src/server/orchestrator-autostart.js +12 -2
  12. package/dist/src/server/orchestrator-autostart.js.map +1 -1
  13. package/dist/src/server/orchestrator-launch.js +2 -27
  14. package/dist/src/server/orchestrator-launch.js.map +1 -1
  15. package/dist/src/server/recovery-summary.js +1 -1
  16. package/dist/src/server/recovery-summary.js.map +1 -1
  17. package/dist/src/server/route-types.d.ts +2 -0
  18. package/dist/src/server/routes-workspaces.js +26 -18
  19. package/dist/src/server/routes-workspaces.js.map +1 -1
  20. package/dist/src/server/team-list-enrichment.d.ts +22 -0
  21. package/dist/src/server/team-list-enrichment.js +41 -0
  22. package/dist/src/server/team-list-enrichment.js.map +1 -0
  23. package/dist/src/server/team-list-serializer.d.ts +1 -1
  24. package/dist/src/server/team-list-serializer.js +2 -1
  25. package/dist/src/server/team-list-serializer.js.map +1 -1
  26. package/dist/src/shared/types.d.ts +9 -0
  27. package/package.json +3 -3
  28. package/web/dist/assets/index-B8F00qo4.css +1 -0
  29. package/web/dist/assets/index-CGvIlvht.js +80 -0
  30. package/web/dist/cli-icons/claude.png +0 -0
  31. package/web/dist/cli-icons/codex.png +0 -0
  32. package/web/dist/cli-icons/gemini.png +0 -0
  33. package/web/dist/cli-icons/opencode.svg +18 -0
  34. package/web/dist/index.html +2 -2
  35. package/README.zh-CN.md +0 -215
  36. package/web/dist/assets/index-CMHbdGhT.css +0 -1
  37. package/web/dist/assets/index-CkY03NZW.js +0 -76
package/README.md CHANGED
@@ -1,233 +1,186 @@
1
1
  # Hive
2
2
 
3
3
  <p align="center">
4
- <img src="./assets/hive-hero.png" alt="Hive local-first multi-agent coding workspace hero image" />
4
+ <img src="./assets/hive-hero.png" alt="Hive 本机多 agent 协作工作台" />
5
5
  </p>
6
6
 
7
- **Hive is a browser-native hive-mind for CLI coding agents.** The orchestrator
8
- is a real `claude` / `codex` / `opencode` / `gemini` process — not you, and
9
- not a script — and so are the workers it dispatches to. Every agent runs as
10
- a real PTY on your machine, talks through a small `team` protocol that Hive
11
- injects into each agent's shell, and shares a markdown task graph at
12
- `<workspace>/.hive/tasks.md`.
7
+ **Hive 是面向 CLI Coding Agent 的浏览器版蜂巢(hive-mind)。** Orchestrator 本身就是一个真实的 `claude` / `codex` / `opencode` / `gemini` 进程——不是你、也不是脚本——它派单的 Worker 同样是真 CLI agent。所有 agent 都是你电脑上真实的 PTY 进程,通过 Hive 注入到 shell 里的小型 `team` 协议互相通信,共享 `<workspace>/.hive/tasks.md` 这份 markdown 任务图。
13
8
 
14
9
  [![npm](https://img.shields.io/npm/v/@tt-a1i/hive.svg)](https://www.npmjs.com/package/@tt-a1i/hive)
15
10
  [![ci](https://img.shields.io/github/actions/workflow/status/tt-a1i/hive/release.yml?branch=main&label=ci)](https://github.com/tt-a1i/hive/actions/workflows/release.yml)
11
+ [![Website](https://img.shields.io/badge/website-hive--site.pages.dev-5a8a8a.svg)](https://hive-site.pages.dev)
16
12
  [![Node](https://img.shields.io/badge/node-%3E%3D22-3c873a.svg)](https://nodejs.org/)
17
13
  [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)
18
- [![Platforms](https://img.shields.io/badge/platforms-macOS%20%C2%B7%20Linux%20%C2%B7%20Windows%20(best--effort)-lightgrey.svg)](#platform-support)
14
+ [![Platforms](https://img.shields.io/badge/platforms-macOS%20%C2%B7%20Linux%20%C2%B7%20Windows%20(best--effort)-lightgrey.svg)](#平台支持)
19
15
 
20
- English · [简体中文](./README.zh-CN.md)
16
+ 🌐 **官网**:[hive-site.pages.dev](https://hive-site.pages.dev/)([English](https://hive-site.pages.dev/en/)
21
17
 
22
- > Public preview. Hive is local-first, runs on `127.0.0.1`, and is intended
23
- > for developers who already use CLI coding agents. The latest published
24
- > version is on [npm](https://www.npmjs.com/package/@tt-a1i/hive) and the
25
- > badge above resolves to it.
18
+ [English](./README.en.md) · 简体中文
26
19
 
27
- ## Why Hive
20
+ > Public preview。Hive 是本机优先的工具,只监听 `127.0.0.1`,面向已经在用 CLI Coding Agent 的开发者。最新发布版本见 [npm](https://www.npmjs.com/package/@tt-a1i/hive),上面的 badge 会指向它。
28
21
 
29
- CLI coding agents are powerful, but coordinating several of them manually is
30
- awkward:
22
+ ## 为什么需要 Hive
31
23
 
32
- - Long-running sessions are spread across terminals.
33
- - It is hard to split a task into implementation, review, and testing without a
34
- routing layer.
35
- - Worker progress disappears into scrollback.
36
- - Restart recovery depends on each CLI's native session behavior.
24
+ CLI Coding Agent 各自都很强,但同时管几个就有点别扭:
37
25
 
38
- Hive adds that coordination layer without replacing the CLIs. The agents remain
39
- real terminal processes running on your machine; Hive manages the team shell
40
- around them.
26
+ - 长任务的会话散在好几个终端里,注意力来回切。
27
+ - 想把"实现 / review / 测试"分给三个 agent,却没有一层把它们路由起来。
28
+ - Worker 的进度淹在 scrollback 里,回头看找不到。
29
+ - 想重启接着干,全看每个 CLI 自己的 session 恢复行为,散乱不可控。
41
30
 
42
- ## Try the demo first
31
+ Hive 加上这一层调度,**不替换**任何 CLI。Agent 还是真实跑在你电脑上的终端进程,Hive 只是它们外面的"团队 shell"。
43
32
 
44
- Don't have an agent CLI installed yet? Run `hive`, open the printed URL, and
45
- click **Try Demo** in the first-run wizard. You get a fully client-side
46
- preview — fake orchestrator + two workers, prerecorded scrollback, a
47
- prefilled task list — without touching the server or any real CLI agent.
48
- Useful for deciding whether to install a real CLI.
33
+ ## 先看看 demo
49
34
 
50
- ## Quick Start
35
+ 还没装任何 agent CLI?运行 `hive`、打开它打印出的本地地址、在 first-run 向导里点 **Try Demo**。你会看到一个完全跑在客户端的预览——假 orchestrator + 两个 worker、预录的终端 scrollback、一份预填的任务清单——既不会连服务器,也不需要任何真实 CLI agent。适合决定要不要继续装真 CLI。
51
36
 
52
- Prerequisites:
37
+ ## 快速开始
53
38
 
54
- - Node.js 22 or newer.
55
- - At least one supported agent CLI installed, authenticated, and available on
56
- `PATH`.
39
+ 前置条件:
57
40
 
58
- Install and start Hive:
41
+ - Node.js 22 或更新版本
42
+ - 至少一个支持的 Agent CLI 已经安装好、登录过、在 `PATH` 上可调用
43
+
44
+ 安装并启动 Hive:
59
45
 
60
46
  ```bash
61
47
  npm install -g @tt-a1i/hive
62
48
  hive
63
49
  ```
64
50
 
65
- Open the printed local URL, usually `http://127.0.0.1:3000/`. Use
66
- `hive --port 4010` when you need a specific local port.
51
+ 打开终端打印出来的本机地址,通常是 `http://127.0.0.1:3000/`。如果你想指定端口,可以用 `hive --port 4010`。
67
52
 
68
- First-run flow:
53
+ 首次使用流程:
69
54
 
70
- 1. Create a workspace from a project folder.
71
- 2. Choose an Orchestrator preset.
72
- 3. Hive creates `<workspace>/.hive/tasks.md`, starts the Orchestrator PTY, and
73
- injects the internal `team` command into the agent session.
74
- 4. Add workers from the Team Members panel.
75
- 5. Ask the Orchestrator to delegate work. It sends tasks with
76
- `team send <worker-name> "<task>"`; workers report back with `team report`.
55
+ 1. 选择一个项目目录作为 workspace
56
+ 2. 挑一个 Orchestrator 预设。
57
+ 3. Hive 会创建 `<workspace>/.hive/tasks.md`,启动 Orchestrator PTY,把内部的 `team` 命令注入这个 agent 会话。
58
+ 4. Team Members 面板里添加 Worker。
59
+ 5. Orchestrator 说一声让它派活,它会用 `team send <worker-name> "<task>"` 发任务,Worker 完事后用 `team report` 回报。
77
60
 
78
- ## How It Works
61
+ ## 工作方式
79
62
 
80
63
  ```text
81
- Browser UI on 127.0.0.1
82
- tasks, team, terminals, reports
64
+ 浏览器 UI 跑在 127.0.0.1
65
+ 任务 · 团队 · 终端 · 汇报
83
66
  |
84
67
  | HTTP + WebSocket
85
68
  v
86
- Hive runtime
87
- SQLite metadata, PTY lifecycle, task dispatch
69
+ Hive Runtime
70
+ SQLite 元数据 · PTY 生命周期 · 任务派单
88
71
  |
89
72
  +-- Orchestrator PTY
90
- | can call: team send, team list, team report
73
+ | 可调用:team sendteam listteam report
91
74
  |
92
75
  +-- Worker PTY
93
- | can call: team report
76
+ | 可调用:team report
94
77
  |
95
78
  +-- Worker PTY
96
- can call: team report
79
+ 可调用:team report
97
80
 
98
- Workspace task graph:
81
+ Workspace 任务图:
99
82
  <workspace>/.hive/tasks.md
100
83
  ```
101
84
 
102
- Three details matter:
85
+ 三个细节值得记住:
103
86
 
104
- - Agents are real CLI processes, not simulated subagents.
105
- - `team` is injected only inside Hive-managed agent sessions by prepending the
106
- package's internal bin directory to `PATH`; it is not installed as a global
107
- command.
108
- - The task graph is a markdown file in the workspace, so you can inspect or
109
- edit it outside the app.
87
+ - Agent 是真正的 CLI 进程,不是模拟的 subagent。
88
+ - `team` 命令**只**在 Hive 管理的 agent 会话里可用——通过把包内 bin 目录 prepend PATH 实现,不会装成全局命令。
89
+ - 任务图就是 workspace 里的一份 markdown 文件,你可以在编辑器里直接看或者改。
110
90
 
111
- ## Agent Presets
91
+ ## Agent 预设
112
92
 
113
- | Preset | Command expected on `PATH` | Default bypass mode | Session resume |
93
+ | 预设 | `PATH` 上的命令 | 默认 bypass 模式 | 会话恢复 |
114
94
  | --- | --- | --- | --- |
115
- | Claude Code | `claude` | `--dangerously-skip-permissions`, `--permission-mode=bypassPermissions` | `--resume <session_id>` |
95
+ | Claude Code | `claude` | `--dangerously-skip-permissions`、`--permission-mode=bypassPermissions` | `--resume <session_id>` |
116
96
  | Codex | `codex` | `--dangerously-bypass-approvals-and-sandbox` | `resume <session_id>` |
117
- | OpenCode | `opencode` | Config-driven in `~/.config/opencode/opencode.json` | `--session <session_id>` |
97
+ | OpenCode | `opencode` | `~/.config/opencode/opencode.json` 配置 | `--session <session_id>` |
118
98
  | Gemini | `gemini` | `--yolo` | `--resume <session_id>` |
119
- | Custom | Any executable | User configured | User configured |
120
-
121
- Hive does not install these CLIs for you. Install and authenticate them in the
122
- same shell environment you use to start Hive.
99
+ | 自定义 | 任意可执行文件 | 自己配 | 自己配 |
123
100
 
124
- ## What Hive Provides
101
+ Hive 不替你安装这些 CLI。请在启动 Hive 的同一个 shell 环境里先装好、登录好。
125
102
 
126
- - Workspace sidebar for switching between local projects.
127
- - Orchestrator and worker terminals backed by real PTYs.
128
- - Add Worker flow with role presets for coder, reviewer, tester, and custom
129
- members.
130
- - `.hive/tasks.md` editor with external-file conflict handling.
131
- - Background PTY preservation and best-effort native session resume.
132
- - Local SQLite metadata under `~/.config/hive` by default, or `$HIVE_DATA_DIR`
133
- when set.
103
+ ## Hive 提供什么
134
104
 
135
- Hive does not provide sandboxing, multi-user auth, cloud hosting, or its own
136
- coding model. It coordinates tools you already run locally.
105
+ - Workspace 侧边栏,方便在多个本机项目之间切换。
106
+ - Orchestrator Worker 终端都是真实 PTY 支撑的。
107
+ - Add Worker 流程预置了 coder / reviewer / tester 和自定义成员的角色模板。
108
+ - `.hive/tasks.md` 编辑器,带外部文件冲突处理。
109
+ - PTY 后台保留 + 尽力使用各 CLI 原生 session 恢复。
110
+ - 元数据存在本机 SQLite,默认在 `~/.config/hive`,或者通过 `$HIVE_DATA_DIR` 指定。
137
111
 
138
- ## Platform Support
112
+ Hive **不**提供 sandbox 隔离、多用户认证、云端托管,也没有自带的编码模型。它只负责调度你已经在用的本机工具。
139
113
 
140
- | Platform | Status | Notes |
141
- | --- | --- | --- |
142
- | macOS | Tier 1 | Main development and release verification target. |
143
- | Linux | Tier 1 | CI verified. Native folder picking expects `zenity`; manual path entry works without it. |
144
- | Windows | Tier 2 | CI runs a Windows test subset and a packaged-install smoke. Folder picking uses Windows PowerShell and the package includes `team.cmd`. Treat as best-effort — full Windows verification before each release is manual. |
114
+ ## 平台支持
145
115
 
146
- All platforms require Node.js 22+. Hive depends on native packages
147
- (`node-pty` and `better-sqlite3`), so native install tooling may be required
148
- when prebuilt binaries are unavailable.
116
+ 所有平台都需要 Node.js 22+。Hive 依赖 `node-pty` `better-sqlite3` 这类原生包,没有预编译二进制时需要你本机有原生构建工具链。
149
117
 
150
- ## Safety Model
118
+ ## 安全模型
151
119
 
152
- Hive is a local development tool, not a hosted service.
120
+ Hive 是本机开发工具,**不是**托管服务。
153
121
 
154
- - The runtime binds to `127.0.0.1`. Do not expose the Hive port through a public
155
- tunnel, reverse proxy, or shared network interface.
156
- - Built-in presets intentionally use each CLI's non-interactive or bypass mode
157
- where available. Treat workers as able to run arbitrary shell commands inside
158
- the selected workspace.
159
- - Open only trusted workspaces. A worker has the same filesystem access as the
160
- shell account running Hive.
161
- - Agent tokens are session scoped, generated by the local runtime, injected into
162
- agent process environments, and not intended as internet-facing credentials.
163
- - Hive has no multi-user authentication boundary. Treat same-machine processes
164
- that can reach the local port as trusted local access.
165
- - The browser UI token is a local session guard, not protection against other
166
- processes already running as your OS user.
122
+ - Runtime 只监听 `127.0.0.1`。不要把 Hive 端口通过公网隧道、反向代理或任何共享网络接口暴露出去。
123
+ - 内置预设会主动传 CLI non-interactive / bypass flag。Worker 在选中的 workspace 里有跟启动 shell **同等**的执行权限——把它当成"会自动跑命令的你自己"。
124
+ - 只打开你信任的 workspace。Worker 拥有跟你登录账户一样的文件系统访问权限。
125
+ - Agent token session 级的,由本机 runtime 生成,注入到 agent 进程环境变量里,**不**用于跨网络通信。
126
+ - Hive 不做多用户认证。任何能从本机访问到端口的进程都视为可信本地访问。
127
+ - 浏览器 UI token 只是本机会话保护,不是用来防同一系统账户下其他进程的安全边界。
167
128
 
168
- Read [SECURITY.md](SECURITY.md) before using Hive with sensitive repositories.
129
+ 在敏感仓库里用 Hive 之前,请先读 [SECURITY.md](SECURITY.md)
169
130
 
170
- ## Data Locations
131
+ ## 数据位置
171
132
 
172
- | Data | Location |
133
+ | 数据 | 位置 |
173
134
  | --- | --- |
174
- | Runtime metadata | `~/.config/hive` or `$HIVE_DATA_DIR` |
175
- | Workspace tasks | `<workspace>/.hive/tasks.md` |
176
- | Internal `team` command | Packaged under `dist/bin/`, injected into PTYs |
177
- | Web UI assets | Served by the runtime from the packaged `web/dist` build |
135
+ | Runtime 元数据 | `~/.config/hive` `$HIVE_DATA_DIR` |
136
+ | Workspace 任务图 | `<workspace>/.hive/tasks.md` |
137
+ | 内部 `team` 命令 | 包内 `dist/bin/`,通过 PATH 注入 PTY |
138
+ | Web UI 资源 | runtime 从包内 `web/dist` 直接服务 |
178
139
 
179
- ## Troubleshooting
140
+ ## 故障排查
180
141
 
181
- **Agent CLI not found**
142
+ **找不到 Agent CLI**
182
143
 
183
- Check that the selected command is installed, authenticated, executable from the
184
- same shell, and available on `PATH`.
144
+ 确认选中的命令已经安装好、登录好、在启动 Hive 那个 shell 里能直接调用,且在 `PATH` 上。
185
145
 
186
- **Port already in use**
146
+ **端口被占用**
187
147
 
188
- Start Hive with another local port:
148
+ 换个本机端口启动:
189
149
 
190
150
  ```bash
191
151
  hive --port 4020
192
152
  ```
193
153
 
194
- **Native package install fails**
154
+ **原生包构建失败**
195
155
 
196
- Hive depends on `node-pty` and `better-sqlite3`, which use native binaries. Use
197
- Node.js 22+, keep your package manager cache clean, and verify your platform
198
- build tools are available.
156
+ Hive 依赖 `node-pty` `better-sqlite3`,它们用原生二进制。确认 Node.js 22+,清干净 package manager 缓存,并准备好你平台的构建工具(macOS Xcode CLI、Linux build-essential + python3、Windows VS Build Tools)。
199
157
 
200
- **Folder picker does not open on Linux**
158
+ **Linux 上目录选择器不弹**
201
159
 
202
- Install `zenity`, or paste the workspace path manually.
160
+ `zenity`,或者直接在对话框里粘路径。
203
161
 
204
- **Folder picker does not open on Windows**
162
+ **Windows 上目录选择器不弹**
205
163
 
206
- Verify Windows PowerShell is available as `powershell.exe`, or paste the
207
- workspace path manually.
164
+ 确认 `powershell.exe` `PATH` 上,或者直接粘路径。
208
165
 
209
- **Tasks file conflict banner appears**
166
+ **Tasks 文件冲突 banner 出现**
210
167
 
211
- Hive detected a newer `.hive/tasks.md` on disk. Use `Reload` to accept the file
212
- from disk, or `Keep Local` to keep the editor contents and save again.
168
+ Hive 检测到磁盘上的 `.hive/tasks.md` UI 里的新。`Reload` 接受磁盘版本,`Keep Local` 保留 UI 编辑并覆盖保存。
213
169
 
214
- **Worker appears stuck in `working`**
170
+ **Worker 卡在 `working` 状态**
215
171
 
216
- Hive does not guess task completion from process activity. Workers move back to
217
- `idle` when they call `team report`. If a worker is blocked, stop or restart it
218
- from the UI.
172
+ Hive 不通过进程活动猜测任务完成。Worker 只有在调 `team report` 时才会回到 `idle`。如果它确实卡了,从 UI Stop Restart。
219
173
 
220
- ## Development
174
+ ## 开发
221
175
 
222
176
  ```bash
223
177
  pnpm install
224
178
  pnpm dev
225
179
  ```
226
180
 
227
- Development mode runs the runtime on `127.0.0.1:4010`; Vite runs on
228
- `127.0.0.1:5180` and proxies API and WebSocket traffic to the runtime.
181
+ 开发模式下 runtime 跑在 `127.0.0.1:4010`,Vite 跑在 `127.0.0.1:5180`,把 API 和 WebSocket 代理到 runtime。
229
182
 
230
- Useful checks:
183
+ 常用命令:
231
184
 
232
185
  ```bash
233
186
  pnpm check
@@ -235,35 +188,31 @@ pnpm build
235
188
  pnpm test
236
189
  ```
237
190
 
238
- Production-style local run:
191
+ 预演 production 构建:
239
192
 
240
193
  ```bash
241
194
  pnpm build
242
195
  node dist/src/cli/hive.js --port 4010
243
196
  ```
244
197
 
245
- The production server serves the built web UI directly. No Vite server is
246
- needed after `pnpm build`.
198
+ Production 模式下 runtime 直接服务构建好的 web UI,不需要单独的 Vite
247
199
 
248
- ## Release
200
+ ## 发布
249
201
 
250
- Maintainer dry run:
202
+ 维护者本地预演:
251
203
 
252
204
  ```bash
253
205
  pnpm release:dry
254
206
  ```
255
207
 
256
- See [docs/release.md](docs/release.md) for the full tagged release checklist,
257
- including manual Windows smoke steps.
208
+ 完整 tag 发版清单见 [docs/release.md](docs/release.md),里面包含 Windows 手动 smoke 步骤。
258
209
 
259
- Tag pushes matching `v*` run the GitHub Actions release workflow. The workflow
260
- verifies macOS, Ubuntu, and Windows, then publishes to npm with `NPM_TOKEN`.
210
+ `v*` tag push 会触发 GitHub Actions release workflow。workflow 会在 macOS、Ubuntu、Windows 三平台验证,然后用 `NPM_TOKEN` 发布到 npm。
261
211
 
262
- ## Status
212
+ ## 状态
263
213
 
264
- Hive is in alpha public preview. Expect UI and protocol details to keep moving
265
- while the core local orchestration model hardens.
214
+ Hive 正处于 alpha public preview 阶段。在本机调度模型稳定下来之前,UI 和协议细节还会继续调整。
266
215
 
267
216
  ## License
268
217
 
269
- Apache-2.0. See [LICENSE](LICENSE).
218
+ Apache-2.0。详见 [LICENSE](LICENSE)
@@ -40,14 +40,14 @@ export const createAgentLaunchCache = (store) => {
40
40
  resumeArgsTemplate: input.resumeArgsTemplate ?? null,
41
41
  sessionIdCapture: input.sessionIdCapture ?? null,
42
42
  };
43
+ store.saveLaunchConfig(workspaceId, agentId, normalized);
43
44
  launchConfigs.set(cacheKey(workspaceId, agentId), normalized);
44
45
  workspaceByAgentId.set(agentId, workspaceId);
45
- store.saveLaunchConfig(workspaceId, agentId, normalized);
46
46
  },
47
47
  remove(workspaceId, agentId) {
48
+ store.deleteLaunchConfig(workspaceId, agentId);
48
49
  launchConfigs.delete(cacheKey(workspaceId, agentId));
49
50
  workspaceByAgentId.delete(agentId);
50
- store.deleteLaunchConfig(workspaceId, agentId);
51
51
  },
52
52
  setWorkspaceId(agentId, workspaceId) {
53
53
  workspaceByAgentId.set(agentId, workspaceId);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-launch-cache.js","sourceRoot":"","sources":["../../../src/server/agent-launch-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-launch-cache.js","sourceRoot":"","sources":["../../../src/server/agent-launch-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { AgentLaunchConfigInput } from './agent-run-store.js';
2
+ import type { SettingsStore } from './settings-store.js';
3
+ export declare const resolveCommandPresetLaunchConfig: (settings: SettingsStore, commandPresetId: string) => AgentLaunchConfigInput | undefined;
4
+ export declare const resolveStartupCommandLaunchConfig: (settings: SettingsStore, startupCommand: string, commandPresetId?: string | null) => AgentLaunchConfigInput | undefined;
@@ -0,0 +1,33 @@
1
+ import { createStartupCommandLaunch, getStartupCommandExecutable, } from './startup-command-parser.js';
2
+ export const resolveCommandPresetLaunchConfig = (settings, commandPresetId) => {
3
+ const preset = settings.getCommandPreset(commandPresetId);
4
+ if (!preset)
5
+ return undefined;
6
+ return {
7
+ args: preset.args,
8
+ command: preset.command,
9
+ commandPresetId: preset.id,
10
+ };
11
+ };
12
+ const findPresetForStartupCommand = (settings, startupCommand, commandPresetId) => {
13
+ if (commandPresetId)
14
+ return settings.getCommandPreset(commandPresetId);
15
+ const executable = getStartupCommandExecutable(startupCommand);
16
+ return executable ? settings.getCommandPreset(executable) : undefined;
17
+ };
18
+ export const resolveStartupCommandLaunchConfig = (settings, startupCommand, commandPresetId = null) => {
19
+ const trimmedStartupCommand = startupCommand.trim();
20
+ if (!trimmedStartupCommand)
21
+ return undefined;
22
+ const parsed = createStartupCommandLaunch(trimmedStartupCommand);
23
+ const preset = findPresetForStartupCommand(settings, trimmedStartupCommand, commandPresetId);
24
+ return {
25
+ command: parsed.command,
26
+ args: parsed.args,
27
+ commandPresetId: null,
28
+ interactiveCommand: preset?.command ?? getStartupCommandExecutable(trimmedStartupCommand),
29
+ presetAugmentationDisabled: true,
30
+ sessionIdCapture: preset?.sessionIdCapture ?? null,
31
+ };
32
+ };
33
+ //# sourceMappingURL=agent-launch-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-launch-resolver.js","sourceRoot":"","sources":["../../../src/server/agent-launch-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAA;AAEpC,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,QAAuB,EACvB,eAAuB,EACa,EAAE;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,eAAe,EAAE,MAAM,CAAC,EAAE;KAC3B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,2BAA2B,GAAG,CAClC,QAAuB,EACvB,cAAsB,EACtB,eAA8B,EAC9B,EAAE;IACF,IAAI,eAAe;QAAE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACtE,MAAM,UAAU,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAA;IAC9D,OAAO,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,QAAuB,EACvB,cAAsB,EACtB,kBAAiC,IAAI,EACD,EAAE;IACtC,MAAM,qBAAqB,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;IACnD,IAAI,CAAC,qBAAqB;QAAE,OAAO,SAAS,CAAA;IAC5C,MAAM,MAAM,GAAG,0BAA0B,CAAC,qBAAqB,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,2BAA2B,CAAC,QAAQ,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAA;IAC5F,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,eAAe,EAAE,IAAI;QACrB,kBAAkB,EAAE,MAAM,EAAE,OAAO,IAAI,2BAA2B,CAAC,qBAAqB,CAAC;QACzF,0BAA0B,EAAE,IAAI;QAChC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,IAAI;KACnD,CAAA;AACH,CAAC,CAAA"}
@@ -1,6 +1,7 @@
1
1
  const ORCHESTRATOR_RULES = [
2
2
  'Hive worker 是右侧卡片里的真实 CLI agent,不是你所在 CLI 的内置 subagent / 子代理工具。',
3
3
  '当 user 要你“让 worker ... / 给 worker 找活 / 让成员处理”时,先执行 `team list` 确认真实 Hive worker。',
4
+ '普通、低风险、几分钟内能直接完成的小任务可以自己做;不要为了形式感派 worker。需要并行、长时间执行、独立 review/test、专门角色,或 user 明确要求 worker/成员处理时,再用 `team send`。',
4
5
  '如果只有一个可用 worker,直接用 `team send <worker-name> "<task>"` 派给它;不要把选择题丢回给 user。',
5
6
  '当 user 要你“让 worker ...”时,必须用 `team send <worker-name> "<task>"` 派给 Hive worker。',
6
7
  '不要使用你所在 CLI 的内置 subagent / 子代理工具(如 Task / Explore 等)来代替 Hive worker;它们不会出现在 Hive UI,也不会更新 Hive 调度状态。',
@@ -1 +1 @@
1
- {"version":3,"file":"hive-team-guidance.js","sourceRoot":"","sources":["../../../src/server/hive-team-guidance.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;IACzB,iEAAiE;IACjE,kFAAkF;IAClF,4EAA4E;IAC5E,iFAAiF;IACjF,sGAAsG;IACtG,6MAA6M;CAC9M,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,qDAAqD;IACrD,+EAA+E;IAC/E,gDAAgD;IAChD,sDAAsD;IACtD,sGAAsG;IACtG,6FAA6F;CAC9F,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAiC,EAAE,EAAE,CACpE,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAA"}
1
+ {"version":3,"file":"hive-team-guidance.js","sourceRoot":"","sources":["../../../src/server/hive-team-guidance.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;IACzB,iEAAiE;IACjE,kFAAkF;IAClF,mHAAmH;IACnH,4EAA4E;IAC5E,iFAAiF;IACjF,sGAAsG;IACtG,6MAA6M;CAC9M,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,qDAAqD;IACrD,+EAA+E;IAC/E,gDAAgD;IAChD,sDAAsD;IACtD,sGAAsG;IACtG,6FAA6F;CAC9F,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAiC,EAAE,EAAE,CACpE,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { getStartupCommandExecutable } from './startup-command-parser.js';
1
2
  // SETTLE_WAIT_MS: how long we wait before declaring autostart "ok". Must be
2
3
  // long enough to observe an early exit when the child shell prints
3
4
  // "command not found" then dies with exit 127 (typically <100ms in practice).
@@ -40,6 +41,15 @@ const formatEarlyExitError = (command, exitCode) => {
40
41
  }
41
42
  return `${command} failed to start (exit ${exitCode ?? 'null'})`;
42
43
  };
44
+ const getLaunchErrorCommand = (config) => {
45
+ if (config.presetAugmentationDisabled) {
46
+ const startupCommand = config.args?.at(-1);
47
+ const executable = startupCommand ? getStartupCommandExecutable(startupCommand) : null;
48
+ if (executable)
49
+ return executable;
50
+ }
51
+ return config.interactiveCommand ?? config.command;
52
+ };
43
53
  /**
44
54
  * Wraps `store.startAgent` so spawn failures never bubble up: callers always
45
55
  * receive a structured result. The HTTP layer uses this to keep workspace
@@ -86,7 +96,7 @@ export const autostartAgent = async (port, workspaceId, agentId, hivePort, optio
86
96
  if (status === 'error' || (status === 'exited' && (exitCode ?? 0) !== 0)) {
87
97
  return {
88
98
  ok: false,
89
- error: formatEarlyExitError(config.command, exitCode),
99
+ error: formatEarlyExitError(getLaunchErrorCommand(config), exitCode),
90
100
  run_id: run.runId,
91
101
  };
92
102
  }
@@ -95,7 +105,7 @@ export const autostartAgent = async (port, workspaceId, agentId, hivePort, optio
95
105
  catch (error) {
96
106
  return {
97
107
  ok: false,
98
- error: formatStartError(error, config.command),
108
+ error: formatStartError(error, getLaunchErrorCommand(config)),
99
109
  run_id: null,
100
110
  };
101
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-autostart.js","sourceRoot":"","sources":["../../../src/server/orchestrator-autostart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator-autostart.js","sourceRoot":"","sources":["../../../src/server/orchestrator-autostart.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createStartupCommandLaunch, getStartupCommandExecutable, } from './startup-command-parser.js';
1
+ import { resolveCommandPresetLaunchConfig, resolveStartupCommandLaunchConfig, } from './agent-launch-resolver.js';
2
2
  import { getOrchestratorId } from './workspace-store-support.js';
3
3
  const parseArgsEnv = (raw) => {
4
4
  if (raw === undefined)
@@ -16,22 +16,6 @@ const parseArgsEnv = (raw) => {
16
16
  }
17
17
  return undefined;
18
18
  };
19
- const resolveCommandPresetLaunchConfig = (settings, commandPresetId) => {
20
- const preset = settings.getCommandPreset(commandPresetId);
21
- if (!preset)
22
- return undefined;
23
- return {
24
- args: preset.args,
25
- command: preset.command,
26
- commandPresetId: preset.id,
27
- };
28
- };
29
- const findPresetForStartupCommand = (settings, startupCommand, commandPresetId) => {
30
- if (commandPresetId)
31
- return settings.getCommandPreset(commandPresetId);
32
- const executable = getStartupCommandExecutable(startupCommand);
33
- return executable ? settings.getCommandPreset(executable) : undefined;
34
- };
35
19
  /**
36
20
  * Resolve the orchestrator's launch config in priority order:
37
21
  * 1. Explicit startup command pasted by the user. It runs through their shell
@@ -46,16 +30,7 @@ const findPresetForStartupCommand = (settings, startupCommand, commandPresetId)
46
30
  export const resolveOrchestratorLaunchConfig = (settings, commandPresetId = null, startupCommand = null) => {
47
31
  const trimmedStartupCommand = startupCommand?.trim();
48
32
  if (trimmedStartupCommand) {
49
- const parsed = createStartupCommandLaunch(trimmedStartupCommand);
50
- const preset = findPresetForStartupCommand(settings, trimmedStartupCommand, commandPresetId);
51
- return {
52
- command: parsed.command,
53
- args: parsed.args,
54
- commandPresetId: null,
55
- interactiveCommand: preset?.command ?? getStartupCommandExecutable(trimmedStartupCommand),
56
- presetAugmentationDisabled: true,
57
- sessionIdCapture: preset?.sessionIdCapture ?? null,
58
- };
33
+ return resolveStartupCommandLaunchConfig(settings, trimmedStartupCommand, commandPresetId);
59
34
  }
60
35
  if (commandPresetId) {
61
36
  return resolveCommandPresetLaunchConfig(settings, commandPresetId);
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-launch.js","sourceRoot":"","sources":["../../../src/server/orchestrator-launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator-launch.js","sourceRoot":"","sources":["../../../src/server/orchestrator-launch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAClC,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAchE,MAAM,YAAY,GAAG,CAAC,GAAuB,EAAwB,EAAE;IACrE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAA;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;YAAE,OAAO,MAAM,CAAA;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,QAAuB,EACvB,kBAAiC,IAAI,EACrC,iBAAgC,IAAI,EACA,EAAE;IACtC,MAAM,qBAAqB,GAAG,cAAc,EAAE,IAAI,EAAE,CAAA;IACpD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,iCAAiC,CAAC,QAAQ,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAA;IAC5F,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,gCAAgC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IACpE,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAA;IACxD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,EAAE;YACjE,eAAe,EAAE,IAAI;SACtB,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAA;IAChG,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/B,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,sEAAsE;IACtE,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,cAAc;QAChC,IAAI,EAAE,QAAQ,CAAC,WAAW;QAC1B,eAAe,EAAE,IAAI;KACtB,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,IAAmB,EACnB,QAAuB,EACvB,WAAmB,EACnB,kBAAiC,IAAI,EACrC,iBAAgC,IAAI,EAC9B,EAAE;IACR,MAAM,cAAc,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACrD,IAAI,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,cAAc,CAAC;QAAE,OAAM;IACnE,MAAM,MAAM,GAAG,+BAA+B,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAA;IACzF,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;AAChE,CAAC,CAAA"}
@@ -66,7 +66,7 @@ const formatWorkers = (workers) => {
66
66
  const getTaskSectionTitle = (agent) => agent.role === 'orchestrator' ? '## 你已派出的任务' : '## 最近派给你的任务';
67
67
  export const buildRecoverySummary = ({ agent, allTaskMessages, messages, tasksContent, workers, workspace, }) => wrapSystemMessage([
68
68
  `你是 ${workspace.name} 的 ${agent.name}(${agent.role})。`,
69
- '你刚刚因为崩溃重启,且无法通过原生 session resume 恢复。下面是接力上下文。',
69
+ '你刚被 Hive 重启了,且无法通过原生 session resume 恢复。下面是接力上下文。',
70
70
  '',
71
71
  '## 最近 1 小时与 user 的对话',
72
72
  ...formatUserInputs(messages),
@@ -1 +1 @@
1
- {"version":3,"file":"recovery-summary.js","sourceRoot":"","sources":["../../../src/server/recovery-summary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAE7B,MAAM,gBAAgB,GAAG,CAAC,QAA2B,EAAE,EAAE;IACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;IAC9E,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAA;AACpC,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,QAA2B,EAAE,KAAmB,EAAE,EAAE;IAC5E,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAChC,CAAC,OAAO,EAA+E,EAAE;QACvF,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAA;YAC7D,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAA;QAC/D,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAA;QACxF,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAA;IAC9F,CAAC,CACF,CAAA;IACD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,aAAa,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,EAAE,CAAA;YAC9E,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,eAAe,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAA;YACpF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC3D,OAAO,eAAe,OAAO,CAAC,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE,CAAA;QAChE,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAA;AACtB,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAmB,EAAE,OAAuB,EAAE,EAAE,CAC1E,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAEnD,MAAM,eAAe,GAAG,CACtB,QAA2B,EAC3B,KAAmB,EACnB,OAAuB,EACvB,EAAE;IACF,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAC5D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAC3C,CAAA;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6D,CAAA;IAEnF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC7B,SAAQ;QACV,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAA;QACnC,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,IAAI,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CACR,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,mBAAmB,CAC/E,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;AACrD,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,OAAuB,EAAE,EAAE;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACpD,OAAO,OAAO,CAAC,GAAG,CAChB,CAAC,MAAM,EAAE,EAAE,CACT,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,yBAAyB,MAAM,CAAC,gBAAgB,GAAG,CACxG,CAAA;AACH,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAmB,EAAE,EAAE,CAClD,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,KAAK,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,SAAS,GAQV,EAAE,EAAE,CACH,iBAAiB,CACf;IACE,MAAM,SAAS,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI;IACtD,+CAA+C;IAC/C,EAAE;IACF,sBAAsB;IACtB,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAC7B,EAAE;IACF,mBAAmB,CAAC,KAAK,CAAC;IAC1B,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;IACpC,EAAE;IACF,YAAY;IACZ,GAAG,eAAe,CAAC,eAAe,IAAI,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;IAC/D,EAAE;IACF,SAAS,mBAAmB,KAAK;IACjC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,KAAK;IAChD,EAAE;IACF,gBAAgB;IAChB,GAAG,aAAa,CAAC,OAAO,CAAC;IACzB,EAAE;IACF,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB;IAC3E,GAAG,gBAAgB,CAAC,KAAK,CAAC;IAC1B,EAAE;IACF,sBAAsB;CACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA"}
1
+ {"version":3,"file":"recovery-summary.js","sourceRoot":"","sources":["../../../src/server/recovery-summary.ts"],"names":[],"mappings":"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"}