@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
Binary file
Binary file
Binary file
@@ -0,0 +1,18 @@
1
+ <svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g transform="translate(30, 0)">
3
+ <g clip-path="url(#clip0_1401_86274)">
4
+ <mask id="mask0_1401_86274" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="240" height="300">
5
+ <path d="M240 0H0V300H240V0Z" fill="white"/>
6
+ </mask>
7
+ <g mask="url(#mask0_1401_86274)">
8
+ <path d="M180 240H60V120H180V240Z" fill="#CFCECD"/>
9
+ <path d="M180 60H60V240H180V60ZM240 300H0V0H240V300Z" fill="#211E1E"/>
10
+ </g>
11
+ </g>
12
+ </g>
13
+ <defs>
14
+ <clipPath id="clip0_1401_86274">
15
+ <rect width="240" height="300" fill="white"/>
16
+ </clipPath>
17
+ </defs>
18
+ </svg>
@@ -13,8 +13,8 @@
13
13
  href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=DM+Mono:wght@400;500&display=swap"
14
14
  rel="stylesheet"
15
15
  />
16
- <script type="module" crossorigin src="/assets/index-CnUabdqK.js"></script>
17
- <link rel="stylesheet" crossorigin href="/assets/index-DqkpIE12.css">
16
+ <script type="module" crossorigin src="/assets/index-CGvIlvht.js"></script>
17
+ <link rel="stylesheet" crossorigin href="/assets/index-B8F00qo4.css">
18
18
  </head>
19
19
  <body>
20
20
  <div id="root"></div>
package/README.zh-CN.md DELETED
@@ -1,210 +0,0 @@
1
- # Hive
2
-
3
- <p align="center">
4
- <img src="./assets/hive-hero.png" alt="Hive 本机多 agent 协作工作台" />
5
- </p>
6
-
7
- Hive 是一个本机多 agent 协作工作台。它让 Claude Code、Codex、OpenCode、Gemini 或任意自定义 CLI Agent 组成一个可见的团队:一个 Orchestrator 负责协调计划,多个 Worker 在各自的 PTY 里执行任务,Web UI 把任务、终端和汇报集中在一处。
8
-
9
- [![npm](https://img.shields.io/npm/v/@tt-a1i/hive.svg)](https://www.npmjs.com/package/@tt-a1i/hive)
10
- [![Node](https://img.shields.io/badge/node-%3E%3D22-3c873a.svg)](https://nodejs.org/)
11
- [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)
12
- [![Platforms](https://img.shields.io/badge/platforms-macOS%20%C2%B7%20Linux%20%C2%B7%20Windows%20(best--effort)-lightgrey.svg)](#平台支持)
13
-
14
- [English](./README.md) · 简体中文
15
-
16
- > Public preview。Hive 是本机优先的工具,只监听 `127.0.0.1`,面向已经在用 CLI Coding Agent 的开发者。最新发布版本见 [npm](https://www.npmjs.com/package/@tt-a1i/hive),上面的 badge 会指向它。
17
-
18
- ## 为什么需要 Hive
19
-
20
- CLI Coding Agent 各自都很强,但同时管几个就有点别扭:
21
-
22
- - 长任务的会话散在好几个终端里,注意力来回切。
23
- - 想把"实现 / review / 测试"分给三个 agent,却没有一层把它们路由起来。
24
- - Worker 的进度淹在 scrollback 里,回头看找不到。
25
- - 想重启接着干,全看每个 CLI 自己的 session 恢复行为,散乱不可控。
26
-
27
- Hive 加上这一层调度,**不替换**任何 CLI。Agent 还是真实跑在你电脑上的终端进程,Hive 只是它们外面的"团队 shell"。
28
-
29
- ## 快速开始
30
-
31
- 前置条件:
32
-
33
- - Node.js 22 或更新版本
34
- - 至少一个支持的 Agent CLI 已经安装好、登录过、在 `PATH` 上可调用
35
-
36
- 安装并启动 Hive:
37
-
38
- ```bash
39
- npm install -g @tt-a1i/hive
40
- hive
41
- ```
42
-
43
- 打开终端打印出来的本机地址,通常是 `http://127.0.0.1:3000/`。如果你想指定端口,可以用 `hive --port 4010`。
44
-
45
- 首次使用流程:
46
-
47
- 1. 选择一个项目目录作为 workspace。
48
- 2. 挑一个 Orchestrator 预设。
49
- 3. Hive 会创建 `<workspace>/.hive/tasks.md`,启动 Orchestrator 的 PTY,把内部的 `team` 命令注入这个 agent 会话。
50
- 4. 在 Team Members 面板里添加 Worker。
51
- 5. 跟 Orchestrator 说一声让它派活,它会用 `team send <worker-name> "<task>"` 发任务,Worker 完事后用 `team report` 回报。
52
-
53
- ## 工作方式
54
-
55
- ```text
56
- 浏览器 UI 跑在 127.0.0.1
57
- 任务 · 团队 · 终端 · 汇报
58
- |
59
- | HTTP + WebSocket
60
- v
61
- Hive Runtime
62
- SQLite 元数据 · PTY 生命周期 · 任务派单
63
- |
64
- +-- Orchestrator PTY
65
- | 可调用:team send、team list、team report
66
- |
67
- +-- Worker PTY
68
- | 可调用:team report
69
- |
70
- +-- Worker PTY
71
- 可调用:team report
72
-
73
- Workspace 任务图:
74
- <workspace>/.hive/tasks.md
75
- ```
76
-
77
- 三个细节值得记住:
78
-
79
- - Agent 是真正的 CLI 进程,不是模拟的 subagent。
80
- - `team` 命令**只**在 Hive 管理的 agent 会话里可用——通过把包内 bin 目录 prepend 到 PATH 实现,不会装成全局命令。
81
- - 任务图就是 workspace 里的一份 markdown 文件,你可以在编辑器里直接看或者改。
82
-
83
- ## Agent 预设
84
-
85
- | 预设 | `PATH` 上的命令 | 默认 bypass 模式 | 会话恢复 |
86
- | --- | --- | --- | --- |
87
- | Claude Code | `claude` | `--dangerously-skip-permissions`、`--permission-mode=bypassPermissions` | `--resume <session_id>` |
88
- | Codex | `codex` | `--dangerously-bypass-approvals-and-sandbox` | `resume <session_id>` |
89
- | OpenCode | `opencode` | 由 `~/.config/opencode/opencode.json` 配置 | `--session <session_id>` |
90
- | Gemini | `gemini` | `--yolo` | `--resume <session_id>` |
91
- | 自定义 | 任意可执行文件 | 自己配 | 自己配 |
92
-
93
- Hive 不替你安装这些 CLI。请在启动 Hive 的同一个 shell 环境里先装好、登录好。
94
-
95
- ## Hive 提供什么
96
-
97
- - Workspace 侧边栏,方便在多个本机项目之间切换。
98
- - Orchestrator 和 Worker 终端都是真实 PTY 支撑的。
99
- - Add Worker 流程预置了 coder / reviewer / tester 和自定义成员的角色模板。
100
- - `.hive/tasks.md` 编辑器,带外部文件冲突处理。
101
- - PTY 后台保留 + 尽力使用各 CLI 原生 session 恢复。
102
- - 元数据存在本机 SQLite,默认在 `~/.config/hive`,或者通过 `$HIVE_DATA_DIR` 指定。
103
-
104
- Hive **不**提供 sandbox 隔离、多用户认证、云端托管,也没有自带的编码模型。它只负责调度你已经在用的本机工具。
105
-
106
- ## 平台支持
107
-
108
- 所有平台都需要 Node.js 22+。Hive 依赖 `node-pty` 和 `better-sqlite3` 这类原生包,没有预编译二进制时需要你本机有原生构建工具链。
109
-
110
- ## 安全模型
111
-
112
- Hive 是本机开发工具,**不是**托管服务。
113
-
114
- - Runtime 只监听 `127.0.0.1`。不要把 Hive 端口通过公网隧道、反向代理或任何共享网络接口暴露出去。
115
- - 内置预设会主动传 CLI 的 non-interactive / bypass flag。Worker 在选中的 workspace 里有跟启动 shell **同等**的执行权限——把它当成"会自动跑命令的你自己"。
116
- - 只打开你信任的 workspace。Worker 拥有跟你登录账户一样的文件系统访问权限。
117
- - Agent token 是 session 级的,由本机 runtime 生成,注入到 agent 进程环境变量里,**不**用于跨网络通信。
118
- - Hive 不做多用户认证。任何能从本机访问到端口的进程都视为可信本地访问。
119
- - 浏览器 UI token 只是本机会话保护,不是用来防同一系统账户下其他进程的安全边界。
120
-
121
- 在敏感仓库里用 Hive 之前,请先读 [SECURITY.md](SECURITY.md)。
122
-
123
- ## 数据位置
124
-
125
- | 数据 | 位置 |
126
- | --- | --- |
127
- | Runtime 元数据 | `~/.config/hive` 或 `$HIVE_DATA_DIR` |
128
- | Workspace 任务图 | `<workspace>/.hive/tasks.md` |
129
- | 内部 `team` 命令 | 包内 `dist/bin/`,通过 PATH 注入 PTY |
130
- | Web UI 资源 | 由 runtime 从包内 `web/dist` 直接服务 |
131
-
132
- ## 故障排查
133
-
134
- **找不到 Agent CLI**
135
-
136
- 确认选中的命令已经安装好、登录好、在启动 Hive 那个 shell 里能直接调用,且在 `PATH` 上。
137
-
138
- **端口被占用**
139
-
140
- 换个本机端口启动:
141
-
142
- ```bash
143
- hive --port 4020
144
- ```
145
-
146
- **原生包构建失败**
147
-
148
- Hive 依赖 `node-pty` 和 `better-sqlite3`,它们用原生二进制。确认 Node.js 22+,清干净 package manager 缓存,并准备好你平台的构建工具(macOS Xcode CLI、Linux build-essential + python3、Windows VS Build Tools)。
149
-
150
- **Linux 上目录选择器不弹**
151
-
152
- 装 `zenity`,或者直接在对话框里粘路径。
153
-
154
- **Windows 上目录选择器不弹**
155
-
156
- 确认 `powershell.exe` 在 `PATH` 上,或者直接粘路径。
157
-
158
- **Tasks 文件冲突 banner 出现**
159
-
160
- Hive 检测到磁盘上的 `.hive/tasks.md` 比 UI 里的新。`Reload` 接受磁盘版本,`Keep Local` 保留 UI 编辑并覆盖保存。
161
-
162
- **Worker 卡在 `working` 状态**
163
-
164
- Hive 不通过进程活动猜测任务完成。Worker 只有在调 `team report` 时才会回到 `idle`。如果它确实卡了,从 UI 里 Stop 或 Restart。
165
-
166
- ## 开发
167
-
168
- ```bash
169
- pnpm install
170
- pnpm dev
171
- ```
172
-
173
- 开发模式下 runtime 跑在 `127.0.0.1:4010`,Vite 跑在 `127.0.0.1:5180`,把 API 和 WebSocket 代理到 runtime。
174
-
175
- 常用命令:
176
-
177
- ```bash
178
- pnpm check
179
- pnpm build
180
- pnpm test
181
- ```
182
-
183
- 预演 production 构建:
184
-
185
- ```bash
186
- pnpm build
187
- node dist/src/cli/hive.js --port 4010
188
- ```
189
-
190
- Production 模式下 runtime 直接服务构建好的 web UI,不需要单独的 Vite。
191
-
192
- ## 发布
193
-
194
- 维护者本地预演:
195
-
196
- ```bash
197
- pnpm release:dry
198
- ```
199
-
200
- 完整 tag 发版清单见 [docs/release.md](docs/release.md),里面包含 Windows 手动 smoke 步骤。
201
-
202
- 带 `v*` 的 tag push 会触发 GitHub Actions release workflow。workflow 会在 macOS、Ubuntu、Windows 三平台验证,然后用 `NPM_TOKEN` 发布到 npm。
203
-
204
- ## 状态
205
-
206
- Hive 正处于 alpha public preview 阶段。在本机调度模型稳定下来之前,UI 和协议细节还会继续调整。
207
-
208
- ## License
209
-
210
- Apache-2.0。详见 [LICENSE](LICENSE)。