@tt-a1i/hive 0.6.0-alpha.4 → 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 (90) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.en.md +272 -0
  3. package/README.md +103 -143
  4. package/dist/src/cli/team.d.ts +8 -0
  5. package/dist/src/cli/team.js +69 -26
  6. package/dist/src/cli/team.js.map +1 -1
  7. package/dist/src/server/agent-launch-cache.js +2 -2
  8. package/dist/src/server/agent-launch-cache.js.map +1 -1
  9. package/dist/src/server/agent-launch-resolver.d.ts +4 -0
  10. package/dist/src/server/agent-launch-resolver.js +33 -0
  11. package/dist/src/server/agent-launch-resolver.js.map +1 -0
  12. package/dist/src/server/agent-run-store.d.ts +1 -2
  13. package/dist/src/server/agent-run-store.js +5 -13
  14. package/dist/src/server/agent-run-store.js.map +1 -1
  15. package/dist/src/server/agent-runtime-ports.d.ts +1 -2
  16. package/dist/src/server/agent-session-store.d.ts +1 -1
  17. package/dist/src/server/agent-session-store.js +28 -34
  18. package/dist/src/server/agent-session-store.js.map +1 -1
  19. package/dist/src/server/agent-startup-instructions.js +1 -1
  20. package/dist/src/server/agent-startup-instructions.js.map +1 -1
  21. package/dist/src/server/app-state-store.d.ts +1 -1
  22. package/dist/src/server/app-state-store.js +1 -3
  23. package/dist/src/server/app-state-store.js.map +1 -1
  24. package/dist/src/server/command-preset-store.d.ts +1 -1
  25. package/dist/src/server/command-preset-store.js +2 -8
  26. package/dist/src/server/command-preset-store.js.map +1 -1
  27. package/dist/src/server/dispatch-ledger-store.d.ts +18 -4
  28. package/dist/src/server/dispatch-ledger-store.js +0 -66
  29. package/dist/src/server/dispatch-ledger-store.js.map +1 -1
  30. package/dist/src/server/hive-team-guidance.js +8 -4
  31. package/dist/src/server/hive-team-guidance.js.map +1 -1
  32. package/dist/src/server/message-log-store.d.ts +1 -3
  33. package/dist/src/server/message-log-store.js +2 -59
  34. package/dist/src/server/message-log-store.js.map +1 -1
  35. package/dist/src/server/orchestrator-autostart.js +12 -2
  36. package/dist/src/server/orchestrator-autostart.js.map +1 -1
  37. package/dist/src/server/orchestrator-launch.js +2 -27
  38. package/dist/src/server/orchestrator-launch.js.map +1 -1
  39. package/dist/src/server/recovery-summary.js +1 -1
  40. package/dist/src/server/recovery-summary.js.map +1 -1
  41. package/dist/src/server/role-template-store.d.ts +1 -1
  42. package/dist/src/server/role-template-store.js +2 -6
  43. package/dist/src/server/role-template-store.js.map +1 -1
  44. package/dist/src/server/route-types.d.ts +2 -0
  45. package/dist/src/server/routes-workspaces.js +26 -18
  46. package/dist/src/server/routes-workspaces.js.map +1 -1
  47. package/dist/src/server/runtime-database.d.ts +1 -1
  48. package/dist/src/server/runtime-database.js +8 -4
  49. package/dist/src/server/runtime-database.js.map +1 -1
  50. package/dist/src/server/runtime-store-helpers.js +2 -4
  51. package/dist/src/server/runtime-store-helpers.js.map +1 -1
  52. package/dist/src/server/runtime-store.d.ts +1 -1
  53. package/dist/src/server/runtime-store.js +1 -1
  54. package/dist/src/server/runtime-store.js.map +1 -1
  55. package/dist/src/server/settings-store.d.ts +1 -1
  56. package/dist/src/server/settings-store.js.map +1 -1
  57. package/dist/src/server/team-list-enrichment.d.ts +22 -0
  58. package/dist/src/server/team-list-enrichment.js +41 -0
  59. package/dist/src/server/team-list-enrichment.js.map +1 -0
  60. package/dist/src/server/team-list-serializer.d.ts +1 -1
  61. package/dist/src/server/team-list-serializer.js +3 -2
  62. package/dist/src/server/team-list-serializer.js.map +1 -1
  63. package/dist/src/server/terminal-state-mirror.d.ts +1 -1
  64. package/dist/src/server/terminal-state-mirror.js +1 -1
  65. package/dist/src/server/terminal-state-mirror.js.map +1 -1
  66. package/dist/src/server/worker-output-tracker.d.ts +1 -1
  67. package/dist/src/server/worker-output-tracker.js +2 -2
  68. package/dist/src/server/worker-output-tracker.js.map +1 -1
  69. package/dist/src/server/workspace-store-hydration.d.ts +2 -2
  70. package/dist/src/server/workspace-store-hydration.js +1 -4
  71. package/dist/src/server/workspace-store-hydration.js.map +1 -1
  72. package/dist/src/server/workspace-store.d.ts +1 -1
  73. package/dist/src/server/workspace-store.js +5 -5
  74. package/dist/src/server/workspace-store.js.map +1 -1
  75. package/dist/src/shared/types.d.ts +15 -3
  76. package/package.json +7 -3
  77. package/web/dist/assets/addon-clipboard-wHJhZAA4.js +1 -0
  78. package/web/dist/assets/addon-unicode11-Bt8F3D7-.js +7 -0
  79. package/web/dist/assets/addon-web-links-DIbG5aQx.js +1 -0
  80. package/web/dist/assets/addon-webgl-DCtw1yLn.js +64 -0
  81. package/web/dist/assets/index-B8F00qo4.css +1 -0
  82. package/web/dist/assets/index-CGvIlvht.js +80 -0
  83. package/web/dist/cli-icons/claude.png +0 -0
  84. package/web/dist/cli-icons/codex.png +0 -0
  85. package/web/dist/cli-icons/gemini.png +0 -0
  86. package/web/dist/cli-icons/opencode.svg +18 -0
  87. package/web/dist/index.html +2 -2
  88. package/README.zh-CN.md +0 -210
  89. package/web/dist/assets/index-CnUabdqK.js +0 -73
  90. package/web/dist/assets/index-DqkpIE12.css +0 -1
package/README.md CHANGED
@@ -1,222 +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 local multi-agent workspace for CLI coding agents. It lets you run
8
- Claude Code, Codex, OpenCode, Gemini, or any custom CLI agent as a visible team:
9
- one Orchestrator coordinates the plan, worker agents run in their own PTYs, and
10
- the web UI keeps tasks, terminals, and reports in one place.
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 任务图。
11
8
 
12
9
  [![npm](https://img.shields.io/npm/v/@tt-a1i/hive.svg)](https://www.npmjs.com/package/@tt-a1i/hive)
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)
13
12
  [![Node](https://img.shields.io/badge/node-%3E%3D22-3c873a.svg)](https://nodejs.org/)
14
13
  [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)
15
- [![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)](#平台支持)
16
15
 
17
- English · [简体中文](./README.zh-CN.md)
16
+ 🌐 **官网**:[hive-site.pages.dev](https://hive-site.pages.dev/)([English](https://hive-site.pages.dev/en/)
18
17
 
19
- > Public preview. Hive is local-first, runs on `127.0.0.1`, and is intended
20
- > for developers who already use CLI coding agents. The latest published
21
- > version is on [npm](https://www.npmjs.com/package/@tt-a1i/hive) and the
22
- > badge above resolves to it.
18
+ [English](./README.en.md) · 简体中文
23
19
 
24
- ## Why Hive
20
+ > Public preview。Hive 是本机优先的工具,只监听 `127.0.0.1`,面向已经在用 CLI Coding Agent 的开发者。最新发布版本见 [npm](https://www.npmjs.com/package/@tt-a1i/hive),上面的 badge 会指向它。
25
21
 
26
- CLI coding agents are powerful, but coordinating several of them manually is
27
- awkward:
22
+ ## 为什么需要 Hive
28
23
 
29
- - Long-running sessions are spread across terminals.
30
- - It is hard to split a task into implementation, review, and testing without a
31
- routing layer.
32
- - Worker progress disappears into scrollback.
33
- - Restart recovery depends on each CLI's native session behavior.
24
+ CLI Coding Agent 各自都很强,但同时管几个就有点别扭:
34
25
 
35
- Hive adds that coordination layer without replacing the CLIs. The agents remain
36
- real terminal processes running on your machine; Hive manages the team shell
37
- around them.
26
+ - 长任务的会话散在好几个终端里,注意力来回切。
27
+ - 想把"实现 / review / 测试"分给三个 agent,却没有一层把它们路由起来。
28
+ - Worker 的进度淹在 scrollback 里,回头看找不到。
29
+ - 想重启接着干,全看每个 CLI 自己的 session 恢复行为,散乱不可控。
38
30
 
39
- ## Quick Start
31
+ Hive 加上这一层调度,**不替换**任何 CLI。Agent 还是真实跑在你电脑上的终端进程,Hive 只是它们外面的"团队 shell"。
40
32
 
41
- Prerequisites:
33
+ ## 先看看 demo
42
34
 
43
- - Node.js 22 or newer.
44
- - At least one supported agent CLI installed, authenticated, and available on
45
- `PATH`.
35
+ 还没装任何 agent CLI?运行 `hive`、打开它打印出的本地地址、在 first-run 向导里点 **Try Demo**。你会看到一个完全跑在客户端的预览——假 orchestrator + 两个 worker、预录的终端 scrollback、一份预填的任务清单——既不会连服务器,也不需要任何真实 CLI agent。适合决定要不要继续装真 CLI。
46
36
 
47
- Install and start Hive:
37
+ ## 快速开始
38
+
39
+ 前置条件:
40
+
41
+ - Node.js 22 或更新版本
42
+ - 至少一个支持的 Agent CLI 已经安装好、登录过、在 `PATH` 上可调用
43
+
44
+ 安装并启动 Hive:
48
45
 
49
46
  ```bash
50
47
  npm install -g @tt-a1i/hive
51
48
  hive
52
49
  ```
53
50
 
54
- Open the printed local URL, usually `http://127.0.0.1:3000/`. Use
55
- `hive --port 4010` when you need a specific local port.
51
+ 打开终端打印出来的本机地址,通常是 `http://127.0.0.1:3000/`。如果你想指定端口,可以用 `hive --port 4010`。
56
52
 
57
- First-run flow:
53
+ 首次使用流程:
58
54
 
59
- 1. Create a workspace from a project folder.
60
- 2. Choose an Orchestrator preset.
61
- 3. Hive creates `<workspace>/.hive/tasks.md`, starts the Orchestrator PTY, and
62
- injects the internal `team` command into the agent session.
63
- 4. Add workers from the Team Members panel.
64
- 5. Ask the Orchestrator to delegate work. It sends tasks with
65
- `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` 回报。
66
60
 
67
- ## How It Works
61
+ ## 工作方式
68
62
 
69
63
  ```text
70
- Browser UI on 127.0.0.1
71
- tasks, team, terminals, reports
64
+ 浏览器 UI 跑在 127.0.0.1
65
+ 任务 · 团队 · 终端 · 汇报
72
66
  |
73
67
  | HTTP + WebSocket
74
68
  v
75
- Hive runtime
76
- SQLite metadata, PTY lifecycle, task dispatch
69
+ Hive Runtime
70
+ SQLite 元数据 · PTY 生命周期 · 任务派单
77
71
  |
78
72
  +-- Orchestrator PTY
79
- | can call: team send, team list, team report
73
+ | 可调用:team sendteam listteam report
80
74
  |
81
75
  +-- Worker PTY
82
- | can call: team report
76
+ | 可调用:team report
83
77
  |
84
78
  +-- Worker PTY
85
- can call: team report
79
+ 可调用:team report
86
80
 
87
- Workspace task graph:
81
+ Workspace 任务图:
88
82
  <workspace>/.hive/tasks.md
89
83
  ```
90
84
 
91
- Three details matter:
85
+ 三个细节值得记住:
92
86
 
93
- - Agents are real CLI processes, not simulated subagents.
94
- - `team` is injected only inside Hive-managed agent sessions by prepending the
95
- package's internal bin directory to `PATH`; it is not installed as a global
96
- command.
97
- - The task graph is a markdown file in the workspace, so you can inspect or
98
- edit it outside the app.
87
+ - Agent 是真正的 CLI 进程,不是模拟的 subagent。
88
+ - `team` 命令**只**在 Hive 管理的 agent 会话里可用——通过把包内 bin 目录 prepend PATH 实现,不会装成全局命令。
89
+ - 任务图就是 workspace 里的一份 markdown 文件,你可以在编辑器里直接看或者改。
99
90
 
100
- ## Agent Presets
91
+ ## Agent 预设
101
92
 
102
- | Preset | Command expected on `PATH` | Default bypass mode | Session resume |
93
+ | 预设 | `PATH` 上的命令 | 默认 bypass 模式 | 会话恢复 |
103
94
  | --- | --- | --- | --- |
104
- | 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>` |
105
96
  | Codex | `codex` | `--dangerously-bypass-approvals-and-sandbox` | `resume <session_id>` |
106
- | OpenCode | `opencode` | Config-driven in `~/.config/opencode/opencode.json` | `--session <session_id>` |
97
+ | OpenCode | `opencode` | `~/.config/opencode/opencode.json` 配置 | `--session <session_id>` |
107
98
  | Gemini | `gemini` | `--yolo` | `--resume <session_id>` |
108
- | Custom | Any executable | User configured | User configured |
109
-
110
- Hive does not install these CLIs for you. Install and authenticate them in the
111
- same shell environment you use to start Hive.
99
+ | 自定义 | 任意可执行文件 | 自己配 | 自己配 |
112
100
 
113
- ## What Hive Provides
101
+ Hive 不替你安装这些 CLI。请在启动 Hive 的同一个 shell 环境里先装好、登录好。
114
102
 
115
- - Workspace sidebar for switching between local projects.
116
- - Orchestrator and worker terminals backed by real PTYs.
117
- - Add Worker flow with role presets for coder, reviewer, tester, and custom
118
- members.
119
- - `.hive/tasks.md` editor with external-file conflict handling.
120
- - Background PTY preservation and best-effort native session resume.
121
- - Local SQLite metadata under `~/.config/hive` by default, or `$HIVE_DATA_DIR`
122
- when set.
103
+ ## Hive 提供什么
123
104
 
124
- Hive does not provide sandboxing, multi-user auth, cloud hosting, or its own
125
- 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` 指定。
126
111
 
127
- ## Platform Support
112
+ Hive **不**提供 sandbox 隔离、多用户认证、云端托管,也没有自带的编码模型。它只负责调度你已经在用的本机工具。
128
113
 
129
- | Platform | Status | Notes |
130
- | --- | --- | --- |
131
- | macOS | Tier 1 | Main development and release verification target. |
132
- | Linux | Tier 1 | CI verified. Native folder picking expects `zenity`; manual path entry works without it. |
133
- | 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
+ ## 平台支持
134
115
 
135
- All platforms require Node.js 22+. Hive depends on native packages
136
- (`node-pty` and `better-sqlite3`), so native install tooling may be required
137
- when prebuilt binaries are unavailable.
116
+ 所有平台都需要 Node.js 22+。Hive 依赖 `node-pty` `better-sqlite3` 这类原生包,没有预编译二进制时需要你本机有原生构建工具链。
138
117
 
139
- ## Safety Model
118
+ ## 安全模型
140
119
 
141
- Hive is a local development tool, not a hosted service.
120
+ Hive 是本机开发工具,**不是**托管服务。
142
121
 
143
- - The runtime binds to `127.0.0.1`. Do not expose the Hive port through a public
144
- tunnel, reverse proxy, or shared network interface.
145
- - Built-in presets intentionally use each CLI's non-interactive or bypass mode
146
- where available. Treat workers as able to run arbitrary shell commands inside
147
- the selected workspace.
148
- - Open only trusted workspaces. A worker has the same filesystem access as the
149
- shell account running Hive.
150
- - Agent tokens are session scoped, generated by the local runtime, injected into
151
- agent process environments, and not intended as internet-facing credentials.
152
- - Hive has no multi-user authentication boundary. Treat same-machine processes
153
- that can reach the local port as trusted local access.
154
- - The browser UI token is a local session guard, not protection against other
155
- 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 只是本机会话保护,不是用来防同一系统账户下其他进程的安全边界。
156
128
 
157
- Read [SECURITY.md](SECURITY.md) before using Hive with sensitive repositories.
129
+ 在敏感仓库里用 Hive 之前,请先读 [SECURITY.md](SECURITY.md)
158
130
 
159
- ## Data Locations
131
+ ## 数据位置
160
132
 
161
- | Data | Location |
133
+ | 数据 | 位置 |
162
134
  | --- | --- |
163
- | Runtime metadata | `~/.config/hive` or `$HIVE_DATA_DIR` |
164
- | Workspace tasks | `<workspace>/.hive/tasks.md` |
165
- | Internal `team` command | Packaged under `dist/bin/`, injected into PTYs |
166
- | 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` 直接服务 |
167
139
 
168
- ## Troubleshooting
140
+ ## 故障排查
169
141
 
170
- **Agent CLI not found**
142
+ **找不到 Agent CLI**
171
143
 
172
- Check that the selected command is installed, authenticated, executable from the
173
- same shell, and available on `PATH`.
144
+ 确认选中的命令已经安装好、登录好、在启动 Hive 那个 shell 里能直接调用,且在 `PATH` 上。
174
145
 
175
- **Port already in use**
146
+ **端口被占用**
176
147
 
177
- Start Hive with another local port:
148
+ 换个本机端口启动:
178
149
 
179
150
  ```bash
180
151
  hive --port 4020
181
152
  ```
182
153
 
183
- **Native package install fails**
154
+ **原生包构建失败**
184
155
 
185
- Hive depends on `node-pty` and `better-sqlite3`, which use native binaries. Use
186
- Node.js 22+, keep your package manager cache clean, and verify your platform
187
- 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)。
188
157
 
189
- **Folder picker does not open on Linux**
158
+ **Linux 上目录选择器不弹**
190
159
 
191
- Install `zenity`, or paste the workspace path manually.
160
+ `zenity`,或者直接在对话框里粘路径。
192
161
 
193
- **Folder picker does not open on Windows**
162
+ **Windows 上目录选择器不弹**
194
163
 
195
- Verify Windows PowerShell is available as `powershell.exe`, or paste the
196
- workspace path manually.
164
+ 确认 `powershell.exe` `PATH` 上,或者直接粘路径。
197
165
 
198
- **Tasks file conflict banner appears**
166
+ **Tasks 文件冲突 banner 出现**
199
167
 
200
- Hive detected a newer `.hive/tasks.md` on disk. Use `Reload` to accept the file
201
- from disk, or `Keep Local` to keep the editor contents and save again.
168
+ Hive 检测到磁盘上的 `.hive/tasks.md` UI 里的新。`Reload` 接受磁盘版本,`Keep Local` 保留 UI 编辑并覆盖保存。
202
169
 
203
- **Worker appears stuck in `working`**
170
+ **Worker 卡在 `working` 状态**
204
171
 
205
- Hive does not guess task completion from process activity. Workers move back to
206
- `idle` when they call `team report`. If a worker is blocked, stop or restart it
207
- from the UI.
172
+ Hive 不通过进程活动猜测任务完成。Worker 只有在调 `team report` 时才会回到 `idle`。如果它确实卡了,从 UI Stop Restart。
208
173
 
209
- ## Development
174
+ ## 开发
210
175
 
211
176
  ```bash
212
177
  pnpm install
213
178
  pnpm dev
214
179
  ```
215
180
 
216
- Development mode runs the runtime on `127.0.0.1:4010`; Vite runs on
217
- `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。
218
182
 
219
- Useful checks:
183
+ 常用命令:
220
184
 
221
185
  ```bash
222
186
  pnpm check
@@ -224,35 +188,31 @@ pnpm build
224
188
  pnpm test
225
189
  ```
226
190
 
227
- Production-style local run:
191
+ 预演 production 构建:
228
192
 
229
193
  ```bash
230
194
  pnpm build
231
195
  node dist/src/cli/hive.js --port 4010
232
196
  ```
233
197
 
234
- The production server serves the built web UI directly. No Vite server is
235
- needed after `pnpm build`.
198
+ Production 模式下 runtime 直接服务构建好的 web UI,不需要单独的 Vite
236
199
 
237
- ## Release
200
+ ## 发布
238
201
 
239
- Maintainer dry run:
202
+ 维护者本地预演:
240
203
 
241
204
  ```bash
242
205
  pnpm release:dry
243
206
  ```
244
207
 
245
- See [docs/release.md](docs/release.md) for the full tagged release checklist,
246
- including manual Windows smoke steps.
208
+ 完整 tag 发版清单见 [docs/release.md](docs/release.md),里面包含 Windows 手动 smoke 步骤。
247
209
 
248
- Tag pushes matching `v*` run the GitHub Actions release workflow. The workflow
249
- 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。
250
211
 
251
- ## Status
212
+ ## 状态
252
213
 
253
- Hive is in alpha public preview. Expect UI and protocol details to keep moving
254
- while the core local orchestration model hardens.
214
+ Hive 正处于 alpha public preview 阶段。在本机调度模型稳定下来之前,UI 和协议细节还会继续调整。
255
215
 
256
216
  ## License
257
217
 
258
- Apache-2.0. See [LICENSE](LICENSE).
218
+ Apache-2.0。详见 [LICENSE](LICENSE)
@@ -1 +1,9 @@
1
+ export interface ParsedReportArgs {
2
+ artifacts: string[];
3
+ dispatchId: string | undefined;
4
+ result: string | null;
5
+ useStdin: boolean;
6
+ }
7
+ export declare const parseReportArgs: (args: string[], command?: string) => ParsedReportArgs;
8
+ export declare const readStdinToString: (command?: string) => Promise<string>;
1
9
  export declare const runTeamCommand: (argv: string[]) => Promise<void>;
@@ -11,7 +11,15 @@ const TEAM_USAGE = [
11
11
  ' team list',
12
12
  ' team send <worker-name> "<task>"',
13
13
  ' team report "<result>" [--dispatch <dispatch-id>] [--artifact <path>]',
14
+ ' team report --stdin [--dispatch <dispatch-id>] [--artifact <path>]',
14
15
  ' team status "<current status>" [--artifact <path>]',
16
+ ' team status --stdin [--artifact <path>]',
17
+ '',
18
+ 'Flags can appear in any order. Use --stdin to pipe long bodies and avoid shell-escaping issues.',
19
+ "Use a quoted heredoc (<<'EOF') so $vars, backticks, and command substitutions stay literal:",
20
+ " team report --stdin --dispatch <id> <<'EOF'",
21
+ ' ... long report ...',
22
+ ' EOF',
15
23
  ].join('\n');
16
24
  const getHiveEnv = () => {
17
25
  const values = Object.fromEntries(REQUIRED_ENV_KEYS.map((key) => [key, process.env[key]]));
@@ -68,47 +76,80 @@ const postJson = async (baseUrl, path, body) => {
68
76
  }
69
77
  return response;
70
78
  };
71
- const parseReportArgs = (args, command = 'report') => {
72
- const [result, ...rest] = args;
73
- if (!result) {
74
- throw new Error(command === 'status'
75
- ? 'Usage: team status <current status> [--artifact <path>]'
76
- : 'Usage: team report <result> [--dispatch <dispatch-id>] [--artifact <path>]');
77
- }
79
+ const REPORT_USAGE = 'Usage: team report (<result> | --stdin) [--dispatch <dispatch-id>] [--artifact <path>]';
80
+ const STATUS_USAGE = 'Usage: team status (<current status> | --stdin) [--artifact <path>]';
81
+ const usageFor = (command) => (command === 'status' ? STATUS_USAGE : REPORT_USAGE);
82
+ const withUsage = (message, command) => `${message}\n\n${usageFor(command)}`;
83
+ export const parseReportArgs = (args, command = 'report') => {
84
+ const positionals = [];
78
85
  const artifacts = [];
79
86
  let dispatchId;
80
- for (let index = 0; index < rest.length; index += 1) {
81
- const arg = rest[index];
82
- if (arg === '--success' || arg === '--failed') {
83
- // Backward-compatible no-op: reports are interpreted from their text.
87
+ let useStdin = false;
88
+ for (let index = 0; index < args.length; index += 1) {
89
+ const arg = args[index];
90
+ if (arg === undefined)
91
+ continue;
92
+ // Backward-compatible no-op: reports are interpreted from their text.
93
+ if (arg === '--success' || arg === '--failed')
94
+ continue;
95
+ if (arg === '--stdin') {
96
+ useStdin = true;
84
97
  continue;
85
98
  }
86
99
  if (arg === '--artifact') {
87
- const artifactPath = rest[index + 1];
88
- if (!artifactPath) {
89
- throw new Error(command === 'status'
90
- ? 'Usage: team status <current status> [--artifact <path>]'
91
- : 'Usage: team report <result> [--dispatch <dispatch-id>] [--artifact <path>]');
100
+ const next = args[index + 1];
101
+ if (next === undefined || next.startsWith('--')) {
102
+ throw new Error(withUsage('--artifact requires a value', command));
92
103
  }
93
- artifacts.push(artifactPath);
104
+ artifacts.push(next);
94
105
  index += 1;
95
106
  continue;
96
107
  }
97
108
  if (arg === '--dispatch') {
98
109
  if (command === 'status') {
99
- throw new Error('team status does not accept --dispatch; use team report for assigned work');
110
+ throw new Error(withUsage('team status does not accept --dispatch; use team report for assigned work', command));
100
111
  }
101
- const nextDispatchId = rest[index + 1];
102
- if (!nextDispatchId) {
103
- throw new Error('Usage: team report <result> [--dispatch <dispatch-id>] [--artifact <path>]');
112
+ const next = args[index + 1];
113
+ if (next === undefined || next.startsWith('--')) {
114
+ throw new Error(withUsage('--dispatch requires a value', command));
104
115
  }
105
- dispatchId = nextDispatchId;
116
+ dispatchId = next;
106
117
  index += 1;
107
118
  continue;
108
119
  }
109
- throw new Error(`Unknown argument: ${arg}`);
120
+ if (arg.startsWith('--')) {
121
+ throw new Error(withUsage(`Unknown argument: ${arg}`, command));
122
+ }
123
+ positionals.push(arg);
124
+ }
125
+ if (useStdin && positionals.length > 0) {
126
+ throw new Error(withUsage('--stdin is mutually exclusive with a positional argument; pass the body on stdin or as an argument, not both', command));
127
+ }
128
+ if (!useStdin && positionals.length === 0) {
129
+ const label = command === 'status' ? '<current status>' : '<result>';
130
+ throw new Error(withUsage(`Missing ${label} (or pass --stdin to read it from stdin)`, command));
131
+ }
132
+ if (positionals.length > 1) {
133
+ const label = command === 'status' ? 'status' : 'result';
134
+ throw new Error(withUsage(`Expected exactly one ${label} positional, got ${positionals.length}: ${positionals
135
+ .map((value) => JSON.stringify(value))
136
+ .join(', ')}`, command));
137
+ }
138
+ return { result: useStdin ? null : (positionals[0] ?? null), artifacts, dispatchId, useStdin };
139
+ };
140
+ export const readStdinToString = async (command = 'report') => {
141
+ if (process.stdin.isTTY) {
142
+ throw new Error(withUsage('--stdin requires piped input, but stdin is a TTY. Did you forget to pipe content in?', command));
143
+ }
144
+ const chunks = [];
145
+ for await (const chunk of process.stdin) {
146
+ chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk);
147
+ }
148
+ const content = Buffer.concat(chunks).toString('utf8');
149
+ if (!content.trim()) {
150
+ throw new Error(withUsage('--stdin received empty input', command));
110
151
  }
111
- return { result, artifacts, dispatchId };
152
+ return content;
112
153
  };
113
154
  export const runTeamCommand = async (argv) => {
114
155
  const [command, ...args] = argv;
@@ -153,13 +194,14 @@ export const runTeamCommand = async (argv) => {
153
194
  }
154
195
  if (command === 'status') {
155
196
  const report = parseReportArgs(args, 'status');
197
+ const body = report.useStdin ? await readStdinToString('status') : (report.result ?? '');
156
198
  const env = getHiveEnv();
157
199
  const baseUrl = getBaseUrl(env);
158
200
  const response = await postJson(baseUrl, '/api/team/status', {
159
201
  project_id: env.HIVE_PROJECT_ID,
160
202
  from_agent_id: env.HIVE_AGENT_ID,
161
203
  token: env.HIVE_AGENT_TOKEN,
162
- result: report.result,
204
+ result: body,
163
205
  artifacts: report.artifacts,
164
206
  });
165
207
  const payload = (await response.json());
@@ -170,6 +212,7 @@ export const runTeamCommand = async (argv) => {
170
212
  }
171
213
  if (command === 'report') {
172
214
  const report = parseReportArgs(args);
215
+ const body = report.useStdin ? await readStdinToString('report') : (report.result ?? '');
173
216
  const env = getHiveEnv();
174
217
  const baseUrl = getBaseUrl(env);
175
218
  const response = await postJson(baseUrl, '/api/team/report', {
@@ -177,7 +220,7 @@ export const runTeamCommand = async (argv) => {
177
220
  project_id: env.HIVE_PROJECT_ID,
178
221
  from_agent_id: env.HIVE_AGENT_ID,
179
222
  token: env.HIVE_AGENT_TOKEN,
180
- result: report.result,
223
+ result: body,
181
224
  artifacts: report.artifacts,
182
225
  });
183
226
  const payload = (await response.json());
@@ -1 +1 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../../src/cli/team.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../../src/cli/team.ts"],"names":[],"mappings":"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"}
@@ -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":"AAcA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAA4B,EAAE,EAAE;IACrE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkC,CAAA;IAC/D,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAA;IACpD,MAAM,QAAQ,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAA;IACtF,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YACrE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;QACtD,CAAC;IACH,CAAC,CAAA;IAED,IAAI,EAAE,CAAA;IAEN,OAAO;QACL,GAAG,CAAC,WAAmB,EAAE,OAAe;YACtC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;YAChE,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;YACzB,IAAI,EAAE,CAAA;YACN,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;YACxE,IAAI,cAAc;gBAAE,OAAO,cAAc,CAAA;YACzC,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,CAAC,WAAmB,EAAE,OAAe;YACvC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;YAChE,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;YACzB,IAAI,EAAE,CAAA;YACN,OAAO,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1D,CAAC;QACD,cAAc,CAAC,OAAe;YAC5B,OAAO,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QACD,IAAI,CAAC,WAAmB,EAAE,OAAe,EAAE,KAA6B;YACtE,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;gBACtB,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;gBAC9C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBACpD,0BAA0B,EAAE,KAAK,CAAC,0BAA0B,IAAI,KAAK;gBACrE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBACpD,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,IAAI;aACjD,CAAA;YACD,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAA;YAC7D,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YAC5C,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QAC1D,CAAC;QACD,MAAM,CAAC,WAAmB,EAAE,OAAe;YACzC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;YACpD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAClC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;QACD,cAAc,CAAC,OAAe,EAAE,WAAmB;YACjD,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC9C,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
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;